2.1.5 操作系统的分类

2.1.5 操作系统的分类

计算机从最早的仅用于科学计算,发展到今天深入人类生活的各个领域,伴随其发展的也有操作系统。在世界范围内,人们熟知的操作系统多达数十种。操作系统的发展动力主要包括计算机资源利用率的不断提高、计算机体系结构的不断发展、计算机器件的不断更新换代、各类用户方便使用的需求等。在计算机广泛的使用领域中,人们对计算机操作系统的性能要求、使用方式也是不同的,按照性能特点和使用方式不同,对操作系统的分类方法也有很多。例如,可以按照机器硬件的大小分为大型机操作系统、小型机操作系统和微型机操作系统;还可以按照操作系统软件结构分为微内核操作系统、模块化操作系统、分层操作系统等。本书按照计算机运行环境来分别介绍两大类操作系统,一类是单CPU、非分布式环境下的操作系统,另一类是多个计算机协作环境下的操作系统。

1.单CPU、非分布式环境下的操作系统

根据被广泛采用的典型分类方法,单CPU、非分布式环境下的操作系统分为三类:批处理操作系统、分时操作系统、实时操作系统。

(1)批处理操作系统

批处理操作系统是能够将作业按照它们的性质分批进行自动处理、无须用户干预并输出结果的操作系统。根据在内存中允许存放的作业数,分为单道批处理系统和多道批处理系统。

单道批处理系统的概念源于20世纪50年代初,系统将多个作业组织为一批处理,由外围机将其输入到磁带中,多个作业是串行执行的,系统每次只能接纳一个作业(单道)。单道批处理系统的特征是自动性、顺序性和单道性,其原理和机制与现代操作系统有较大差距。

多道批处理系统的特点体现在多道和批量两点上,多道是指内存存放多个作业,批量是指系统按照调度策略和原则同时从磁盘调入一个或一批作业进入内存运行。多道批处理系统特征是多道性、无序性和调度性。多道性是指内存中存在多道以及开始运行但尚未结束的程序;无序性是指多个作业完成的先后顺序不定;调度性是指作业调度、进程调度,即从磁盘到内存(作业调度)、获得CPU顺序(进程调度)都是遵循一定的调度策略的。现代操作系统已经没有作业调度功能了。

多道批处理操作系统具有如下优点:

·提高资源利用率(CPU和I/O设备);

·系统吞吐量大,即单位时间内处理作业的个数多;

·系统切换开销小,并发的多道程序共享CPU,切换时需要的时空开销小。

(2)分时操作系统

多道批处理操作系统十分注重对系统资源的利用,追求高的吞吐量,各类资源管理功能非常强,但是没有提供用户与作业的交互能力,用户无法控制其作业的运行,造成用户响应时间过长。例如,早期使用多道批处理操作系统进行人口普查计算,计算机可以发挥其效用,计算量巨大,作业(程序)投入运行,几十小时之后才出现结果,同时,新开发的程序难免有不少错误和需要修改的地方,用户要在几小时甚至几十小时之后才知道程序有错误,修改后,又要重新开始几十小时的运行周期,给用户带来极大不便。因此导致人们去研究一种能够使用户和程序之间具备交互能力的系统。在20世纪60年代初期,美国麻省理工学院建立了第一个分时操作系统,简称分时系统。

分时系统的产生,既是由人们对人机交互能力、共享主机的需求推动的,也是由终端技术的成熟促成的。分时系统是多用户共享系统,一般是一台计算机连接多个终端,每个用户通过相应的终端使用计算机。所谓分时,是把每个作业的运行时间分成一个个的时间段,每个时间段称为一个时间片,从而可以将CPU工作时间分别提供给多个用户使用,每个用户依次轮流使用时间片。时间片非常小,一般以微秒为单位,用户从键盘输入/输出比较慢,有时还需要停下来思考,而CPU处理速度很快,这样用户在多个时间片间切换时感觉不到间断性,以为自己独占计算机,这就从“微观串行”达到“宏观并行”的效果。分时系统具有以下特征。

·同时性(多路性):若干用户可同时上机共享一个CPU。系统允许将多台终端同时连接到一台主机上,并按分时原则为每个终端分配系统资源,提高资源利用率,降低使用费用。

·独占性:系统用户之间互相独立工作,独占一台终端,互不干涉,虽然共享CPU及其他资源,但是每个用户感觉好像独占计算机系统。

·及时性:用户的请求能在很短的时间内得到响应。

·交互性:用户可根据系统响应结果,通过终端直接控制程序运行,同其程序之间可以进行交互“会话”,请求多方面的服务。

多道批处理系统和分时系统都使用多道程序设计,现在的商业操作系统都同时具有多道和分时功能,一般把分时功能称为前台功能,批处理功能称为后台功能。

(3)实时操作系统

某些领域(如军事、工业、多媒体等)要求系统能够实时响应并安全可靠,实时操作系统在这样的需求下诞生。因此实时操作系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。

实时操作系统的处理机制与分时操作系统的处理机制在底层原理上相同,但实时操作系统有其独特的要求,如在规定时间内完成特定功能等。实时操作系统通常包括实时过程控制和实时信息处理两种系统。前者如钢厂高炉控制、轧钢系统控制,后者如订票系统、联机情报检索等,目前随着数据库技术的发展,有学者将后者归为数据库应用系统。实时任务从不同角度有着不同的分类。

按任务执行时是否呈现周期性变化可将实时任务分为周期性实时任务和非周期性实时任务。对于周期性实时任务,外部设备周期性地发出激励信号给计算机,要求它按照指定周期循环执行,以便周期性地控制某外部设备。对于非周期性实时任务,外部设备所发出的激励信号并无明显的周期性,但都必须联系着一个截止时间,这个截止时间可分为开始截止时间和完成截止时间。

按对截止时间的要求来划分,可将实时任务分为硬实时任务(Hard Real-time Task)和软实时任务(Soft Real-time Task)。硬实时任务是指系统必须满足任务对截止时间的要求,否则将会出现错误,带来难以预测的后果(工业和武器控制系统常用)。软实时任务对截止时间的要求不那么严格,即使偶尔出现错过截止时间的情况,对系统影响也不会太大(信息查询系统和多媒体系统等常用)。

实时操作系统有为特定应用设计的也有通用的,很多通用的系统,如IBM的OS/390、微软的Windows NT等,都有实时操作系统的特征。因此即使一个操作系统不是严格意义上的实时操作系统,它们也能解决一部分实时应用问题。

2.多个计算机协作环境下的操作系统

多个计算机协作环境下的操作系统,典型的有网络操作系统(NOS,Network Operating System)、分布式操作系统。

早期,计算机网络刚刚出现,为了实现计算机在网络互连下的通信及协调工作,出现了网络操作系统。网络操作系统是网络用户和计算机网络的接口,它除了提供标准操作系统功能外,还管理计算机与网络相关的硬件和软件资源,提供网络管理和通信服务。网络相关的硬件诸如网卡、网络打印机、大容量外存等,为用户提供的服务包括文件共享、打印共享等各种网络服务以及电子邮件、WWW等专项服务。目前所有操作系统都具有网络功能,因此都可以称为网络操作系统。

分布式系统是将一组物理上分布的计算机系统通过网络连接在一起,形成逻辑上统一的系统。系统中任意两台计算机可以交换信息,每台计算机都具有同等地位,既没有主机,也没有从机,每台计算机上的资源为所有用户共享,任何工作都可以分布在几台计算机上,由它们并行工作协同完成。用于管理分布式计算机系统的操作系统称为分布式操作系统,负责全系统的协调控制、资源分配、任务划分、信息传输等工作,并为用户提供统一的界面和标准的接口。分布式操作系统是计算机网络环境下的理想目标,但是实现这个目标非常复杂,因此目前还没有完全商用化的成熟的分布式操作系统。