单道程序系统:内存中同时只能驻留一个外部应用程序,当进程需要进行I/O操作,CPU一直进入等待状态,CPU利用率低。
- 缺点:资源(不仅仅是CPU)利用率低,系统吞吐量(单位时间内执行完成的进程)低
多道程序系统:内存中同时存在多道作业,通过管理程序控制穿插运行(CPU调度),使得 CPU 总有一个执行作业,从而提高 CPU 利用率。具有并发和并行的特点(宏观上并行)。
操作系统先将作业(进程)保存在磁盘上的作业池中,内存中的作业集为磁盘上的作业集的子集。操作系统从内存的作业集中选择一个执行。对于单道程序系统,当CPU执行到某个作业的某些任务,例如I/O操作时,需要使CPU进入等待状态,等待该任务的执行完成,从而陷入空闲的状态。而多道程序系统会自动在等待时切换到另一个作业,使CPU始终有作业在执行。
(这里是并发作业,而非并行作业!并行指的是多处理器系统)
(单道程序系统和多道程序系统都属于:批处理系统,缺点是缺少交互性)
- 优点:资源利用率高,系统吞吐量大
- 缺点:用户响应时间长,交互性差
来源:hillzhang1999.gitee.io/2020/05/14/…
妈妈给客人沏茶。洗开水壶需要1分钟,烧水需要15分钟,洗茶壶需要1分钟,洗茶杯需要1分钟,拿茶叶需要2分钟,依照最合理的安排,
- 先洗开水壶,然后开始烧水。这两个任务可以同时进行,所以总时间是15分钟。
- 在等待烧水的过程中,可以先洗茶壶和洗茶杯。这两个任务也可以同时进行,所以总时间是1分钟。
- 当水烧好后,同时进行拿茶叶和沏茶,总时间是2分钟。
所以,完成所有任务的总时间是 15 分钟 + 1 分钟 + 2 分钟 = 18 分钟。
这个问题就类似于多道程序系统,核心在于,通过穿插其他任务,避免人(cpu)出现闲置状态。