多道程序设计
多道程序设计的概念
概念:只让多个程序同时进入计算机的主存储器进行计算
解决问题:CPU速度和I/O速度的不匹配
解决思路:是让多道程序同时进入内存争夺CPU运行,才可以使得CPU和外围设备充分并行,从而提高计算机系统的使用效率
多道程序同时计算
单个程序运行
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a9Buf4KA-1612189225602)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20210201201448490.png)]
两个程序
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jJc9Povb-1612189225606)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20210201201632062.png)]
实际上IO可能会冲突,实际CPU利用率略低
设计的优点
- CPU和外部设备充分并行
- 外部设备之间充分并行
- 发挥CPU的使用效率
- 提高单位时间的算题量
多道程序设计的实现
- 为进入内存执行的程序建立管理实体:进程
- OS 管理与控制进程的执行
- OS 协调管理各类资源在进程间的使用
- 主处理器(CPU)的管理与调度
- 主存储器的管理与调度
- 其他资源(外围设备)的管理和调度
实现要点:
-
如何使用资源:调用操作系统提供的服务例程(如何显陷入操作系统)
-
如何复用CPU:调度程序(在CPU在空闲的时,让其他程序执行)
-
如何使CPU和I/O设备充分并行:设备控制器控制器和通道(专用的I/O处理器)
-
如何让正在运行的程序让出CPU:中断(中断正在执行的程序,引入OS处理)
-
如何让正在运行的程序让出CPU:中断(中断正在执行的程序,引入OS处理)