1.1 知识要点总结
一、操作系统的概念、特征、功能和提供的服务
1.操作系统的概念
(1)操作系统定义
操作系统(Operating System, OS)是为裸机配置的一种系统软件,是管理和控制计算机软件和硬件资源的管理机构,由一系列程序模块组成的程序集合。它为用户和其他软件提供用机接口和环境,合理组织调度计算机的工作和资源的分配,使用户以及应用程序能够以安全和高效的方式得到运行。
(2)操作系统的设计目标
操作系统的设计目标包括:
①提供用户与计算机硬件系统之间的接口,方便用户使用;
②有效管理计算机系统硬件和软件资源,使其得到更有效的利用;
③合理组织调度计算机系统的工作流程,以改善系统性能。
2.操作系统的特征
操作系统是一种系统软件,但与其他的系统软件和应用软件不同,操作系统有自己的基本特征包括并发性、共享性、虚拟性和异步性。
(1)并发性
并发性是指两个或两个以上的事件或活动在同一时间间隔内发生,是指宏观上在一段时间内有多个程序在同时运行,但在微观上这些程序是交替执行的。
注意并发与并行的区别,并行性是指两个或多个事件在同一时刻发生。
【例】在操作系统中,并发性是指若干个事件( )发生。
A.在同一时刻
B.一定在不同时刻
C.在某一时间间隔内
D.依次在不同时间间隔内
【答案】C
【解析】并发性是指两个或多个事件在同一时间间隔内发生。而并行性主要指的是硬件上的概念,是指两个或多个事件在同一时刻发生。
(2)共享性
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。资源共享是支持并发性的基础,为了支持进程的并发执行,操作系统必须有效地控制并发进程对资源的共享。
共享可分为两种资源共享方式:
①互斥共享方式,系统中的某些资源在一段时间内只允许一个进程访问,进程之间互斥地共享这些资源,比如打印机、磁带机等。
②同时访问方式,系统中还有另一类资源,允许在一段时间内由多个进程“同时”对它们进行访问,这里所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问即“分时共享”,典型的可供多个进程“同时”访问的资源是磁盘设备。
并发和共享是操作系统两个最基本的特征,这两者之间又是互为存在条件的:一方面,资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享问题;另一方面,若系统不能对资源共享实施有效的管理,也必将影响到程序的并发执行,甚至根本无法并发执行。
(3)虚拟性
虚拟性是指操作系统的一种管理技术,它把物理上的一个实体变成逻辑上的多个对应体,或者把物理上的多个实体变为逻辑上的一个对应体,物理实体是实的,即实际存在的:而逻辑上的是虚的,是用户感觉上的事物。操作系统中利用了多种虚拟技术,例如CPU的分时和虚拟存储器等,用分时使用一个处理器它能同时为多个用户服务,使每个终端用户都感觉有一个中央处理器(CPU)在专门为它服务。类似地,虚拟存储器是将一台机器的物理存储器变为虚拟存储器,以便从逻辑上来扩充存储器的容量,当然,这时用户所感觉到的内存容量是虚的。
(4)异步性
异步性也称为随机性,由于系统资源的共享,有限的资源使并发进程之间产生相互制约关系,系统中的各个进程何时执行、何时暂停以及以怎样的速度向前推进、什么时候完成等都是不可预知的,这种特性称为计算机的异步性。
3.操作系统的功能
操作系统是计算机资源的管理者,它为用户分配所需的各种软硬件资源,向用户提供了程序执行的良好环境。它的功能主要包括:处理机管理、存储器管理、设备管理以及文件管理,同时为了方便用户使用操作系统,还必须向用户提供接口。
(1)处理机管理
处理机管理的主要任务是对处理机的分配和运行实施有效管理,依据系统设计的各种策略执行处理机的调度以及处理内部和外部的各种中断事件。在多道程序环境下,处理机的分配和运行都是以进程为基本单位,因而对处理机能管理可归结为对进程的管理。进程管理的主要功能有:进程控制、进程同步、进程通信、死锁处理、处理机调度等。
(2)存储器管理
存储器管理是为了给多道程序的运行提供良好的环境,方便用户使用以及提高内存的利用率,主要包括内存分配、地址映射、内存保护与共享和内存扩充等功能。
(3)设备管理
设备管理主要管理各种外部设备,根据用户的请求,帮助完成各种I/O操作。设备管理包括设备外设的管理和控制,提供设备的驱动和中断处理程序,负责设备的分配和驱动,保证设备独立性,提供缓冲技术,以便提高设备的利用率。
(4)文件管理
文件管理主要指对系统中的各种软件资源的管理,提供各种操作命令,实现用户的按名存取,实现文件的共享和存取控制以及文件存储空间的管理等。
4.操作系统提供的服务
由操作系统的功能可总结出它提供的如下服务:
(1)提供用户接口
操作系统是用户与计算机硬件之间的接口,操作系统提供的接口主要分为三类:命令接口、程序接口以及图形接口。用户利用命令接口来组织和控制作业的执行;而编程人员可以使用程序接口来请求操作系统服务。
①命令接口,该接口按作业控制方式的不同可以分为联机命令接口和脱机命令接口。
a.联机用户接口,是为联机用户提供的,它由一组键盘操作命令及命令解释程序所组成。当用户在终端或控制台上每键入一条命令后,系统便立即转入命令解释程序,对该命令加以解释并执行该命令。在完成指定功能后,控制又返回到终端或控制台上,等待用户键入下一条命令。
b.脱机命令接口,是为批处理作业的用户提供的,故也称为批处理用户接口,该接口由一组作业控制语言JCL组成,用户利用该接口与自己的作业进行交互。
②程序接口,该接口由一组系统调用命令(简称系统调用,也称广义指令)组成。用户通过在程序中使用这些系统调用命令来请求操作系统为其提供服务。用户在程序中可以直接使用这组系统调用命令向系统提出各种服务要求,如使用各种外部设备,进行有关磁盘文件的操作,申请分配和回收内存以及其他各种控制要求。
③图形接口,该接口是为了让用户更方便获得操作系统服务,其采用图形化的操作界面将系统的各项功能、各种应用程序和文件直观、逼真地表示出来。用户可用鼠标或通过菜单以及对话框,来完成对应用程序和文件的操作。
(2)执行程序,将用户程序装入内存,并启动程序,控制程序正常完成任务或错误终止。
(3)I/O操作,为请求I/O的用户执行设备的启动、驱动和中断处理等。
(4)文件系统操作,为用户提供操作文件所需的各种操作和功能。
(5)通信服务,控制进程之间的同步和通信。
(6)错误检测和处理。
【例】操作系统为用户提供了多种接口,它们是( )。
Ⅰ.计算机高级指令;Ⅱ.终端命令;Ⅲ.图标菜单;Ⅳ.汇编语言;Ⅴ.C语言;Ⅵ.系统调用
A.Ⅰ; Ⅱ; Ⅴ
B.Ⅱ; Ⅲ; Ⅵ
C.Ⅲ; Ⅳ; Ⅴ
D.Ⅱ; Ⅳ; Ⅵ
【答案】B
【解析】操作系统有两种接口,命令输入和系统调用,而命令输入又可以分为命令行和图形用户界面。终端命令是命令行,图标菜单是图形用户界面。所以只有Ⅱ、Ⅲ和Ⅵ正确。
二、操作系统的发展与分类
1.无操作系统的计算机系统
(1)手工操作方式
还未出现OS时,计算机操作是由用户(即程序员)采用人工操作方式直接使用计算机硬件系统,即由程序员将事先已穿孔(对应于程序和数据)的纸带(或卡片)装入纸带输入机(或卡片输入机),再启动它们将程序和数据输入计算机,然后启动计算机运行当程序运行完毕并取走计算结果之后,才让下一个用户上机。
这种人工操作方式有以下两方面的缺点:
①用户独占全机,此时,计算机及其全部资源只能由上机用户独占;
②CPU等待人工操作,当用户进行装带(卡)、卸带(卡)等人工操作时,CPU及内存等资源是空闲的。
(2)脱机输入/输出方式
脱机输入/输出方式是事先将装有用户程序和数据的纸带(或卡片)装入纸带输入机(或卡片机),在一台外围机的控制下,把纸带(卡片)上的数据(程序)输入到磁带上。当CPU需要这些程序和数据时,再从磁带上将其高速地调入内存。
相比手工操作方式,该方式有如下优点:
①减少了CPU的空闲时间;
②提高了I/O速度。
2.批处理系统
它的工作方式是用户脱机使用计算机系统,采用单道或多道方式成批处理作业。特点是有效地提高了系统资源的利用效率;提高了系统的吞吐量;但用户与作业之间无法交互;作业平均周转时间较长。其适合处理计算量大的成熟的作业。早期的批处理系统用资源利用率、系统吞吐量以及作业的平均周转时间等指标来衡量操作系统的性能。
(1)单道批处理系统
单道批处理系统是最早出现的一种OS,该系统的主要特征如下:
①自动性,一批作业能自动地逐个地依次运行,无需人工干预。
②顺序性,磁带上的各道作业是顺序地进入内存依次执行,亦即先调入内存的作业先完成。
③单道性,在一个时刻,内存中仅有一道程序运行。
(2)多道批处理系统
在多道批处理系统中,用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”;然后,由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。
该系统的优点主要有:
①可提高CPU的利用率;
②可提高内存和I/O设备利用率;
③增加系统吞吐量。
但同时它也存在以下缺点:
①平均周转时间长;
②无交互能力。
多道批处理系统需要解决的问题有:
①处理机管理问题,在多道程序之间,应如何分配被它们共享的处理机才能保证系统高效的工作。
②内存管理问题,应如何为每道程序分配必要的内存空间,使程序彼此互不干扰。
③I/O设备管理问题,如何分配多种类型的I/O设备,以供多道程序所共享。
④文件管理问题,应如何组织大量的程序和数据,才能使它们既便于用户使用,又能保证数据的安全性和一致性。
⑤作业管理问题,系统中各作业存在差异,应如何组织这些作业。
3.分时操作系统
分时操作系统是多个用户通过终端同时共享一台主机,这些终端连接在主机上,用户可以同时与主机进行交互操作而互不干扰。它采用了分时技术,所谓分时技术就是把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。分时操作系统的特点包括:同时性、独立性、交互性和及时性。
(1)同时性也称多路性,指允许多个终端用户同时使用一台计算机;
(2)独立性是指系统中多个用户可以彼此独立地进行操作,互不干扰,单个用户感觉不到别人也在使用这台计算机,好像只有自己单独使用这台计算机一样;
(3)交互性即用户通过终端采用人—机对话的方式直接控制程序运行并且与程序进行交互;
(4)及时性是指用户请求能在很短时间内获得响应。
分时操作系统适合处理计算量小的不成熟的作业,它使用响应时间来衡量操作系统的性能,影响分时操作系统响应时间的几个因素包括:用户数目、时间片以及程序切换时内外存需要对换的信息量。分时系统的响应时间是以用户能够接受的等待时间来确定的。
4.实时操作系统
实时操作系统是一个专用系统,其工作方式是对随机发生的外部事件能够在规定的时间内做出响应和处理。实时系统的响应时间是以被控制对象所能接收的延迟时间来确定的,它的主要特点是:实时性、可靠性和可确定性。
三、操作系统的运行环境
1.内核态与用户态
用户态和核心态是为了确保系统正确运行,防止用户程序破坏操作系统而引入的CPU的两种运行模式。
(1)内核态
内核态又称为核心态,在此状态下,运行在该模式的代码,可以无限制地对系统存储、外部设备进行访问。
(2)用户态
用户态又称为目态,是指非特权的执行状态,在此状态下,内核禁止在此状态下的代码进行潜在危险的操作,比如写入系统配置文件、杀掉其他用户的进程、重启系统等。
系统把CPU的指令集划分为特权指令(Privileged Instructions)和非特权指令。特权指令是指关系系统全局的指令。例如,存取和操作CPU状态、启动各种外部设备、设置时钟时间、关中断、清主存、修改存储器管理寄存器、改变用户方式到核心方式和停机指令等。这类指令只允许操作系统使用,不允许用户使用。如果在用户态下企图执行一条特权指令,CPU则拒绝执行该指令,并把它当作非法指令,终止其运行。在核心态下,CPU只能执行操作系统程序,允许执行处理机的全部指令集(包括特权和非特权指令),可以访问和管理主存的全部空间;而在用户态下,CPU执行用户程序,且只允许执行处理机的非特权指令。
(3)状态切换
在内核态下CPU可执行任何指令,在用户态下CPU只能执行非特权指令。当CPU处于内核态,可以随意进入用户态;而当CPU处于用户态时,用户从用户态切换到内核态只有在系统调用和中断两种情况下发生,一般程序一开始都是运行于用户态,当程序需要使用系统资源时,就必须通过调用软中断进入内核态。
①用户程序执行到系统调用命令时,CPU的执行状态由硬件自动从用户态切换为核心态,执行操作系统中相应的系统调用子程序。系统调用程序执行完成后,CPU在返回用户程序执行前,将执行方式再变回为用户态,之后继续执行用户程序,从而达到系统保护的目的。
②用户程序运行过程中发送了外界中断,CPU响应中断,它的执行状态也由用户态转换为核心态,执行相应的中断处理程序,中断处理完成后,通常CPU再返回到用户程序执行前将其执行方式改为用户态,之后继续执行用户程序。
2.中断、异常
(1)中断
中断(Interruption),也称外中断,指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序的执行过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。
(2)异常
异常(Exception),也称内中断或陷入(Trap),指源自CPU执行指令内部的事件,如程序的非法操作码、地址越界、算术溢出、虚存系统的缺页以及专门的陷入指令等引起的事件。对异常的处理一般要依赖于当前程序的运行现场,而且异常不能被屏蔽,一旦出现应立即处理。
3.系统调用
系统调用(system call)是由操作系统实现的程序接口或应用编程接口(API)的集合,是应用程序同系统之间的接口。内核提供一系列具备预定功能的多内核函数,通过系统调用的接口呈现给用户。应用程序通过系统调用把请求传给内核,调用相应的的内核函数完成所需的处理,然后系统调用再将处理结果返回给应用程序。
【例】以下说法错误的是( )。
A.系统调用是OS提供给用户程序的唯一接口
B.系统调用是OS内核中提供的一些系统子程序
C.系统调用必须通过执行系统调用命令,由软中断转向相应的系统调用处理程序,同时CPU的执行状态将从用户态转换为系统态
D.系统调用不会像一般的过程调用那样执行完后直接返回调用过程继续执行
【答案】D
【解析】一般的过程调用在被调用过程执行完后,将直接返回到调用过程继续执行;而对系统调用,如果用抢占方式,则在被调用过程执行完后,必须先对要求运行的进程做优先权分析,只有当调用进程仍具最高优先权时,才返回到调用进程继续执行;否则,将引起重新调度。
四、操作系统体系结构
操作系统是一个非常复杂的大型软件。为了使它的功能正确而又便于修改和维护,必须进行细心的工程设计,这就是操作系统的结构设计。操作系统的结构主要包括:模块化结构、层次结构和微内核结构。
1.模块化结构操作系统
模块化结构操作系统按其功能精心地划分为若干个具有一定独立性和大小的模块;每个模块具有某方面的管理功能,如进程管理模块、存储器管理模块、I/O设备管理模块等,并仔细地规定好各模块间的接口,使各模块之间能通过该接口实现交互。然后,再进一步将各模块细分为若干个具有一定功能的子模块,如把进程管理模块又分为进程控制、进程同步等子模块,同样也要规定好各子模块之间的接口。各模块、子模块等组成了模块化操作系统结构。
模块化结构操作系统有以下优点:(1)提高OS设计的正确性、可理解性和可维护性;(2)增强OS的适应性;(3)加速OS的开发过程。
2.层次结构操作系统
层次结构操作系统将系统分为若干个层次,每层又由若干个模块组成,各层之间只存在着单向的依赖关系,即高层仅依赖于紧邻它的低层。
层次结构操作系统有以下优点:(1)易保证系统的正确性;(2)易扩充和易维护性。
3.微内核结构操作系统
在微内核操作系统中,内核是指精心设计的、能实现现代OS最基本的核心功能的部分。微内核并非是一个完整的OS,而只是操作系统中最基本的部分,它通常用于:(1)实现与硬件紧密相关的处理;(2)实现一些较基本的功能;(3)负责客户和服务器之间的通信。它们只是为构建通用OS提供一个重要基础,这样就可以确保把操作系统内核做得很小。
微内核操作系统有以下优点:(1)提高了系统的可扩展性;(2)增强了系统的可靠性;(3)具有可移植性;(4)提供了对分布式系统的支持;(5)融入了面向对象技术。
微内核结构的最大问题是性能问题,因为需要频繁地在核心态和用户态之间进行切换,操作系统的执行开销偏大。因此有的操作系统将那些频繁使用的系统服务又移回内核,从而保证系统性能。但是有相当多的实验数据表明,体系结构不是引起性能下降的主要因素,体系结构带来的性能提升足以弥补切换开销带来的缺陷。为减少切换开销,也有人提出将系统服务作为运行库链接到用户程序的一种解决方案,这样的体系结构称为库操作系统。