1.2.3 多道程序设计与操作系统的形成
1.2.3.1 多道程序设计
1,多道程序设计的概念多道程序设计 (Multiprogramming)是指允许多个程序同时进入一个计算机系统的主存储器并启动进行计算的方法。
从宏观上看,
从微观上看,
引入多道程序设计技术的根本目的是提高
CPU的利用率,充分发挥系统部件的并行性。
多道程序设计技术提高资源利用率和系统吞吐率的原理
例如计算某个数据处理问题,要求从输入机 (速度为 6400字符/秒 )输入 500个字符,经处理 (费时 52毫秒 )后,将结果 (假定为 2000个字符 )存到磁带上 (磁带机速度为 10万字符/秒 ),然后,再读 500个字符处理,直至所有的输入数据全部处理完毕。
图 1-4 单道算题运行时处理器的使用效率
78
输入机处理器磁带机
130 150 228 280 300 378 430 450
时 间
上述例子说明单道程序工作时,计算机系统的各部件的利用率没有得到充分发挥。为了提高效率,我们考虑让计算机同时接受两道算题,
当第一道程序在等待外围设备的时候,让第二道运行,降低了 CPU空等时间,那么处理器的利用率显然可以有所提高。例如,计算机在接受上述算题时还接受了另一算题:从另一台磁带机上输入 2000个字符,经 42毫秒的处理后,
从行式打印机 (速度为 1350行/分 )上输出两行。
图 1-5 两道算题运行时处理器的使用效率
78
输入机处理器磁带机
130 150 228 280 300 378 430 450
时 间磁带机打印机
P1 P1P2
52 /( 78十 52十 20) ≈ 35%
( 52+42) / 150 ≈ 63 %
采用多道程序设计方法后,提高了效率,即增长了单位时间的算题量,但是,对于每一道程序来说,却延长了计算时间。所以,
多道程序设计技术提高资源利用率和系统吞吐率是以牺牲用户的响应时间为代价的。
操作系统中引入多道程序设计的好处:
一是提高了 CPU的利用率,
二是提高了内存和 I/O设备的利用率,
三是改进了系统的吞吐率,
四是充分发挥了系统的并行性。
其主要缺点是,作业周转时间延长。
多道程序设计系统与多重处理系统 (Multiprocessing)
多重处理系统是指配置了多个物理 CPU,从而能真正同时执行多道程序的系统。当然要有效地使用多重处理系统,必须采用多道程序设计技术;反过来,多道程序设计不一定要求有多重处理系统支持 。
2,多道程序设计的实现
实现多道程序设计必须妥善地解决三个问题:
存储保护与程序浮动;
处理器的管理和调度;
系统资源的管理和调度。
1.2.3.2 操作系统的形成计算机配置操作系统后,其资源管理水平和操作自动化程度有了进一步提高,具体表现在,
1,操作系统实现了计算机操作过程的自动化 。 批处理方式更为完善和方便,作业控制语言有了进一步发展,除了作业控制卡外,又出现了作业说明书,为优化调度和管理控制提供了新手段 。
2,资源管理水平有了提高,实现了外国设备的联机同时操作
(即 SPOOLING),进一步提高了计算机资源的利用率 。
3,提供虚存管理功能,由于多个用户作业同时在内存中运行,
在硬件设施的支持下,操作系统为多个用户作业提供了存储分配,共享,保护和扩充的功能 。
4,支持分时操作,多个用户通过终端可以同时联机地与一个计算机系统交互 。
5,文件管理功能有改进,数据库系统开始出现 。
6,多道程序设计趋于完善,采用复杂的调度算法,充分利用各类资源,最大限度地提高计算机系统效率 。