什么是多道程序操作系统?
多道程序操作系统 (Multiprogramming OS) 是一种操作系统的能力,它可以使用单处理器机器执行多个程序。
在同一时间点,主内存中存在多个任务、程序或作业。
缓冲和卷绕可以重叠 I/O 和 CPU 任务以提高系统性能,但它也有一些限制,即单个用户不能始终让 CPU 或 I/O 保持忙碌状态。
为了提高资源利用率,采用了多道程序设计方法。
操作系统 |
作业1 |
作业2 |
--- |
作业N |
空闲空间 |
操作系统可以选择并开始执行内存中的一个作业,当作业不需要 CPU 时(这意味着作业正在进行 I/O 操作),CPU 在此时处于空闲状态,操作系统切换到内存中的另一个作业,CPU 执行该作业的一部分,直到作业发出 I/O 请求,依此类推。
假设 P1 和 P2 是主内存中的两个程序。操作系统选择一个程序并开始执行它。
如果在执行过程中 P1 程序需要 I/O 操作,则操作系统将简单地切换到 P2 程序。如果 p2 程序需要 I/O,则再次切换到 P3,依此类推。
如果在 P3 之后没有其他程序剩余,则 CPU 将把控制权返回给之前的程序。
优点
多道程序操作系统的优点如下:
CPU 利用率高,因为 CPU 永远不会进入空闲状态。
内存利用率高。
CPU 吞吐量高,并且支持多个交互式用户终端。
缺点
多道程序操作系统的缺点如下:
CPU 调度是必须的,因为许多作业同时准备在 CPU 上运行。
作业执行时,用户无法与之交互。
程序员也无法修改正在执行的程序。
如果主内存中有多个作业准备就绪,而空间不足以容纳所有作业,则系统必须通过决策来选择它们,此过程称为作业调度。
当操作系统从作业组中选择一个作业并将其加载到内存中以进行执行时,因此它需要内存管理;如果有多个这样的作业准备就绪,则需要 CPU 调度。
广告