多道程序设计技术
首先分析一个进行数据传输的应用程序。该程序在运行过程中依次输入n批数据(每批数据是1000个字符)。输入机每输入1000个字符需要用1000ms,CPU处理这1000个字符的数据需用300ms。可见,尽管处理机具有和外部设备并行工作的能力,但是在这种情况下处理机仍有空闲等待现象。
首先是用户程序在CPU中进行计算,当它需要进行I/O时,向监督程序提出请求。监督程序接到用户程序的I/O请求,进行必要的处理,然后启动I/O操作。这段时间是监督程序在CPU上运行所花费的时间,是系统用于管理的开销。I/O设备被启动后,CPU空闲等待,直到I/O操作完毕,发生结束中断。当监督程序接收到设备发出的中断信号,进行设备中断处理,然后将CPU的控制权交还给用户程序,用户程序又接着在CPU上继续计算。注意,用户程序的计算和监督程序的管理工作都是在CPU上运行。从上述分析可看出,在输入操作结束之前,处理机处于空闲状态,其原因是I/O处理与本道程序相关。
这些情况说明了当系统内只有一道程序工作时,计算机系统的各部件不一定能并行操作,它们的效能没有得到充分发挥。为了解决这一问题,提出了在系统内同时存放几道程序,让它们同时运行的思路和方法,这就是多道程序设计技术。
多道程序设计技术是在计算机主存中同时存放几道相互独立的程序,它们在操作系统控制之下,相互穿插地运行。当某道程序因某种原因不能继续运行下去时(如等待外部设备传输),操作系统便将另一道程序投入运行,这样可以使CPU和各外部设备尽可能地并行操作,从而提高计算机的使用效率。
用户程序A首先在处理机上运行,当它需要输入数据时,操作系统为它启动输入机进行输入工作,并调度用户程序B开始运行。当程序B请求输出时,操作系统又启动相应的外部设备进行工作。当程序A的I/O处理结束时,程序B仍在CPU上运行,则程序A等待,直到程序B计算结束请求输出时,才转入程序A的执行。从图1.6中可以看出,在两道程序执行的情况下,CPU的效率已大大提高。
多道程序运行的特征有如下3点
①多道:计算机主存中同时存放几道相互独立的程序。
②宏观上并行:同时进入系统的几道程序都处于运行过程中,即它们都开始运行,但都未运行完毕。
③微观上串行:从微观上看,主存中的多道程序轮流或分时地占有处理机,交替执行。
如何理解宏观上并行这一特征?在单处理机系统中,CPU严格地按照指令计数器的内容顺序地执行每一个操作,即一个时刻只能有一个程序在处理机上运行。那么,多道程序如何并行执行呢?由于计算机系统有多个物理部件(如CPU、输入机、打印机等),进入主存的多道程序可以在不同的部件上进行操作。例如某时刻程序A正在处理机上运行,程序B在打印输出,程序C正在输入数据,从宏观上看,这几道程序的工作都在向前推进,它们都处于执行状态。微观上串行这一特征表现在同时被接收进入计算机的若干道程序在CPU上是相互穿插地运行,当正在处理机上运行的程序因为要输入或输出等原因而不能继续运行下去时,就把处理机让给另一道程序。所以从微观上看,一个时刻只有一个程序在处理机上运行。
分时技术
在脱机方式下,程序运行过程中用户不能直接实施控制。用户必须在程序提交给系统前考虑好程序运行中可能出现的问题以及处理的方法。用户使用系统提供的作业控制语言写好操作说明书,连同程序和数据一起提交给系统。以脱机方式使用计算机,用户是非常不方便的。
人们希望能直接控制程序的运行,这种操作方式称为联机操作方式。在此方式下,一方面,操作员可以通过终端向计算机发出各种控制命令;另一方面,系统在运行过程中可输出一些必要的信息,如给出提示符,报告运行情况和操作结果等,以便让用户根据这些信息决定下一步的工作。这样,用户和计算机之间可以“交互会话”,用户十分喜欢这种工作方式。
当计算机技术和软件技术发展到20世纪60年代中期,主机速度的不断提高,使一台计算机同时为多个终端用户服务成为可能。操作系统采用了分时技术,使每个终端用户在自己的终端设备上以联机方式使用计算机,好像自己独占机器一样。
分时技术,就是把处理机时间划分成很短的时间片(如几百毫秒)轮流地分配给各个用户程序使用,如果某个用户程序在分配的时间片用完之前还未完成计算,该程序就暂停执行,等待下一轮继续计算,此时处理机让给另一个用户程序使用。这样,每个用户的各次要求都能得到快速响应,给每个用户的印象是独占一台计算机。采用分时技术的系统称为分时系统,分时系统的响应时间一般为秒级。
在多道程序设计技术和分时技术的支持下,出现了批处理系统和分时系统,在这两类系统中配置的操作系统分别称为批量操作系统和分时操作系统,这两类操作系统的出现标志着操作系统的形成。
与此同时,计算机开始用于生产过程的控制,形成了实时系统。随着计算机性能的不断提高,计算机的应用领域越来越宽广。例如,炼钢、化工生产的过程控制,航天和军事防空系统中的实时控制。更为重要的是计算机广泛用于信息管理,如仓库管理、医疗诊断、气象监控、地质勘探等。
实时处理的关键词是“实时”二字。“实时”是指计算机对于外来信息能够在被控对象允许的截止期限(Deadline)内做出反应。实时系统的响应时间是由被控对象的要求决定的,一般要求秒级、毫秒级、微秒级甚至更快的响应时间。
实时系统中配置的操作系统称为实时操作系统。在20世纪60年代后期,批处理系统、分时系统和实时系统得到广泛应用,在这一阶段形成操作系统的主要类型有:批量操作系统、分时操作系统和实时操作系统。在这些操作系统中采用的很多技术至今仍在使用。
操作系统的进一步发展
从20世纪80年代以来,操作系统得到了进一步发展。促使其进一步发展的原因,一是微电子技术、计算机技术、计算机体系结构的迅速发展;二是用户的需求不断提高。它们使操作系统沿着个人计算机操作系统、网络操作系统、多处理机操作系统、集群操作系统、分布式操作系统等方向发展。
现代操作系统是指当前正广泛使用和流行的操作系统,包括具有图形用户界面、功能强大的个人计算机操作系统;吞吐量大、处理能力强的现代批处理操作系统;交互能力强、响应快的分时操作系统;具有实时响应、可预测分析能力的实时操作系统;具有网络资源共享、远程通信能力的网络操作系统;具有单一系统映像、分布处理能力的分布式操作系统以及分布实时操作系统等。这些操作系统继承了批处理系统和分时系统中已采用的多道程序设计技术、分时技术、保护和安全等技术。随着应用需求的不断提高,人机交互技术、其他面向可视化的技术不断地发展,并得到更为广泛的应用。