2.1 操作系统概述
操作系统(Operating System)简称OS,是为了提高计算机的利用率(设计着眼的核心问题)、方便用户使用计算机以及加快计算机响应时间而研制的一种软件。操作系统是控制和管理计算机硬件资源和软件资源的程序集合,是计算机系统中最基本、最重要的系统软件。
操作系统是系统软件的核心。用户通过操作系统使用计算机,其他软件则在操作系统提供的平台上开发和运行。只有安装了操作系统的计算机,人们才能在上面安装和使用其他应用软件。
2.1.1 操作系统的概念
1)什么是操作系统
操作系统是管理计算机软硬件资源、控制程序执行,改善人机界面,合理组织计算机工作流程和为用户使用计算机提供良好运行环境的一种系统软件。
在计算机系统中,操作系统位于硬件和用户之间,一方面,它管理着计算机的硬件资源,另一方面,它又为用户提供友好的操作界面,使用户无需了解过多的硬件细节就能够方便灵活地使用计算机。操作系统使计算机系统的所有资源最大限度地发挥作用,为用户提供方便、有效、友善的服务界面。
2)操作系统的层次结构
操作系统是由若干层次、按照一定结构形式组成的有机体。它的每一层完成特定的功能,并对上一层提供支持,通过逐层功能的扩充,最终实现整个操作系统的功能,完成用户的请求。
若从层次的观点看操作系统本身,可将它由内向外依次分为系统层、管理层和应用层。三个层次的结构如图2.1所示。

图2.1 操作系统的层次结构组成模块
①系统层是内层,具有初级中断处理、外部设备驱动、处理机调度以及实时进程控制和通信的功能。
②系统层外是管理层,包括存储管理、I/O处理、文件存取和作业调度等。当用户需要计算机执行任务时(如从磁盘驱动器上读取和写入文件或在打印机上打印文件等任务),如果没有操作系统,用户就需要生成并运行一个程序以完成这些工作。而在操作系统中,用户则可以通过向操作系统发送一条简单指令来执行这种任务,因为在操作系统中已经包含了完成从磁盘读取文件的操作设计。
③应用层是最外层,是接收并解释用户命令的接口,它允许用户与操作系统交互。有些操作系统的用户界面只允许输入命令行的形式,而有些则可以通过菜单和图标的方式来实现。操作系统也管理应用软件。这些应用软件是用于编辑文档或完成科学计算等任务的特殊应用程序,如编辑器就是一个典型的应用程序,用它可以编辑文档(修改或增减文本),它本身是一个包含一系列指令的程序。要使用这个程序,应首先把它加载到计算机内存中,然后再执行它的指令。操作系统控制所有程序和应用软件的加载与执行。
3)操作系统的主要特征
现代操作系统广泛采用并行操作技术,使多种硬件设备能够并行工作。例如,I/O操作和CPU计算同时进行,在内存中同时存放并执行多道程序等。以多道程序设计为基础的现代操作系统具有以下主要特征:
(1)并发性
并发性是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却只能有一道程序执行。所以,在微观上,这些程序只能是分时地交替执行。两个或多个事件在同一时刻发生称为并行,在操作系统中存在着许多并发或并行的活动。例如,系统中同时有3个程序在运行,它们可能以交叉方式在CPU上执行,也可能一个在执行计算,一个在进行数据输入,另一个在进行计算结果的打印。
(2)共享性
共享是指系统中的资源可供内存中多个并发执行的程序共同使用。由于资源属性的不同,对资源共享的方式也不同。目前主要有以下两种资源共享方式:
①互斥共享方式。它是指系统中的某些资源,如打印机、磁带机等,虽然它们可以提供给多个用户程序使用,但为使所打印或记录的结果不造成混淆,应规定在一段时间内只允许一个用户程序访问该资源。
②同时访问方式。系统中还有另一类资源,允许在一段时间内由多个用户程序“同时”对它们进行访问。这里所谓的“同时”往往是宏观上的,而在微观上,这些用户程序可能是交替地对该资源进行访问,例如对磁盘设备的访问。
程序并发性和资源共享性是操作系统两个最基本的特征,它们又互为对方存在的条件。一方面,资源共享是以程序的并发执行为条件的,若系统不允许程序并发执行,自然不存在资源共享问题;另一方面,若系统不能对资源共享实施有效管理,协调好多个程序对共享资源的访问,也必然影响到程序并发执行的程度,甚至根本无法并发执行。
(3)虚拟性
虚拟是指将一个物理实体映射为若干个逻辑实体。前者是客观存在的,后者是虚构的,是一种感觉性的存在,即主观上的一种想象。例如,在多道程序系统中,虽然只有一个CPU,每次只能执行一道程序,但采用多道程序技术后,在一段时间间隔内,宏观上有多个程序在同时运行。在用户看来,就好像有多个CPU在各自运行自己的程序。这种情况就是将一个物理的CPU虚拟为多个逻辑上的CPU,逻辑上的CPU称为虚拟处理机。类似的还有虚拟存储器、虚拟设备等。
(4)不确定性/异步(随机)性
不确定性是指程序的执行顺序和执行时间的不确定性。在多道程序环境下,允许多个程序并发执行,但只有程序在获得所需的资源后方能执行。在单处理机环境下,由于系统中只有一个处理机,因而每次只允许一个程序执行,其余程序只能等待。当正在执行的程序提出某种资源要求时,如打印请求,而此时打印机正在为其他程序打印,由于打印机属于互斥型共享资源,因此正在执行的程序必须等待且放弃处理机,直到打印机空闲并再次把处理机分配给该程序时,该程序方能继续执行。可见,由于资源等因素的限制,使程序的执行通常都不是“一气呵成”,而是以“停停走走”的方式运行的。内存中的每个程序在何时能获得处理机运行,何时又因提出某种资源请求而暂停,以及程序以怎样的速度向前推进,每道程序总共需要多少时间才能完成等,都是不可预知的。因此,在操作系统中存在着不确定性。
2.1.2 操作系统的功能
从资源管理的角度来看,操作系统具有如下功能:
1)作业管理
作业是指用户在一次计算过程中要求计算机系统所做工作的集合。一个作业由程序、数据和作业说明书三部分组成。系统通过作业说明书控制程序和数据进行各项处理,最后将执行的输出结果提交给用户。作业通常分为脱机控制的批处理作业和联机控制的交互式作业两种。
作业管理可分为作业控制和作业调度两部分。作业控制按照操作说明或收到的命令要求控制作业的执行;而作业调度的任务是在用户输入的一批作业中按一定的策略选取多个作业,为它们分配必要的资源,使它们能同时执行。
一个作业调入系统并建立相应的进程(一个或多个)后,由进程调度来分配CPU,让其在CPU上运行,完成该作业的任务。而一个作业从进入系统到运行结束,一般需要经历提交、准备、执行和完成四种状态,其作业状态的转换过程如图2.2所示。

图2.2 作业状态的转换过程
2)进程与处理机管理
进程与处理机管理又称处理器管理,主要是对中央处理器(CPU)进行管理和调度,以充分发挥CPU的效能。
在多道程序或多用户的环境下,要组织多个作业同时运行,就要解决处理器管理的问题。在多道程序系统中,处理器的分配和运行都是以进程为基本单位的,因而对处理器的管理可归结为对进程的管理。
进程是一个程序针对某个数据集在内存中的一次运行,它是操作系统动态执行的基本单元。进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域、数据区域和堆栈。第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,即进程。因此,进程和程序是两个既有联系又有区别的概念。一个进程对应于一个程序,而一个程序可以同时对应于多个进程。
进程管理应实现下述主要功能。
①进程控制:负责进程的创建、撤销及状态转换。
②进程同步:对并发执行的进程进行协调。
③进程通信:负责完成进程间的信息交换。
④进程调度:按一定算法进行处理机分配。
3)存储管理
存储管理是指对内存储器的管理,根据作业需要分配内存,当作业结束时及时回收所占用的内存区域。存储管理的主要任务是负责内存的分配、保护、扩充和地址映射,合理地为程序分配内存,保证程序间不发生冲突和相互破坏。存储管理应实现下述功能。
①内存分配:按一定的策略为每道程序分配内存。
②内存保护:保证各程序在自己的内存区域内运行而不相互干扰。
③内存扩充:借助虚拟存储技术获得增加内存效果。
④地址映射:在多道程序设计环境下,每个作业都是动态装入内存的,作业的逻辑地址必须转换为内存的物理地址,此转换称为地址映射。
4)设备管理
计算机所连接的外部设备种类很多,操作方法也不相同。设备管理可以为用户提供一个统一的界面,使用户不用关心具体的设备特征,而只需关心输入输出的内容。
设备管理的主要任务是根据预定的分配原则,将设备接口及外设分配给请求输入输出的程序,并启动指定的设备完成实际的输入输出操作,以及操作完毕后进行善后处理等。为了更好地发挥设备和主机的并行工作能力,设备管理采用了通道和缓冲技术。设备管理应实现下述功能。
①设备分配:根据一定的设备分配原则对设备进行分配。
②设备处理:实现物理的输入输出操作,即启动设备、中断处理、结束处理等。
③缓冲管理:由于CPU和I/O设备的速度相差很大,为缓和此矛盾,通常在设备管理中建立I/O缓冲区。对缓冲区的有效管理是设备管理的一项任务。
④设备独立性和虚拟设备:设备独立性是指应用程序独立于具体的物理设备,使用户编程与实际使用的物理设备无关。虚拟设备的功能是将低速的独占设备改造为高速的共享设备。
5)文件管理
前面所讲的处理机管理、存储管理和设备管理都属于硬件资源的管理。软件资源的管理称为信息管理。操作系统管理信息的基本单位是“文件”,并提供了一个树形目录结构来管理这些文件,允许用户将文件分类存放在不同的目录中。在Windows环境中,用“文件夹”来取代“目录”概念,显得更加形象易用。所以,信息管理也可以称为“文件管理”。操作系统对文件的管理采取按名存取的原则,也就是用户无需知道文件的存储细节,只要知道文件名就可以很方便地访问文件。
文件管理是指操作系统对存放在外部存储器上的软件与数据资料的管理。其主要任务是对用户文件和系统文件进行有效管理,支持文件的存储、检索和修改等操作,解决文件的共享、保护、保密和安全性等问题。文件管理应实现下述功能:
(1)文件存储空间的管理
即负责对存储空间的分配与回收等功能。文件存储空间管理的目标是提高文件存储空间的利用率,并提高文件系统的工作速度。
(2)目录管理
目录是为方便文件管理而设置的数据结构,它能提供按名存取的功能。目录管理的任务是为每一个文件建立其目录项(包括文件名、属性及存放位置等),并对目录项加以有效组织,以方便用户按名存取。
(3)文件读、写管理
文件读、写管理是文件管理最基本的功能。文件系统根据用户给出的文件名查找文件目录,从中得到文件在文件存储器上的位置,然后利用文件读、写函数,对文件进行读、写操作。
(4)文件存取控制
为了防止系统中的文件被非法窃取或破坏,在文件系统中应建立有效的保护机制,以保证文件系统的安全性。
2.1.3 操作系统的分类
操作系统是计算机系统软件的核心,根据操作系统在用户界面的使用环境和功能特征的不同,有很多分类方法。
1)按结构和功能分类
操作系统一般可分为批处理系统、分时系统、实时系统、嵌入式操作系统、网络操作系统,以及分布式操作系统。
(1)批处理操作系统
批处理(Batch Processing)操作系统的工作方式是:用户将作业交给系统操作员,系统操作员将许多用户的作业组成一批作业,然后输入到计算机中,在系统中形成一个自动转接的连续的作业流;然后启动操作系统,系统自动依次执行每个作业;最后由操作员将作业结果交给用户。
批处理操作系统的特点是:多道和成批处理,但是用户自己不能干预自己作业的运行,一旦发现错误不能及时改正,从而延长了软件开发时间,所以这种操作系统只适用于成熟的程序。概括来说,批处理操作系统的优点是:作业流程自动化,效率高,吞吐率高。缺点是:无交互手段,调试程序困难。
(2)分时操作系统
分时(Time Sharing)操作系统的工作方式是:一台主机连接了若干个终端,每个终端有一个用户在使用;用户交互式地向系统提出命令请求,系统接受每个用户的命令,采用时间片轮转方式处理服务请求,并通过交互方式在终端上向用户显示结果;用户根据上一步的处理结果发出下一道命令。
分时操作系统将CPU的运行时间划分成若干个片段,称为时间片。操作系统以时间片为单位,轮流为每个终端用户服务。由于时间片非常短,所以每个用户轮流使用时间片而每个用户感觉不到其他用户的存在。
分时系统具有多路性、交互性、“独占”性和及时性的特征。多路性是指同时有多个用户使用一台计算机,从宏观上看是多个作业同时使用一个CPU,从微观上看是多个作业在不同时刻轮流使用CPU。交互性是指用户根据系统响应结果进一步提出新请求(用户直接干预每一步)。“独占”性是指用户感觉不到计算机为其他人服务,就像整个系统为自己所独占。及时性是指系统对用户提出的请求及时进行响应。
常见的通用操作系统是分时系统与批处理系统的结合。其原则是:分时优先,批处理在后。“前台”响应需频繁交互的作业,如终端的要求;“后台”处理时间性要求不强的作业。
(3)实时操作系统
实时操作系统(Real-Time Operating System,RTOS)是指使计算机能及时响应外部事件的请求,在规定的严格时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致工作的操作系统。实时操作系统追求的主要目标是对外部请求在严格时间范围内作出反应,具有高可靠性和完整性。
(4)嵌入式操作系统
嵌入式操作系统(Embedded Operating System)是运行在嵌入式系统环境中,对整个嵌入式系统以及它所操作和控制的各种部件装置等资源进行统一协调、调度、指挥和控制的系统软件。
(5)网络操作系统
网络操作系统是基于计算机网络的,是在各种计算机操作系统的基础上按网络体系结构协议标准开发的系统软件,包括网络管理、通信、安全、资源共享和各种网络应用。其目标是实现网络通信和资源共享。
网络操作系统除了具有一般操作系统的基本功能之外,还具有网络管理模块。网络操作系统用于对多台计算机的硬件和软件资源进行管理和控制。网络管理模块的主要功能是提供高效而可靠的网络通信能力,提供多种网络服务。网络操作系统通常用在计算机网络系统中的服务器上。最有代表性的几种网络操作系统产品有Novell公司的Net ware,Microsoft公司的Windows NT和Windows2000Server、UNIX和Linux等。
(6)分布式操作系统
用于管理分布式系统资源的操作系统称为分布式操作系统。分布式系统(Distributed System)是由多台计算机通过高速互联网络连接在一起而组成的系统。分布式操作系统中任意两台计算机可以通过远程过程调用交换信息,系统中的计算机无主次之分,系统中的资源被提供给所有用户共享,一个程序可分布在几台计算机上并行地运行,互相协调完成一个共同的任务。分布式操作系统的引入主要是为了增加系统的处理能力、节省投资、提高系统的可靠性。
分布式操作系统的特征是:统一性,即它是一个统一的操作系统;共享性,即所有的分布式系统中的资源是共享的;透明性,其含义是用户并不知道分布式系统运行在多台计算机上,在用户眼里整个分布式系统像是一台计算机,对用户来讲是透明的;自治性,即处于分布式系统的多个主机都可以独立工作。
网络操作系统与分布式操作系统在概念上的主要区别是:网络操作系统可以构架于不同的操作系统之上,也就是说它可以在不同的主机操作系统上,通过网络协议实现网络资源的统一配置,在大范围内构成网络操作系统。在网络操作系统中并不能对网络资源进行透明访问,而需要显式地指明资源的位置与类型,对本地资源和异地资源的访问区别对待。分布式操作系统比较强调单一性,它是由一种操作系统构架的。在这种操作系统中,网络的概念在应用层被淡化了,所有资源(本地的资源和异地的资源)都用同一方式管理与访问,用户不必关心资源在哪里,或者资源是怎样存储的。
2)按用户数量分类
操作系统一般可分为单用户操作系统和多用户操作系统。其中,单用户操作系统又可以分为单用户单任务操作系统和单用户多任务操作系统。
(1)单用户单任务操作系统
在一个计算机系统内,一次只能运行一个用户程序,此用户独占计算机系统的全部软硬件资源。常见单用户单任务操作系统有MS-DOS、PC-DOS、CP/M等。
(2)单用户多任务操作系统
单用户多任务操作系统也是为单用户服务的,但它允许用户一次提交多项任务。常见的单用户多任务操作系统有OS/2、Windows95/98/2000等。
(3)多用户多任务操作系统
多用户操作系统允许多个用户通过各自的终端使用同一台主机,共享主机中各类资源。常见的多用户多任务操作系统有UNIX、Windows2000Server、Windows XP/NT、Windows Server2003等。
2.1.4 操作系统的发展趋势
操作系统的发展是一个漫长的过程。计算机发展之初并没有操作系统的概念,当时,每一台计算机必须配备专有的程序,完成相关的工作。随着时代的发展和硬件的进步,产生了为用户管理计算机资源的操作系统,最初的操作系统一次只能运行一个程序,为了节约人力,提高计算机的工作效率,便出现了多任务的操作系统。随后,计算机走入千家万户,便有了面向企业或个人用户的操作系统,直到今天的操作系统。概括而言,操作系统的发展过程迄今为止大致经历了人工操作阶段、管理程序阶段(批处理、执行系统)、操作系统的形成和操作系统的发展4个阶段。
随着计算机技术和网络技术的飞速发展,操作系统也不断发展。总体上说,操作系统始终是以不断满足用户需求的发展趋势而发展的。现代操作系统的发展主要表现在微内核操作系统、嵌入式操作系统、可扩展操作系统和可信操作系统4个方面上。目前,在通用主流操作系统仍然占据比较大的市场份额的基础上,未来一些操作系统将逐步向专用化和小型化等方面发展,并具备如下新特点:
①开源化
开源改变了未来操作系统的开发模式,使得聚集大家的力量打破组织边界、持续创造出更高质量、更安全和更易用的操作系统成为可能。另外,更重要的是它改变了操作系统的使用方式,从“使用许可”为主的商业模式变成以支持和咨询等面向服务为主的商业模式,在全球向服务经济转型的过程中扮演着日益重要的角色。
②专用化
随着计算机应用领域的不断拓展以及普适计算、移动计算和网络计算技术的迅速发展,越来越多的领域需要满足特殊需求的专用操作系统,比如嵌入式操作系统、多媒体操作系统、企业应用操作系统等。这类系统未来的应用领域会越来越广。
③小型化或微型化
通用操作系统的规模和复杂性过大。为了适应特定的应用领域,比如手机、手持游戏机和个人数字助理,甚至在特定的家用设备,如智能遥控器等,未来操作系统必然逐渐向规模和功能小型化发展。
④网络化
网络已经成为人们生活中的一部分,操作系统也越来越依赖网络资源的共享与通信。
⑤安全化或可信化
迄今为止,基于互联网的应用已经渗透到金融、电信、宇航、电子商务、电子政务和军事等社会的各个领域。但是互联网本身具有的开放性和动态性导致各种安全问题日益严重,其应用发展也越来越受到制约。
随着计算机系统互联互通的不断增强和计算需求的不断增长,操作系统在满足功能和性能需求方面也开始与时俱进,适应发展的需要。尽管如此,在安全可信技术方面依然面临许多挑战。未来操作系统的安全性研究包括安全体系结构、安全模型和安全机制等几个方面。开展这些方面的研究需要适应不同用户和应用的需求,以及建立可信的安全保障机制和强调身份证实、完整性和私密性保护等,人们期待着未来的操作系统具有突破性的发展。