所谓
多道程序设计是指允许多个程序同时进入一个
计算机系统的
主存储器并运行这些程序的方法。这种多道程序系统也称为多任务操作系统。
发展阶段
20世纪从60年代中期开始,计算机系统进入了第3代发展时期。以
集成电路为中心的硬件设计与制造工艺不断提高,一大批功能完善、集成度高的微处理器涌人市场。由于其价格便宜,因而被广泛引入到输入输出接口设备、终端及外部设备的设计中,所以,这一时期的计算机除了CPU的运行速度加快、内存容量大大增加之外,还出现了中断装置、输入输出通道、大容量的外
存储器——
磁盘等。
上述各项技术的快速发展,使人们必须要考虑如何提高系统的效率问题。多道程序共享计算机硬件,必然成为操作系统的研究核心。
要使多道程序共享计算机硬件,第一个要解决的问题是内存空间的共享。允许多个程序进入内存,操作系统需要解决好空间分配和存储单元定位问题,让应用程序能够放得下、保存安全、寻址正确,更进一步,还有内存空间扩充问题等。其次是
处理器交替使用的问题,也就是
CPU的控制权转移问题。当一个正在运行的程序需要输入输出时,系统要顺利地将处理器的控制权转交给另一个程序。第三个问题就是共享设备的管理问题。当多个
应用程序对同一台设备提出使用请求时,操作系统需要解决它们的访问冲突。
针对上述3个方面的问题,研究出了一些新技术,使操作系统的管理水平比前期的监控程序有了进一步提高。它开始使用“虚拟化”技术,以提高系统运行大程序的能力,比如,
虚拟机(Virtual Machine)、
虚拟存储器(Virtual Storage)和
虚拟设备(Virtual Units)等。此外,在输入输出方面,
操作系统提供了Spooling(又称“假脱机输入输出”)技术,使系统的输入输出得到改善。
由于不同的管理程序依赖于不同的计算机硬件,特别是各自所追求的使用方式有所不同,这一时期的操作系统在处理方式上存在着明显的差异。相关研究基本上朝着3个方向发展起来,它们是多道批处理(Batch Processing)、分时处(Time Sharing)和实时处(RealTime Processing)。
分类
单用户单任务操作系统:是指一台计算机同时只能有一个用户在使用,该用户一次只能提交一个作业,一个用户独自享用系统的全部硬件和软件资源。(如:MS-DOS、PC-DOS、CP/M)
单用户多任务操作系统:是指一台计算机同时只能有一个用户使用,但该用户一次可以运行或提交多个作业。(如:windows)(window2000和XP都可以有多个用户,为什么还是单用户呢?因为windows虽然可以设置多个用户,但是同一时候只能让一个用户独享系统的所有资源,所以windows只能是单用户操作系统。因为“多用户”的定义是:允许多个用户通过各自的终端,使用同一台主机,共享主机系统的各类资源)
多用户与多任务操作系统:是指一台计算机可以同时有多个用户同时使用,并且同时可以执行由多个用户提交的多个任务(如Unix/Linux等)
特点
多任务系统的特点可概括如下:
(1)多道——主存中有两道以上的程序,且这些程序所对应的进程在任一时刻都处于就绪、运行、等待三个状态之一;
(2)宏观上并行——宏观上看,这些程序都正在执行;
(3)微观上串行——微观上看,这些程序所对应的诸进程正在交替地执行,因为任何一个时刻只能有一个进程在处理机(CPU)上执行的。