1.1.2 操作系统的形成和发展
自1946年诞生第一台计算机至今,计算机经历了60多年的发展时期,操作系统伴随计算机硬件的发展及应用的日益广泛而发展。最初的计算机系统上没有操作系统,软件的概念也不明确。随着处理器集成技术、中断技术和通道技术等硬件技术的不断发展,促进了软件概念的形成,从而也推动了操作系统的形成和发展。而操作系统等软件的发展反过来也促进了硬件的发展。粗略地说,操作系统的发展是由人工操作阶段过渡到早期批处理阶段而具有其雏形,而后发展到多道程序系统时才逐步完善的。
1. 人工操作阶段
早期的计算机运算速度慢,可用资源少,系统只支持机器语言或汇编语言,因而没有操作系统,由单个用户独占计算机。程序员通过卡片或纸带将程序和数据输入计算机,运行结果显示在屏幕上,或者穿孔于卡片或纸带上。人工操作方式的特点如下。
(1)用户独占系统。用户使用计算机时独占全部机器资源,计算机资源的利用率和计算机运行效率极其低下。
(2)人工介入多。程序员全程介入计算过程的输入、运算和输出等阶段,自动化程度较低,出错的机会较高。计算机的使用者通常是计算机专业技术人员,非专业人员难以操作。
(3)计算时间长。整个计算过程中,数据的输入、程序的执行和结果的输出均是联机进行的,每个环节还必须进行校对,因而计算时间很长,浪费了大量的人力。
人工操作方式的计算过程如图1-1所示。
图1-1 人工操作方式的计算过程
2. 批处理系统阶段
早期批处理系统借助于作业控制语言(Job Control Language,JCL)对人工操作方式进行了变革。用户可以通过脱机方式控制和应用计算机,通过作业控制卡来描述对作业的加工和控制步骤,并把作业控制卡连同程序、数据一起提交给操作员,操作员收集到一批作业后一起把它们放到卡片机上输入计算机;计算机则运行一个驻留内存的执行程序,以对作业进行自动控制和成批处理。显然,这种系统能实现作业到作业的自动转换,缩短作业的准备和创建时间,减少人工操作和人工干预,提高了计算机的使用效率。
早期批处理系统中,作业的输入和输出均是联机实现的,I/O设备和CPU是串行工作的,CPU利用率较低。为了解决这个问题,在批处理系统中引进了脱机I/O技术,方法是除主机外另设一台辅机,辅机的主要功能是与I/O设备打交道,需要进行输入操作时,输入设备上的作业通过辅机记录到磁带上(脱机输入);主机可以把磁带上的作业读入内存执行,作业计算完成后,主机将结果记录到磁带上;接下来,辅机可以读出磁带上的结果,控制打印机输出结果。可以看出,主机和辅机是可以并行工作的,程序的处理和数据的输入输出速度明显提高,这种技术就是假脱机I/O技术,假脱机技术显然使批处理系统效率大大提高。
为了进一步提高批处理系统的效率,计算机主机中逐渐加载一些管理程序,这些管理程序的功能包括自动控制和处理作业流,设备驱动和输入输出控制,程序加载和装配,以及简单的文件管理等。这些管理程序丰富了输入输出设备类型,并对进入系统的程序和数据进行了有效的管理,从而缩短了作业的准备和创建时间,充分发挥批处理系统的性能。这些管理程序就形成了操作系统的雏形。
批处理系统的计算过程如图1-2所示。
图1-2 批处理系统的计算过程
3. 多道程序系统阶段
20世纪60年代初,中断和通道等两项技术取得了突破,它们的结合为实现CPU和I/O设备的并行工作提供了硬件基础。多道程序系统是指在主存中存放多道用户的作业,这些作业可以共享系统资源并交替计算。从宏观上说,这些作业都处在运行状态而尚未完成,因而这些作业可以并发执行;而从微观来说,这些作业又是串行执行的,因为任一时刻只有一个作业在使用CPU运算。
严格地说,早期的多道程序系统仍旧属于批处理系统。引入多道程序设计技术的根本目的是提高CPU的利用率,充分发挥CPU和I/O设备的并行性,现代计算机系统一般都采用了多道程序设计技术。程序之间、设备之间、设备和CPU之间均可以并行工作。
多道程序设计系统如图1-3所示。
图1-3 多道程序设计系统
多道程序系统具备多道、宏观并行和微观串行等特点,另外还有一些显著特征。
(1)无序性:多个作业完成的先后顺序与它们进入主存的顺序之间并无严格的对应关系。如先进入主存的程序不一定能保证首先完成,甚至可能最后完成,而后进入主存的程序也有可能先完成。
(2)调度性:一个作业从提交给系统开始直至完成,可能需要经过多次作业调度和进程调度。具体的调度算法将在后续的章节中介绍。
4. 操作系统的发展
通过多道程序系统,可以使批处理更加有效,提高了系统资源利用率和吞吐量。但是,对许多作业来说,需要提供一种新模式以便用户可以直接与计算机交互,分时系统的出现解决了人机交互的问题。分时系统与多道批处理系统之间有着截然不同的性能差别,它既实现了人机交互的功能,还实现了多个用户同时共享使用一台主机的功能,而且非常适合执行数据查询功能。
分时系统的实现思想:每个用户在各自终端上以问答方式控制程序的运行,系统把CPU的时间划分成时间片段(也称时间片),轮流分配给各个联机终端用户,每个用户只能在极短的时间内执行,如果时间片用完,则挂起当前任务等待下次分配的时间片。人机交互的任务通常是发出简短命令的小任务,所用的时间片不会太大,因而每个终端用户的每次请求基本上都能获得系统较为快速的响应,感觉上是独占了这台计算机。可以看出,分时系统是多道程序系统的一个变种, CPU被若干个交互式的用户通过联机终端多路复用了。分时操作系统如图1-4所示。
分时系统具有同时性、独立性、及时性和交互性等特征,得到了极为广泛的应用。
虽然多道程序系统和分时操作系统获得了较高的资源利用率和快速的响应时间,但它们难以满足实时控制和实时信息处理领域的需要。于是出现了实时操作系统,目前有三种典型的实时系统,过程控制系统、信息查询系统和事务处理系统。过程控制系统主要应用在现场实时数据采集、计算处理,进而控制相关执行机构的场合,如卫星测控系统、火炮自动控制系统等。信息查询系统应用在必须做出极快回答和响应的实时信息处理场合,如情报检索系统。事务处理系统不仅要对终端用户及时做出响应,而且要对系统中的文件和数据进行频繁的更新,如银行业务处理系统、电子商务系统等。
图1-4 分时操作系统
实时系统是指能及时响应外部事件的请求,并在规定的较短时间内完成对该事件的处理,并控制所有实时任务协调一致地运行的操作系统。
实时系统具有多路性、独立性、及时性、交互性和可靠性等特征,与分时系统相比,及时性的特点更为明显。