1.2 操作系统的发展与演变
在操作系统的发展历程中,促使其不断进步和提高的因素很多。首先,硬件技术的快速发展促进了器件的更新换代。从电子管到晶体管,从集成电路到超大规模集成电路,微电子技术作为推动计算机技术飞速发展的“引擎”,促使计算机系统快速更新,由8位机、16位机发展到32位机、64位机,相应的64位操作系统也被研制和开发出来。计算机体系结构的不断发展,由硬件改进导致操作系统发展的事例很多:图形界面终端代替字符显示终端后,窗口系统被广泛应用;随着互联网的迅猛发展和日益普及,出现了分布式操作系统;随着信息家电产业化,出现嵌入式操作系统。其次,提高计算机系统的资源利用率始终是操作系统发展的动力之一。为了实现多用户共享计算机系统的资源,必须设法提高系统利用率,各种调度算法、分配策略被研究和采纳。最后,应用需求不断地促进操作系统变革。从批处理操作系统到交互型分时操作系统,改善了用户上机、调试程序的环境;从命令行交互进化到图形用户界面,使用计算机变得更加方便;当用户感觉现有功能不能满足需要时,操作系统往往要升级开发新工具,加入新设施。
1.2.1 批处理操作系统
批处理操作系统服务于一系列称为批(Batch)的作业,作业是把程序、数据连同作业说明书组织起来的任务单位,把批中的作业预先输入作业队列中,由操作系统按照作业说明书的要求调度和控制作业的执行,大幅度减少人工干预,形成自动转接和连续处理的作业流,由操作员在计算结束之后把运算结果返回给用户。采用批处理方式工作的操作系统通常称为批处理操作系统。
批处理操作系统是最先采用多道程序设计技术的系统,是根据预先设定调度策略选择若干作业并发地执行的,系统的资源利用率高,作业吞吐量大。其缺点是:作业的周转时间长,不具备交互式计算的能力,不利于程序的开发和调试。批处理操作系统的特征如下。
1)脱机工作
用户在提交作业直至获得计算结果之前,不再和计算机及其作业交互,因而作业控制技术对作业来说是必不可少的。
2)成批处理
操作员集中用户提交的一批作业,预先输入计算机中作为后备作业,由批处理操作系统按照调度策略逐批地选择并装入主存执行。
3)单/多道程序运行
早期批处理操作系统采用单道批处理,作业进入系统之后排定次序,依次进入主存处理,并自动进行作业的转接。后来采用多道批处理,从后备作业中选取多个作业进入主存,并同时运行,这是多道批处理系统。
现代“批”的含义已经发展为“表示非交互计算”,也就是一批作业不需要与任何用户交互,直到有足够的存储空间及空闲的处理器资源,才可以执行。在现代操作系统中,执行批作业的控制流采用“文件”形式表示,如Windows中的autoexec.bat、Linux中的Shell文件。用户在这些类型的文件中,可以定义一系列操作系统命令,利用批处理功能,自动、连续地执行控制文件。
1.2.2 分时操作系统
批处理操作系统的工作重点是性能,是由于当时计算机硬件的成本较高,希望在单位时间内将处理作业的数量最大化,通过批处理方式产生足够的工作量,再利用多道程序设计技术,让CPU和设备并行执行,从而达到提高作业吞吐能力的目的。但是,用户却不能干预自己程序的运行,无法得知程序的进展情况,不利于程序调试和排错,于是产生了分时操作系统。
1961 年,美国麻省理工学院开发了第一个分时系统 CTSS(Compatible Time-Sharing System,兼任分时系统),成功地运行在IBM709和IBM7094机上,支持32个交互式用户同时工作。1965年,在美国国防部的支持下,美国麻省理工学院、贝尔实验室和通用电气公司合作开发了“公用计算服务系统”,以支持整个波士顿地区的所有分时用户,这就是著名的MULTICS(Multiple Access Computer System,多路存取计算机系统)。该系统运行在GE-635、GE-645计算机上,使用高级语言PL/1编程,引入现代操作系统的许多概念雏形,如分时处理、远程联机、多级反馈调度和保护安全机制等,对其后操作系统的设计产生极大影响。1970年,曾经参与MULTICS的美国AT&T贝尔实验室研究人员研制开发了著名的UNIX分时操作系统。在CTSS、MULTICS等系统消失多年之后,直到现在UNIX仍然是一个主流操作系统,可见其强大的生命力。几乎现代所有的操作系统都具备分时处理的功能。
所谓分时操作系统,就是允许多个联机用户同时使用一个计算机系统进行交互式计算的操作系统。其实现的基本思路是:用户在各自的终端上进行会话,程序、数据和命令均在会话过程中提供,以交互方式控制程序的执行。系统把处理器的时间划分成时间片,轮流分配给各个联机终端,若时间片用完则产生时钟中断,控制权转至操作系统并重新进行调度。如果原程序尚未完成,挂起并等待再次分得时间片。由于调试程序的用户常常只发送简短的命令,这样其要求总能得到快速的响应,好像用户独自占用计算机系统一样。实质上,分时操作系统是多道程序的一个变种,CPU被若干交互式用户多路复用,不同之处在于每个用户都拥有一台联机终端。分时操作系统的特点如下。
(1)同时性:若干终端用户联机使用计算机,分时是指多个用户分享同一台计算机的CPU时间。
(2)独立性:终端用户彼此独立,互不干扰,每个终端用户感觉好像独占整台计算机。
(3)及时性:终端用户的立即型请求能够在足够短的时间内得到响应。
(4)交互性:人机交互,联机工作,用户直接控制程序的运行,便于程序调试和排错。
1.2.3 实时操作系统
虽然多道批处理操作系统和分时操作系统能够获得较佳的资源利用率和快速响应时间,使得计算机的应用范围日益扩大,但它们难以满足实时控制和实时信息处理的需要,于是产生了实时操作系统。典型的实时操作系统包括:过程控制系统、信息查询系统和事务处理系统。计算机用于过程控制时,要求系统实时采集数据,并对其进行分析处理,进而自动发出控制信号以控制相应的执行机构,使某些参数(如压力、温度、距离、湿度等)能够按照预定的规律变化,保证产品质量。实时操作系统还可用于实时信息处理,如情报检索系统,可同时接受各终端所发来的服务请求和提问,快速查询信息数据库,在极短时间内做出响应。事务处理系统不仅对终端用户及时做出响应,还要对系统中的文件或数据库频繁地加以更新。例如,飞机订票系统,这样的系统应该具有响应迅速、安全保密、可靠性高等特点。
实时操作系统是指当外部事件或数据产生时,能够对其予以接受并以足够快的速度进行处理,所得结果能够在规定时间内控制生产过程或对控制对象做出快速响应,并控制所有实时任务协调运行的操作系统。因此,提供及时的响应和高可靠性是其主要特点。由于实时操作系统所控制的过程系统较为复杂,通常包括四部分:数据采集,负责收集、接受和输入系统必要的信息或进行信号检测;加工处理,对进入系统的信息进行加工处理,获得控制系统工作所必需的参数或做出决定,然后进行结果输出、记录或显示;操作控制,根据处理结果采取适当的措施或动作,达到控制或适应环境的目的;反馈处理,监督执行机构的执行结果,并将此结果反馈至信号检测或数据接受部件,以便系统根据反馈信息进一步采取措施,达到施加控制的预期目的。
1.2.4 其他类型操作系统
操作系统已经存在了半个多世纪,除了以上三种基本类型的操作系统,还出现了其他各种类型的操作系统,简要介绍如下。
1.大型机操作系统
高端操作系统是用于大型机的操作系统,房间般大小的大型计算机往往可在一些大型企业组织的数据中心见到,它与个人计算机的主要差别表现在 I/O 处理能力等方面,如用户1000个磁盘和上100万GB的数据。大型机操作系统主要用于面向多个作业的同时处理,多数这样的作业需要巨大的 I/O 处理能力。大型机操作系统主要提供三类服务:批处理、事务处理和分时处理。
2.服务器操作系统
服务器操作系统一般运行在服务器(可以是大型的个人计算机、工作站等计算机)上,它们通过网络同时为若干个用户服务,并且允许用户共享硬件和软件资源。服务器操作系统可提供打印服务、文件服务或 Web 服务等功能。Internet 服务商往往运行着多台服务器以支持其用户,使 We b 站点保存 We b 页面并处理进来的请求。典型的服务器操作系统有Solaris、Windows Server 200X、AIX和Linux Server版等。
3.微机操作系统
微型计算机的出现引发了计算机产业革命,使其进入社会生活的各个领域,拥有巨大的使用量和最广泛的用户群。现代微机操作系统都支持多道程序处理,在启动时通常由十多个程序开始运行。它们主要功能是为单个用户提供良好的支持,广泛应用于文字处理、电子表格、游戏和Internet访问。常见的微机操作系统有Windows XP/Vista、Macintosh、Linux Fedora和FreeBSD等。
4.嵌入式操作系统
随着以计算机技术、通信技术为主导的信息技术的快速发展和互联网的广泛应用,3C (Computer、Communication、Consumer Electronics)合一趋势已现端倪。计算机技术是贯穿信息化的核心技术,网络和通信设备是信息化赖以存在的基础设施,电子消费产品是人与社会信息化的主要接口。3C合一的必然产物是信息电器,同时计算机的微型化和专业化趋势已成为人们的共识,这就为计算机技术渗透进各行各业、应用于各个领域、嵌入到各种设备和开发各种产品奠定了坚实的物质基础。由于嵌入式操作系统的应用环境与其他类型的计算机系统存在较大的区别,随之而来的是对嵌入式软件的需求,而嵌入式操作系统是嵌入式软件的基本支撑。
嵌入式操作系统与具体的应用环境密切相关,按照应用范围划分,可分为通用型和专用型。通用型嵌入式操作系统适用于多种应用领域,著名的产品有Windows CE、VxWorks和嵌入式 Linux;专用型嵌入式操作系统则面向特定的应用场合,如适用于掌上计算机的Palm OS、适用于移动电话的Symbian等。
5.传感器节点操作系统
在一些配置微小传感器的网络中,传感器节点是一种可以彼此通信并且使用无线通信基站的微型计算机。这样的传感器网络可以为建筑物周边保护、国土边界保卫、森林火灾探测、气象预测用的温度与降水测量等重要参数进行相关信息收集。
传感器是一种内建有无线电的电池驱动的微小型计算机,长时间工作在无人的户外环境,通常是恶劣的环境条件下。其网络应用基础必须足够健壮,以允许个别节点失效。有时会随着内部电池逐步耗尽,这种失效节点会不断增加。每个传感器节点是一个配有CPU、RAM、ROM 以及一个或多个环境传感器的实实在在的计算机。节点上运行一个小型但是真实的操作系统,通常这个操作系统是事件驱动的,可以响应外部事件,或者是基于内部时钟进行周期性的测量。该操作系统必须小且简单,因为这些节点的 RAM 容量很小,而且电池寿命有限。与嵌入式操作系统相似,所用的程序是预先装载的。TinyOS就是一个用于传感器节点的知名操作系统。