4.3 操作系统概述
4.3 操作系统概述
4.3.1 操作系统的功能
操作系统(Operating System,OS)是管理计算机系统的全部硬件资源、控制程序运行、改善人机界面、合理组织计算机工作流程和为用户使用计算机提供良好运行环境的一种系统软件。它使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。
从资源管理的角度,操作系统是用来控制和管理计算机系统的硬件资源和软件资源的管理软件。 如记录资源的使用状况(哪些资源空闲、哪些可以使用、能被谁使用、使用多长时间等),合理分配及回收资源等。
从用户的观点,操作系统是用户和计算机硬件之间的界面。 用户通过使用操作系统所提供的命令和交互功能实现访问计算机的操作,完成用户指定的任务。
从层次的观点,操作系统是由若干层次、按照一定结构形式组成的有机体。 操作系统的每一层完成特定的功能,并对上一层提供支持,通过逐层功能的扩充,最终完成整个操作系统的功能,完成用户的请求。
一个标准PC的操作系统应该提供以下功能:
(1)进程与处理机管理
进程与处理机管理,又称处理器管理,主要是对中央处理器(CPU)进行管理、调度,以充分发挥CPU的效能。
在多道程序或多用户的环境下,要组织多个作业同时运行,就要解决处理器管理的问题。在多道程序系统中,处理器的分配和运行都是以进程为基本单位的,因而对处理器的管理可归结为对进程的管理。
进程是一个程序针对某个数据集,在内存中的一次运行。 它是操作系统动态执行的基本单元。 进程的概念主要有两点:第一,进程是一个实体。 每一个进程都有它自己的地址空间,一般情况下,包括文本区域、数据区域和堆栈。 第二,进程是一个“执行中的程序”。 程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,即进程。 因此,进程和程序是两个既有联系又有区别的概念,正如铁路交通中所使用的列车和火车的概念,火车是一种交通工具,是静止的,而列车是正在行驶中的火车,是动态的,不仅包括火车本身,还包括当前所运载的人和物,起点和终点等。 进程管理包括以下几个方面:
①进程控制。 为多道程序并发执行而创建进程,并为之分配必要的资源。 当进程运行结束时,撤销该进程,回收该进程所占用的资源,同时,控制进程在运行过程中的状态转换。
②进程同步。 为使系统中的进程有条不紊地运行,系统要设置进程同步机制,为多个进程的运行进行协调。
③进程通信。 系统中的各进程之间有时需要合作,需要交换信息,为此需要进行进程通信。
④进程调度。 从进程的就绪队列中,按照一定的算法选择一个进程,把处理机分配给它,并为它设置运行现场,使之投入运行。
(2)内存管理(存储器管理)
存储管理是指对内存储器的管理,根据作业需要分配内存,当作业结束时及时回收所占用的内存区域。
存储管理的主要任务是为多道程序的运行提供良好的环境,方便用户使用存储器,并提高内存的利用率。 存储管理包括以下几个方面:
①内存分配。 为每道程序分配内存空间,并使内存得到充分利用,在作业结束时收回其所占用的内存空间。
②内存保护。 保证每道程序都在自己的内存空间运行,彼此互不侵犯,尤其是操作系统的数据和程序,绝不允许用户程序干扰。
③地址映射。 在多道程序设计环境下,每个作业是动态装入内存的,作业的逻辑地址必须转换为内存的物理地址,这一转换称为地址映射。
④内存扩充。 内存的容量是有限的。 为满足用户的需要,通过建立虚拟存储系统来实现内存容量的逻辑上的扩充。
(3)设备管理
在计算机系统的硬件中,除了CPU和内存,其余几乎都属于外部设备,外部设备种类繁多,物理特性相差很大。 因此,操作系统的设备管理往往很复杂。 设备管理主要实现对设备的分配,启动指定的设备进行实际的输入输出操作,以及操作完毕进行善后处理。
设备管理主要包括:
①缓冲管理。 由于CPU和I/O设备的速度相差很大,为缓和这一矛盾,通常在设备管理中建立I/O缓冲区,而对缓冲区的有效管理便是设备管理的一项任务。
②设备分配。 根据用户程序提出的I/O请求和系统中设备的使用情况,按照一定的策略,将所需设备分配给申请者,设备使用完毕后及时收回。
③设备处理。 设备处理程序又称设备驱动程序,对于未设置通道的计算机系统其基本任务通常是实现CPU和设备控制器之间的通信。 即由CPU向设备控制器发出I/O指令,要求它完成指定的I/O操作,并能接收由设备控制器来的中断请求,给予及时的响应和相应的处理。对于设置了通道的计算机系统,设备处理程序还应能根据用户的I/O请求,自动构造通道程序。
④设备独立性和虚拟设备。 设备独立性是指应用程序独立于具体的物理设备,使用户编程与实际使用的物理设备无关。 虚拟设备的功能是将低速的独占设备改造为高速的共享设备。
(4)文件管理
在操作系统的五大功能模块中,处理机管理、存储管理和设备管理都属于硬件资源的管理。 软件资源的管理称为信息管理,即文件管理。 现代计算机系统中,总是把程序和数据以文件的形式存储在文件存储器中(如磁盘、光盘、磁带等)供用户使用。 因此,操作系统必须具有文件管理功能。
操作系统对文件的管理采取按名存取的原则,用户无须了解存取文件的过程和文件的位置,只要知道文件名,就可以存取文件中的信息。 文件管理的主要任务是对用户文件和系统文件进行管理,支持文件的存储、检索、修改等操作,解决文件的共享、保护和保密等问题。
文件管理包括以下内容:
①文件存储空间的管理。 所有的系统文件和用户文件都存放在文件存储器上。 文件存储空间管理的任务是为新建文件分配存储空间,在一个文件被删除后应及时释放所占用的空间。文件存储空间管理的目标是提高文件存储空间的利用率,并提高文件系统的工作速度。
②目录管理。 为方便用户在文件存储器中找到所需文件,通常由系统为每一文件建立一个目录项,包括文件名、属性以及存放位置等,由若干目录项又可构成一个目录文件。 目录管理的任务是为每一文件建立其目录项,并对目录项加以有效的组织,以方便用户按名存取。
③文件读、写管理。 文件读、写管理是文件管理的最基本的功能。 文件系统根据用户给出的文件名去查找文件目录,从中得到文件在文件存储器上的位置,然后利用文件读、写函数,对文件进行读、写操作。
④文件存取控制。 为了防止系统中的文件被非法窃取或破坏,在文件系统中应建立有效的保护机制,以保证文件系统的安全性。
(5)作业管理
作业是指用户在一次计算过程中要求计算机系统所做工作的集合。 一个作业由程序、数据和作业说明书3部分组成。 系统通过作业说明书控制程序和数据进行各项处理,最后将执行的输出结果提交给用户。 作业通常分为脱机控制的批处理作业和联机控制的交互式作业。
作业管理可分为作业控制和作业调度两部分,作业控制按照操作说明或收到的命令要求,控制作业的执行;而作业调度功能保证在多人作业中,选取若干作业,为它们分配所需资源,并让它们执行。
一个作业调入系统建立相应的进程(一个或多个)后,由进程调度来分配CPU,让其在CPU上运行,完成该作业的任务。
作业调度的任务是在用户输入的一批作业中按一定的策略选取多个作业,为它们分配必要的资源,使它们能同时执行。
一个作业从进入系统到运行结束,一般需要经历提交、准备、执行和完成4种状态,其作业状态的转换过程如图4.2所示。

图4.2 作业状态的转换过程
(6)网络通信
许多现代的操作系统都具备操作主流网络通信协定TCP/IP的能力。 也就是说,这样的操作系统可以进入网络世界,并且与其他系统分享诸如文件、打印机与扫描仪等资源。
(7)安全机制
大多数操作系统都含有某种程度的信息安全机制。 信息安全机制主要基于两大理念:一是,操作系统提供外界直接或间接访问数种资源的管道,如本地端磁盘驱动器的文件、受保护的特权系统调用(System call)、用户的隐私数据与系统运行的程序所提供的服务。 二是,操作系统有能力认证(Authentication)资源访问的请求。
(8)用户界面
今日大部分的操作系统都包含图形用户界面(GUI)。 图形用户界面与时俱进,例如,Win⁃dows在每次新版本上市时就会将其图形用户界面改头换面,而Mac OS的GUI也在Mac OSX上市时出现重大转变。
(9)驱动程序
所谓的驱动程序(Device Driver)是指某类设计来与硬件交互的计算机软件。 操作系统通常会主动制订每种设备该有的操作方式,而驱动程序功能则是将那些操作系统制订的行为描述,转译为可让设备了解的自定义操作手法。
4.3.2 操作系统的发展
操作系统的发展是一个漫长的过程,计算机发展之初并没有操作系统的概念,当时,每一台计算机必须配专有的程序,完成相关的工作;随着时代的发展和硬件的进步,产生了为用户管理计算机资源的操作系统,最初的操作系统一次只能运行一个程序,为了节约人力、提高计算机的工作效率,便出现了多任务的操作系统;随后,计算机走入千家万户,便有了面向企业、个人用户的操作系统,直到今天的操作系统。 操作系统的发展过程大致经历了人工操作计算机、管理程序使用计算机、操作系统的形成和操作系统的发展4个阶段。
1)人工操作阶段
从1946年第一台计算机(ENIAC)诞生到20世纪50年代中期的第一代计算机,由于其存储容量小,运算速度慢,外部设备少等原因,人们使用计算机只能采用人工操作方式,根本没有操作系统的概念。 在人工操作情况下,用户一个接着一个地轮流使用计算机。 每个用户的使用过程大致如下:
①把手工编写的程序(机器语言编写的程序)穿成纸带(或卡片)装进输入机。
②经人工操作把程序和数据输入计算机。
③通过控制台开关启动程序运行。
④待计算完毕,用户拿走打印结果,并卸下纸带(或卡片)。
在这个过程中需要人工装纸带、人工控制程序运行、人工卸纸带,进行一系列的“人工干预”。 这种由一道程序独占机器的情况,在计算机运算速度较慢的时候是可以容忍的。 随着计算机技术的发展,计算机的速度、容量、外设的功能和种类等方面都有了很大的发展。 比如,计算机的速度就有了几十倍、上百倍的提高,故使得手工操作的慢速度和计算机运算的高速度之间形成了一对矛盾,即所谓人—机矛盾。
2)管理程序阶段(批处理、执行系统)
为了充分利用计算机的时间,减少空闲等待,缩短作业的准备和建立时间,人们研究了驻留在内存中的管理程序。
在管理程序的控制下,计算机可以自动控制和处理作业流。
其工作流程如下:操作员集中一批用户提交的作业,由管理程序将这一批作业装到输入设备上(如果输入设备是纸带输入机,则这一批作业在一盘纸带上。 若输入设备是读卡机,则该批作业在一叠卡片上),管理程序自动把第一个作业装入内存,使其被计算机处理。 当该作业完成,管理程序再调入第二个作业到内存。 只有一个作业处理完毕后,管理程序才可以自动地调度下一个作业进行处理,依次重复上述过程,直到该批作业全部处理完毕。 这是早期的批处理系统,也称为执行程序。 早期的批处理系统,作业的输入/输出是联机的,也就是说作业从输入机到磁带,由磁带调入内存,以及结果的输出打印都是由CPU直接控制的,称为联机批处理系统。
为了克服联机批处理速度慢的缺点,在批处理系统中引入了脱机输入/输出技术,从而形成了脱机批处理系统。 脱机批处理系统由主机和卫星机组成,卫星机又称外围计算机,它不与主机直接连接,只与外部设备打交道。 作业通过卫星机输入到磁带上,当主机需要输入作业时,就把输入带同主机连上。 主机从输入带上把作业调入内存,并予以执行。 作业完成后,主机负责把结果记录到输出带上,再由卫星机负责把输出带上的信息打印输出。 这样,主机摆脱了慢速的输入/输出工作,可以较充分地发挥它的高速计算能力。 同时,由于主机和卫星机可以并行操作,因此脱机批处理系统与早期联机批处理系统相比大大提高了系统的处理能力。
批处理技术出现后,由单道批处理发展到多道批处理,这是操作系统产生和发展的阶段,到了多道批处理阶段,便形成了操作系统。
3)操作系统的形成
随着第三代计算机性能的提高,机器速度更快,内存容量更大,特别是大容量高速磁盘存储器的出现,为软件的发展提供了有力的支持。20世纪60年代中期以后,随着多道程序的引入和分时系统,实时系统的出现,标志着操作系统的形成。
操作系统形成后,最大的优点为实现了操作的自动化;同时,资源管理由操作系统统一完成,提高了其管理水平;存储管理功能得到加强,极大地方便了用户的使用。
4)操作系统的发展
进入20世纪80年代以后,操作系统得到了较快的发展。 我们将其归结为以下几个方面:(1)微机操作系统的发展
20世纪70年代中期到80年代初为其第一阶段,其特定为单用户、单任务的操作系统。20世纪80年代以后为第二阶段,其特点为单用户、多任务和支持分时操作。 微型机操作系统拥有最广泛的用户,由于微型计算机使用量大,在此,微型机上最具代表性的操作系统为Win⁃dows系列。
微电子技术推动计算机技术飞速发展,推动微型机更新换代,它由8位机、16位机发展到32位、64位机,相应的微机操作系统也由8位微机操作系统发展到16位、32位、64位操作系统。
(2)并行操作系统的发展
为提高计算机的性能及元器件的运行速度,人们采用增加同一时间间隔内的操作数量,通过并行处理技术和并行计算机来达到。 已经开发出的并行计算机有阵列处理机、流水线处理机、多处理机。 为了发挥并行计算机的性能,需要有并行算法、并行语言等许多软件相配合,而并行操作系统则是并行计算机发挥高性能的基础和保证。
(3)分布式操作系统的发展
分布式系统是用通信网连接并用消息传送进行通信的计算机系统,随着微型、小型机的发展,人们开始研究由多台微、小型计算机组成的分布式系统。 它具有多机合作和健壮性的特点。 多机合作表现在自动的任务分配和协调,而健壮性表现在当系统中有一个甚至几个计算机或通路发生故障时,其余部分可自动重构成为一个新的系统,该系统仍可以工作,甚至可以继续其失效部分的全部工作。 正是由于多机合作,系统才具有响应时间短、吞吐量大,以及可用性好和可靠性高等特点。 分布式系统的控制和管理依赖于分布式操作系统。 因而,分布式操作系统也越来越受到人们的重视,是当前正在进行深入研究的热点之一。
4.3.3 操作系统的类型
在整个操作系统的发展历程中,操作系统的分类没有一个单一的标准,可以根据工作方式分为批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统等;根据架构可分为单内核操作系统等;根据运行的环境,可分为桌面操作系统、嵌入式操作系统等;根据指令的长度分为8,16,32,64bit的操作系统。
1)批处理操作系统
批处理(Batch Processing)操作系统的工作方式是:用户将作业交给系统操作员,系统操作员将许多用户的作业组成一批作业,之后输入到计算机中,在系统中形成一个自动转接的连续作业流,然后启动操作系统,系统自动执行每个作业。 最后由操作员将作业结果交给用户。
批处理操作系统的特点是多道和成批处理。 但是用户自己不能干预自己作业的运行,一旦发现错误不能及时改正,从而延长了软件开发时间,因此这种操作系统只适用于成熟的程序。
批处理操作系统的优点是:作业流程自动化、效率高、吞吐率高。 缺点是:无交互手段、调试程序困难。
2)分时操作系统
分时(Time Sharing)操作系统的工作方式是:一台主机连接了若干个终端,每个终端有一个用户使用。 用户向系统提出命令请求,系统接受每个用户的命令,采用时间片轮转方式处理服务请求,并通过交互方式在终端上向用户显示结果。 用户根据上一步的处理结果发出下一道命令。
分时操作系统将CPU的运行时间划分成若干个片段,称为时间片。 操作系统以时间片为单位,轮流为每个终端用户服务。 由于时间片非常短,所以每个用户感觉不到其他用户的存在。
分时系统具有多路性、交互性、“独占”性和及时性的特征。 多路性是指同时有多个用户使用一台计算机,宏观上看是多个作业同时使用一个CPU,微观上是多个作业在不同时刻轮流使用CPU。 交互性是指用户根据系统响应结果进一步提出新请求(用户直接干预每一步)。“独占”性是指用户感觉不到计算机为其他人服务,就像整个系统为他所独占。 及时性是指系统对用户提出的请求及时响应。
常见的通用操作系统是分时系统与批处理系统的结合。 其原则是:分时优先,批处理在后。 “前台”响应需频繁交互的作业,如终端的要求;“后台”处理时间性要求不强的作业。
3)实时操作系统
实时操作系统(Real Time Operating System,RTOS)是指使计算机能及时响应外部事件的请求,在严格规定的时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致地工作的操作系统。 实时操作系统追求的主要目标是:对外部请求在严格时间范围内作出反应,具有高可靠性和完整性。
4)嵌入式操作系统
嵌入式操作系统(Embedded Operating System,EOS)是运行在嵌入式系统环境中,对整个嵌入式系统以及它所操作、控制的各种部件装置等资源进行统一协调、调度、指挥和控制的系统软件。
5)个人计算机操作系统
个人计算机操作系统是一种单用户多任务的操作系统。 个人计算机操作系统主要供个人使用,功能强、价格便宜,可以在几乎任何计算机上安装使用。 它能满足一般人操作、学习、游戏等方面的需求。 个人计算机操作系统的主要特点是:计算机在某一时间内为单个用户服务;采用图形界面进行人机交互,界面友好;使用方便,用户无须专门学习,也能熟练操纵计算机。
6)网络操作系统
网络操作系统是基于计算机网络的,是在各种计算机操作系统上按网络体系结构协议标准开发的系统软件,包括网络管理、通信、安全、资源共享和各种网络应用。 其目标是实现网络通信及资源共享。
7)分布式操作系统
通过高速互联网络将许多台计算机连接起来形成一个统一的计算机系统,可以获得极高的运算能力及广泛的数据共享。 这种系统被称作分布式系统(Distributed System)。
分布式操作系统的特征是:统一性,即它是一个统一的操作系统;共享性,即所有的分布式系统中的资源是共享的;透明性,其含义是用户并不知道分布式系统是运行在多台计算机上,在用户眼里整个分布式系统像是一台计算机,对用户来讲是透明的;自治性,即处于分布式系统的多个主机都可独立工作。
网络操作系统与分布式操作系统在概念上的主要区别在于:网络操作系统可以构架于不同的操作系统之上,也就是说它可以在不同的主机操作系统上,通过网络协议实现网络资源的统一配置,在大范围内构成网络操作系统。 在网络操作系统中并不能对网络资源进行透明地访问,而需要显式地指明资源位置与类型,对本地资源和异地资源的访问区别对待。 分布式操作系统比较强调单一性,它是由一种操作系统构架的。 在这种操作系统中,网络的概念在应用层被淡化了。 所有资源(本地的资源和异地的资源)都用同一方式管理与访问,用户不必关心资源在哪里,或者资源是怎样存储的。
4.3.4 常见的操作系统
选择要安装的操作系统通常与其硬件架构有很大的关系,只有Linux与BSD几乎可在所有硬件架构上运行,而Windows NT仅移植到了DECAlpha与MIPSMagnum。 在1990年早期,个人计算机的选择就已被局限在Windows家族、类Unix家族以及Linux上,而以Linux及Mac OSX为最主要的另类选择,直至今日。
大型机与嵌入式系统使用很多样化的操作系统。 大型主机近期有许多开始支持Java及Linux以便共享其他平台的资源。 嵌入式系统近期百家争鸣,从给Sensor Networks用的Berke⁃ley Tiny OS到可以操作Microsoft Office的Windows CE都有。
1)个人计算机
个人计算机市场目前分为两大阵营,此两种架构分别有支持的操作系统:
Apple Macintosh——Mac OSX,Windows(仅Intel平台),Linux、BSD。
IBM兼容PC——Windows、Linux、BSD、Mac OSX(非正式支持)。
2)大型机
最早的操作系统是针对20世纪60年代的大型主结构开发的,由于这些系统在软件方面作了巨大投资,因此原来的计算机厂商继续开发与原来操作系统相兼容的硬件与操作系统。这些早期的操作系统是现代操作系统的先驱。 现在仍被支持的大型主机操作系统包括:
Burroughs MCP——B5000,1961to Unisys Clearpath/MCP,present。
IBMOS/360——IBMSystem/360,1964to IBMz Series,present。
UNIVACEXEC8——UNIVAC1108,1964to Unisys Clearpath IX,present。
现代的大型主机一般也可运行Linux或Unix变种。
3)嵌入式系统
嵌入式系统使用较为广泛的操作系统(如Vx Works、e Cos、Symbian OS及Palm OS)以及某些功能缩减版本的Linux或其他操作系统。 某些情况下,OS指称的是一个自带了固定应用软件的巨大泛用程序。 在许多最简单的嵌入式系统中,所谓的OS就是指其上唯一的应用程序。
4)类Unix系统
所谓的类Unix家族指的是一族种类繁多的OS,此族包含了System V、BSD与Linux。 Unix操作系统是一个通用、交互型分时操作系统,是目前唯一可以安装和运行在微型机、工作站直到大型机和巨型机上的操作系统。
Minix与Unix兼容,内核全新的学习型操作系统,学生可以用它来分析一个操作系统,研究其内部运作,其名称源于“小Unix”,由于其简洁、短小,故称Minix。
Linux操作系统(见图4.3)是芬兰的一个学生编写的类似Minix的操作系统,它是自由软件,开放源代码并可自由修改,因此有着广泛的用户群体和广泛的应用领域。

图4.3 Linux操作系统
5)微软Windows
Microsoft Windows系列操作系统是在微软给IBM机器设计的MS⁃DOS的基础上设计的图形操作系统。 现在的Windows系统,如Windows2000、Windows XP皆是创建于现代的Windows NT内核。 Windows可以在32位和64位的Intel和AMD的处理器上运行。 由于人们对于开放源代码操作系统兴趣的提升,Windows的市场占有率相应有所下降,但是到2004年为止,Win⁃dows操作系统在世界范围内占据了桌面操作系统90%的市场。
Windows系统也被用在低级和中级服务器上,并且支持网页服务的数据库服务等一些功能。最近微软花费了大量的研究与开发经费,用于使Windows拥有能运行企业的大型程序的能力。
Windows XP(见图4.4)在2001年10月25日发布,2004年8月24日发布服务包2,2008年4月21日发布最新的服务包3。 微软上一款操作系统Windows Vista(开发代码为Long⁃horn)于2007年1月30日发售。 Windows Vista增加了许多功能,尤其是系统的安全性和网络管理功能,并且其拥有界面华丽的Aero Glass。 但是整体而言,其在全球市场上的口碑却并不是很好。 其后继者Windows7(见图4.5)则是于2009年10月22日发售,Windows7改善了Windows Vista为人诟病的性能问题,相较于Windows Vista,在同样的硬件环境下,Windows7的表现较Windows Vista更好。 而最新的Windows8(见图4.6)则于2012年10月26日发售。
6)苹果Mac OS
Mac OS是一套运行于苹果Macintosh系列计算机上的操作系统。 Mac OS是首个在商用领域成功的图形用户界面系统。 Macintosh组包括比尔·阿特金森(Bill Atkinson)、杰夫·拉斯金(Jef Raskin)和安迪·赫茨菲尔德(Andy Hertzfeld)。 现行的最新的系统版本是Mac OSX v10.8。

图4.4 Windows XP操作系统

图4.5 Windows7操作系统
7)关于未来
研究与创建未来的操作系统依旧进行着。 操作系统正朝着更省电、网络化、易用、华丽的用户界面的方向改进。 类Unix OS通过和桌面环境开发者协作,正努力改进使用环境。
Eye OS是一个实用的网络云运算操作系统。
GNUHurd是一个以完全兼容Unix并加强许多功能为目标的微内核架构。 微软Singulari⁃ty是一个奠基于.Net并以创建较佳存储器保护机制为目标的研究计划。

图4.6 Windows8操作系统