多道程序设计技术 同步 异步 阻塞 非阻塞

多道程序设计技术

指 允许多个程序同时进入内存并执行,同时把多个程序放入 内存,并允许他们交替在CPU中运行,当 一道程序因io请求暂停 CPU立即转入另一道程序

  • 时间上的复用:

    将内存分为几部分,每个部分放入一个程序 这样,同一时间内存中有多道程序

  • 空间上的复用:

    当一个程序等待 io时 .另一个程序可以使用CPU

  • 空间复用问题:

    由操作系统分割内存, 如不分割 则一个程序可以访问另一个程序的 内存

  • 时间复用问题:

    时间长的 一直在执行,短的等待 由分时系统解决

  • 分时技术:

    把处理机的运行时间分成很短的 时间片 按时间片轮流作业

    • 特点:

      多路性 交互性 独立性 及时性

  • 实时系统:

    及时响应 高可靠性

  • 操作系统的 三种基本类型:

    1. 多道批处理系统

    2. 分时系统

    3. 实时系统

操作系统的 作用:

  1. 隐藏丑陋复杂的硬件和接口,提供良好的抽象接口

  2. 管理调度进程,并且将多个进程对硬件的竞争变得有序

多道技术:

  1. 针对单核实现并发

  2. 空间复用

  3. 时间复用

进程:

  • 进程是一个实体,每一个进程有自己的 地址空间, 是一个执行中的程序

    程序是永久的 进程是 暂时的

    进程的特征:

    • 动态性:

      程序在多道程序系统中的第一次执行过程,动态产生,动态消亡

    • 并发性:

      任何进程都可以同其他进程一起并发运行

    • 独立性:

      进程是一个独立运行的基本单位

    • 异步性:

      进程间互相制约,进程按各自独立的,不可预知的速度向前推进

    • 结构特性:

      进程由程序 数据 和 进程控制块 三部分

    进程的三状态

    • 就绪 :

      由 创建 提交 到就绪状态

      由进程调度 提交到运行状态

    • 运行 :

      时间片到期 返回 就绪队列

      时间请求 提交到 阻塞状态

      执行完成 释放 退出

    • 阻塞:

      时间发生 返回到就绪队列

     

时间片轮转法

  • 作业调度(不可抢占资源 如:打印机 ) 不使用轮转法

多级反馈队列 建立多个就绪队列

加入到就绪队列的 进程由三种:

  1. 时间片用完,进程没完 ,回到就绪队列末尾

  2. 时间片没完 因 IO请求被阻塞

  3. 新建进程进入

同一队列内优先级相同,当一个进程执行完时间片后 或 时间中换算 将进入 不同的 就绪队列

 

并发与并行

  • 并发:

    伪并行, 单个CPU + 多道技术 实现并发(并行也基于并发)

  • 并行:

    同时运行多个 CPU 才能实现并行

  • 并发= 任务切换+保存状态

同步 异步 阻塞 非阻塞

  • 同步:

    一个任务的完成需要依赖另一个任务才能完成, 这是一种可靠的任务序列,要么都成功,要么都失败,其实就是一个串行的 队列,不一定两个程序有依赖关系

  • 异步:

    不需要等待被依赖的任务完成,只是通知被依赖的任务要完成什么动作,不可靠的任务序列

运行效率

  • (同步阻塞 < 异步阻塞 < 同步非阻塞 < 异步非阻塞)

  •  

posted @ 2018-09-10 21:25  拐弯  阅读(401)  评论(0编辑  收藏  举报