目录
第 1 章 计算机系统概述
【考纲内容】
(一)操作系统的基本概念
(二)操作系统的发展历程
(三)程序运行环境
CPU 运行模式:内核模式与用户模式;中断和异常的处理;系统调用;
程序的链接与装入;程序运行时内存映像与地址空间
(四)操作系统结构
分层、模块化、宏内核、微内核、外核
(五)操作系统引导
(六)虚拟机
【复习提示】
本章通常以选择题的形式考查,重点考查操作系统的功能、运行环境和提供的服务。要求读者能从宏观上把握操作系统各部分的功能,微观上掌握细微的知识点。因此,复习操作系统时,首先要形成大体框架,并通过反复复习和做题巩固知识体系,然后将操作系统的所有内容串成一个整体。本章的内容有助于读者整体上初步认识操作系统,为后面掌握各章节的知识点奠定基础,进而整体把握课程,不要因为本章的内容在历年考题中出现的比例不高而忽视它。
1.1 操作系统的基本概念
1.1.1 操作系统的概念
在信息化时代,软件是计算机系统的灵魂,而作为软件核心的操作系统,已与现代计算机系统密不可分、融为一体。计算机系统自下而上可以大致分为 4 部分:硬件、操作系统、应用程序和用户(这里的划分与计算机组成原理中的分层不同)。操作系统管理各种计算机硬件,为应用程序提供基础,并充当计算机硬件与用户之间的中介。
硬件如中央处理器、内存、输入/输出设备等,提供基本的计算资源。应用程序如字处理程序、电子制表软件、编译器、网络浏览器等,规定按何种方式使用这些资源来解决用户的计算问题。操作系统控制和协调各用户的应用程序对硬件的分配与使用。
在计算机系统的运行过程中,操作系统提供了正确使用这些资源的方法。
综上所述,操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。操作系统是计算机系统中最基本的系统软件。
1.操作系统是对( )进行管理的软件。
A. 软件
B. 硬件
C. 计算机资源
D. 应用程序1.C
操作系统管理计算机的硬件和软件资源,这些资源统称为计算机资源。注意,操作系统不仅管理处理机、存储器等硬件资源,还管理文件,文件不属于硬件资源,但属于计算机资源。4.操作系统的基本功能是( )。
A. 提供功能强大的网络管理工具
B. 提供用户界面方便用户使用
C. 提供方便的可视化编辑程序
D. 控制和管理系统内的各种资源4.D
操作系统是指控制和管理整个计算机系统的硬件和软件资源,合理地组织、调度计算机的工作和资源的分配,以便为用户和其他软件提供方便的接口与环境的程序集合。选项 A、B、C 都可理解成应用程序为用户提供的服务,是应用程序的功能,而不是操作系统的功能。1.1.2 操作系统的功能和目标
为给多道程序提供良好的运行环境,操作系统应具有以下几方面的功能:处理机(器)管理、存储器管理、设备管理和文件管理。为方便用户使用操作系统,还要向用户提供接口。同时,操作系统可用来扩充机器,以提供更方便的服务、更高的资源利用率。
下面用一个直观的例子来理解这种情况。例如,用户是雇主,操作系统是工人(用来操作机器),计算机是机器(由处理机、存储器、设备、文件几个部件构成),工人有熟练的技能,能够控制和协调各个部件的工作,这就是操作系统对资源的管理;同时,工人必须接收雇主的命令,这就是 “接口”;有了工人,机器就能发挥更大的作用,因此工人就成了 “扩充机器”。
1. 操作系统作为计算机系统资源的管理者
(1)处理机管理
在多道程序环境下,处理机的分配和运行都以进程(或线程)为基本单位,因此对处理机的管理可归结为对进程的管理。并发是指在计算机内同时运行多个进程,因此进程何时创建、何时撤销、如何管理、如何避免冲突、合理共享就是进程管理最主要的任务。进程管理的主要功能包括进程控制、进程同步、进程通信、死锁处理、处理机调度等。
(2)存储器管理
存储器管理是为了给多道程序的运行提供良好的环境,方便用户使用及提高内存的利用率,主要包括内存分配与回收、地址映射、内存保护与共享和内存扩充等功能。
(3)文件管理
计算机中的信息都是以文件的形式存在的,操作系统中负责文件管理的部分称为文件系统。文件管理包括文件存储空间的管理、目录管理及文件读 / 写管理和保护等。
(4)设备管理
设备管理的主要任务是完成用户的 I/O 请求,方便用户使用各种设备,提高设备的利用率,主要包括缓冲管理、设备分配、设备处理和虚拟设备等功能。
这些工作都由 “工人” 负责,“雇主” 无须关注。
2.下面的( )资源不是操作系统应该管理的。
A. CPU
B. 内存
C. 外存
D. 源程序2.D
源程序是一种计算机代码,是用程序设计语言编写的程序,经编译或解释后可形成具有一定功能的可执行文件,是直接面向程序员用户的,而不是操作系统的管理内容。本题采用排除法可轻易得到答案,但有人会问操作系统不是也管理 “文件” 吗?源程序也存储在文件中吧?出现这种疑问的原因是,对操作系统管理文件的理解存在偏颇。操作系统管理文件,是指操作系统关心计算机中的文件的逻辑结构、物理结构、文件内部结构、多文件之间如何组织的问题,而不是关心文件的具体内容。这就好比你是操作系统,有十个水杯让你管理,你负责的是将这些水杯放在何处比较合适,而不关心水杯中的是水还是饮料。后续章节会详细介绍文件的管理。3.下列选项中,( )不是操作系统关心的问题。
A. 管理计算机裸机
B. 设计、提供用户程序与硬件系统的界面
C. 管理计算机系统资源
D. 高级程序设计语言的编译器3.D
操作系统管理计算机软 / 硬件资源,扩充裸机以提供功能更强大的扩充机器,并充当用户与硬件交互的中介。高级程序设计语言的编译器显然不是操作系统关心的问题。编译器的实质是一段程序指令,它存储在计算机中,是上述水杯中的水。12.以下关于操作系统的叙述中,错误的是( )。
A. 操作系统是管理资源的程序
B. 操作系统是管理用户程序执行的程序
C. 操作系统是能使系统资源提高效率的程序
D. 操作系统是用来编程的程序12.D
操作系统是用来管理资源的程序,用户程序也是在操作系统的管理下完成的。配置了操作系统的机器与裸机相比,资源利用率大大提高。操作系统不能直接用来编程,选项 D 错误。2. 操作系统作为用户与计算机硬件系统之间的接口
为让用户方便、快捷、可靠地操纵计算机硬件并运行自己的程序,操作系统还提供用户接口。操作系统提供的接口主要分为两类:一类是命令接口,用户利用这些操作命令来组织和控制作业的执行;另一类是程序接口(系统调用),编程人员可用来请求操作系统服务。操作系统主要向用户提供命令接口和程序接口(系统调用),此外还提供图形接口;当然,图形接口其实是调用了系统调用而实现的功能。系统调用是操作系统为应用程序使用内核功能所提供的接口。
7.用户可以通过( )两种方式来使用计算机。
A. 命令接口和函数
B. 命令接口和系统调用
C. 命令接口和文件管理
D. 设备管理方式和系统调用7.B
操作系统主要向用户提供命令接口和程序接口(系统调用),此外还提供图形接口;当然,图形接口其实是调用了系统调用而实现的功能。(1)命令接口
使用命令接口进行作业控制的主要方式有两种,即联机控制方式和脱机控制方式。按作业控制方式的不同,可将命令接口分为联机命令接口和脱机命令接口。
联机命令接口也称交互式命令接口,适用于分时或实时系统的接口。联机命令由一组键盘操作命令组成。用户通过控制台或终端输入操作命令,向系统提出各种服务要求。用户每输入一条命令,控制权就转给操作系统的命令解释程序,然后由命令解释程序解释并执行输入的命令,进而完成指定的功能。之后,控制权转回控制台或终端,此时用户又可输入下一条命令。联机命令接口可以这样理解:“雇主” 说一句话,“工人” 做一件事,并做出反馈,这就强调了交互性。
脱机命令接口也称批处理命令接口,适用于批处理系统。脱机命令由一组作业控制命令组成。脱机用户不能直接干预作业的运行,而应事先用相应的作业控制命令编写一份作业操作说明书,连同作业一起提交给系统。当系统调度到该作业时,由系统中的命令解释程序逐条解释执行作业说明书上的命令,进而间接地控制作业的运行。脱机命令接口可以这样理解:“雇主” 将要 “工人” 做的事情写在清单上,“工人” 按照清单逐条完成这些事情,这就是批处理。
11.为了方便用户直接或间接地控制自己的作业,操作系统向用户提供了命令接口,该接口又可进一步分为( )。
A. 联机用户接口和脱机用户接口
B. 程序接口和图形接口
C. 联机用户接口和程序接口
D. 脱机用户接口和图形接口11.A
程序接口、图形接口与命令接口三者并没有从属关系。按命令控制方式的不同,命令接口分为联机用户接口和脱机用户接口。(2)程序接口
命题追踪 操作系统为应用程序提供的接口(2010)
14.【2010 统考真题】下列选项中,操作系统提供给应用程序的接口是( )。
A. 系统调用
B. 中断
C. 库函数
D. 原语14.A
操作系统接口主要有命令接口和程序接口(也称系统调用)。库函数是高级语言中提供的与系统调用对应的函数(也有些库函数与系统调用无关),目的是隐藏 “访管” 指令的细节,使系统调用更为方便、抽象。但是,库函数属于用户程序而非系统调用,是系统调用的上层。程序接口由一组系统调用(也称广义指令)组成。用户通过在程序中使用这些系统调用来请求操作系统为其提供服务,如使用各种外部设备、申请分配和回收内存及其他各种要求。
8.系统调用是由操作系统提供给用户的,它( )。
A. 直接通过键盘交互方式使用
B. 只能通过用户程序间接使用
C. 是命令接口中的命令
D. 与系统的命令一样8.B
系统调用是操作系统为应用程序使用内核功能所提供的接口。9.操作系统提供给编程人员的接口是( )。
A. 库函数
B. 高级语言
C. 系统调用
D. 子程序9.C
操作系统为编程人员提供的接口是程序接口,即系统调用。10.系统调用的目的是( )。
A. 请求系统服务
B. 中止系统服务
C. 申请系统资源
D. 释放系统资源10.A
操作系统不允许用户直接操作各种硬件资源,因此用户程序只能通过系统调用的方式来请求内核为其服务,间接地使用各种资源。当前最流行的是图形用户界面(GUI),即图形接口。GUI 最终是通过调用程序接口实现的,用户通过鼠标和键盘在图形界面上单击或使用快捷键,就能方便地使用操作系统。严格来说,图形接口不是操作系统的一部分,但图形接口所调用的系统调用命令是操作系统的一部分。
3. 操作系统实现了对计算机资源的扩充
没有任何软件支持的计算机称为裸机,它仅构成计算机系统的物质基础,而实际呈现在用户面前的计算机系统是经过若干层软件改造的计算机。裸机在最内层,外面是操作系统。操作系统所提供的资源管理功能和方便用户的各种服务功能将裸机改造成功能更强、使用更方便的机器;因此,我们通常将覆盖了软件的机器称为扩充机器或虚拟机。
“工人” 操作机器,机器就有更大的作用,于是 “工人” 便成了 “扩充机器”。
注意,本课程关注的是操作系统如何控制和协调处理机、存储器、设备和文件,而不关注接口和扩充机器,对于后两者,读者只需要有个印象,能够理解即可。
1.1.3 操作系统的特征
操作系统是一种系统软件,但与其他系统软件和应用软件有很大的不同,它有自己的特殊性即基本特征。操作系统的基本特征包括并发、共享、虚拟和异步。这些概念对理解和掌握操作系统的核心至关重要,将一直贯穿于各个章节中。
1. 并发(Concurrency)
并发是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,在内存中同时装有若干道程序,以便当运行某道程序时,利用其因 I/O 操作而暂停执行时的 CPU 空档时间,再调度另一道程序运行,从而实现多道程序交替运行,使 CPU 保持忙碌状态。
6.下列关于并发性的叙述中,正确的是( )。
A. 并发性是指若干事件在同一时刻发生
B. 并发性是指若干事件在不同时刻发生
C. 并发性是指若干事件在同一时间间隔内发生
D. 并发性是指若干事件在不同时间间隔内发生6.C
并发性是指若干事件在同一时间间隔内发生,而并行性是指若干事件在同一时刻发生。命题追踪 并行性的定义及分析(2009)
并行性是指系统具有同时进行运算或操作的特性,在同一时刻能完成两种或两种以上的工作。在支持多道程序的单处理机环境下,一段时间内,宏观上有多道程序在同时执行,而在每个时刻,实际仅能有一道程序执行,因此微观上这些程序仍是分时交替执行的。可见,操作系统的并发性是通过分时得以实现的。而 CPU 与 I/O 设备、I/O 设备和 I/O 设备则能实现真正的并行。
13.【2009 统考真题】单处理机系统中,可并行的是( )。
I. 进程与进程 II. 处理机与设备 III. 处理机与通道 IV. 设备与设备
A. I、II、III
B. I、II、IV
C. I、III、IV
D. II、III、IV13.D
在单 CPU 系统中,同一时刻只能有一个进程占用 CPU,因此进程之间不能并行执行。通道是独立于 CPU、控制输入 / 输出的设备,两者可以并行。显然,处理器与设备是可以并行的。设备与设备也是可以并行的,比如显示屏与打印机是可以并行工作的。若要实现进程的并行,则需要有相关硬件的支持,如多流水线或多处理机环境。
注意同一时间间隔(并发)和同一时刻(并行)的区别,下面以生活中的例子来理解这种区别。例如,若你在 9:00—9:10 仅吃面包,在 9:10—9:20 仅写字,在 9:20—9:30 仅吃面包,在 9:30—10:00 仅写字,则在 9:00—10:00 吃面包和写字这两种行为就是并发执行的;又如,若你在 9:00—10:00 右手写字,左手同时拿着面包吃,则这两个动作就是并行执行的。
在操作系统中,引入进程的目的是使程序能并发执行。
2. 共享(Sharing)
资源共享即共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。资源共享主要可分为互斥共享和同时访问两种方式。
(1)互斥共享方式
系统中的某些资源,如打印机、磁带机,虽然可供多个进程使用,但为使得所打印或记录的结果不致造成混淆,应规定在一段时间内只允许一个进程访问该资源。
为此,当进程 A 访问某个资源时,必须先提出请求,若此时该资源空闲,则系统便将之分配给 A 使用,此后有其他进程也要访问该资源时(只要 A 未用完)就必须等待。仅当 A 访问完并释放该资源后,才允许另一个进程对该资源进行访问。我们将这种资源共享方式称为互斥共享,而将在一段时间内只允许一个进程访问的资源称为临界资源。计算机系统中的大多数物理设备及某些软件中所用的栈、变量和表格,都属于临界资源,它们都要求被互斥地共享。(2)同时访问方式
系统中还有另一类资源,这类资源允许一段时间内由多个进程 “同时” 访问。这里所说的 “同时” 通常是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问,即 “分时共享” 的。可供多个进程 “同时” 访问的典型资源是磁盘设备,一些用重入代码编写的文件也可被 “同时” 共享,即允许若干用户同时访问该文件。
注意,互斥共享要求一种资源在一段时间内(哪怕是一段很短的时间)只能满足一个请求,否则就会出现严重的问题(你能想象打印机第一行打印文档 A 的内容、第二行打印文档 B 的内容的效果吗?),而同时访问共享通常要求一个请求分几个时间片段间隔地完成,其效果与连续完成的效果相同。
并发和共享是操作系统两个最基本的特征,两者之间互为存在的条件:①资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享问题;②若系统不能对资源共享实施有效的管理,则必将影响到程序的并发执行,甚至根本无法并发执行。5.现代操作系统中最基本的两个特征是( )。
A. 并发和不确定
B. 并发和共享
C. 共享和虚拟
D. 虚拟和不确定5.B
操作系统最基本的特征是并发和共享,两者互为存在条件。3. 虚拟(Virtual)
虚拟是指将一个物理上的实体变为若干逻辑上的对应物。物理实体(前者)是实的,即实际存在的;而后者是虚的,是用户感觉上的事物。用于实现虚拟的技术称为虚拟技术。操作系统的虚拟技术可归纳为:时分复用技术,如虚拟处理器;空分复用技术,如虚拟存储器。
通过多道程序设计技术,让多道程序并发执行,来分时使用一个处理器。此时,虽然只有一个处理器,但它能同时为多个用户服务,使每个终端用户都感觉有一个 CPU 在专门为它服务。利用多道程序设计技术将一个物理上的 CPU 虚拟为多个逻辑上的 CPU,称为虚拟处理器。
采用虚拟存储器技术将一台机器的物理存储器变为虚拟存储器,以便从逻辑上扩充存储器的容量。当然,这时用户所感觉到的内存容量是虚的。我们将用户感觉到(但实际不存在)的存储器称为虚拟存储器。
还可采用虚拟设备技术将一台物理 I/O 设备虚拟为多台逻辑上的 I/O 设备,并允许每个用户占用一台逻辑上的 I/O 设备,使原来仅允许在一段时间内由一个用户访问的设备(临界资源)变为在一段时间内允许多个用户同时访问的共享设备。4. 异步(Asynchronism)
多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进,这就是进程的异步性。
异步性使得操作系统运行在一种随机的环境下,可能导致进程产生与时间有关的错误(就像对全局变量的访问顺序不当会导致程序出错一样)。然而,只要运行环境相同,操作系统就须保证多次运行进程后都能获得相同的结果。1.1.4 本节习题精选
一、单项选择题
1.操作系统是对( )进行管理的软件。
A. 软件
B. 硬件
C. 计算机资源
D. 应用程序1.C
操作系统管理计算机的硬件和软件资源,这些资源统称为计算机资源。注意,操作系统不仅管理处理机、存储器等硬件资源,还管理文件,文件不属于硬件资源,但属于计算机资源。2.下面的( )资源不是操作系统应该管理的。
A. CPU
B. 内存
C. 外存
D. 源程序2.D
源程序是一种计算机代码,是用程序设计语言编写的程序,经编译或解释后可形成具有一定功能的可执行文件,是直接面向程序员用户的,而不是操作系统的管理内容。本题采用排除法可轻易得到答案,但有人会问操作系统不是也管理 “文件” 吗?源程序也存储在文件中吧?出现这种疑问的原因是,对操作系统管理文件的理解存在偏颇。操作系统管理文件,是指操作系统关心计算机中的文件的逻辑结构、物理结构、文件内部结构、多文件之间如何组织的问题,而不是关心文件的具体内容。这就好比你是操作系统,有十个水杯让你管理,你负责的是将这些水杯放在何处比较合适,而不关心水杯中的是水还是饮料。后续章节会详细介绍文件的管理。3.下列选项中,( )不是操作系统关心的问题。
A. 管理计算机裸机
B. 设计、提供用户程序与硬件系统的界面
C. 管理计算机系统资源
D. 高级程序设计语言的编译器3.D
操作系统管理计算机软 / 硬件资源,扩充裸机以提供功能更强大的扩充机器,并充当用户与硬件交互的中介。高级程序设计语言的编译器显然不是操作系统关心的问题。编译器的实质是一段程序指令,它存储在计算机中,是上述水杯中的水。4.操作系统的基本功能是( )。
A. 提供功能强大的网络管理工具
B. 提供用户界面方便用户使用
C. 提供方便的可视化编辑程序
D. 控制和管理系统内的各种资源4.D
操作系统是指控制和管理整个计算机系统的硬件和软件资源,合理地组织、调度计算机的工作和资源的分配,以便为用户和其他软件提供方便的接口与环境的程序集合。选项 A、B、C 都可理解成应用程序为用户提供的服务,是应用程序的功能,而不是操作系统的功能。5.现代操作系统中最基本的两个特征是( )。
A. 并发和不确定
B. 并发和共享
C. 共享和虚拟
D. 虚拟和不确定5.B
操作系统最基本的特征是并发和共享,两者互为存在条件。6.下列关于并发性的叙述中,正确的是( )。
A. 并发性是指若干事件在同一时刻发生
B. 并发性是指若干事件在不同时刻发生
C. 并发性是指若干事件在同一时间间隔内发生
D. 并发性是指若干事件在不同时间间隔内发生6.C
并发性是指若干事件在同一时间间隔内发生,而并行性是指若干事件在同一时刻发生。7.用户可以通过( )两种方式来使用计算机。
A. 命令接口和函数
B. 命令接口和系统调用
C. 命令接口和文件管理
D. 设备管理方式和系统调用7.B
操作系统主要向用户提供命令接口和程序接口(系统调用),此外还提供图形接口;当然,图形接口其实是调用了系统调用而实现的功能。8.系统调用是由操作系统提供给用户的,它( )。
A. 直接通过键盘交互方式使用
B. 只能通过用户程序间接使用
C. 是命令接口中的命令
D. 与系统的命令一样8.B
系统调用是操作系统为应用程序使用内核功能所提供的接口。9.操作系统提供给编程人员的接口是( )。
A. 库函数
B. 高级语言
C. 系统调用
D. 子程序9.C
操作系统为编程人员提供的接口是程序接口,即系统调用。10.系统调用的目的是( )。
A. 请求系统服务
B. 中止系统服务
C. 申请系统资源
D. 释放系统资源10.A
操作系统不允许用户直接操作各种硬件资源,因此用户程序只能通过系统调用的方式来请求内核为其服务,间接地使用各种资源。11.为了方便用户直接或间接地控制自己的作业,操作系统向用户提供了命令接口,该接口又可进一步分为( )。
A. 联机用户接口和脱机用户接口
B. 程序接口和图形接口
C. 联机用户接口和程序接口
D. 脱机用户接口和图形接口11.A
程序接口、图形接口与命令接口三者并没有从属关系。按命令控制方式的不同,命令接口分为联机用户接口和脱机用户接口。12.以下关于操作系统的叙述中,错误的是( )。
A. 操作系统是管理资源的程序
B. 操作系统是管理用户程序执行的程序
C. 操作系统是能使系统资源提高效率的程序
D. 操作系统是用来编程的程序12.D
操作系统是用来管理资源的程序,用户程序也是在操作系统的管理下完成的。配置了操作系统的机器与裸机相比,资源利用率大大提高。操作系统不能直接用来编程,选项 D 错误。13.【2009 统考真题】单处理机系统中,可并行的是( )。
I. 进程与进程 II. 处理机与设备 III. 处理机与通道 IV. 设备与设备
A. I、II、III
B. I、II、IV
C. I、III、IV
D. II、III、IV13.D
在单 CPU 系统中,同一时刻只能有一个进程占用 CPU,因此进程之间不能并行执行。通道是独立于 CPU、控制输入 / 输出的设备,两者可以并行。显然,处理器与设备是可以并行的。设备与设备也是可以并行的,比如显示屏与打印机是可以并行工作的。14.【2010 统考真题】下列选项中,操作系统提供给应用程序的接口是( )。
A. 系统调用
B. 中断
C. 库函数
D. 原语14.A
操作系统接口主要有命令接口和程序接口(也称系统调用)。库函数是高级语言中提供的与系统调用对应的函数(也有些库函数与系统调用无关),目的是隐藏 “访管” 指令的细节,使系统调用更为方便、抽象。但是,库函数属于用户程序而非系统调用,是系统调用的上层。二、综合应用题
1.说明库函数与系统调用的区别和联系。
1.【解答】
库函数是语言或应用程序的一部分,可以运行在用户空间中。系统调用是操作系统的一部分,是内核为用户提供的程序接口,运行在内核空间中,并且许多库函数都使用系统调用来实现功能。未使用系统调用的库函数,其执行效率通常要比系统调用的高。因为使用系统调用时,需要上下文的切换及状态的转换(由用户态转向内核态)。1.2 操作系统发展历程
1.2.1 手工操作阶段(此阶段无操作系统)
用户在计算机上算题的所有工作都要人工干预,如程序的装入、运行、结果的输出等。随着计算机硬件的发展,人机矛盾(速度和资源利用)越来越大,必须寻求新的解决办法。
手工操作阶段有两个突出的缺点:①用户独占全机,虽然不会出现因资源已被其他用户占用而等待的现象,但资源利用率低。②CPU 等待手工操作,CPU 的利用不充分。
唯一的解决办法就是用高速的机器代替相对较慢的手工操作来对作业进行控制。1.2.2 批处理阶段(操作系统开始出现)
为了解决人机矛盾及 CPU 和 I/O 设备之间速度不匹配的矛盾,出现了批处理系统。按发展历程又分为单道批处理系统、多道批处理系统(多道程序设计技术出现以后)。
命题追踪 批处理系统的特点(2016)
17.【2016 统考真题】下列关于批处理系统的叙述中,正确的是( )。
I. 批处理系统允许多个用户与计算机直接交互
II. 批处理系统分为单道批处理系统和多道批处理系统
III. 中断技术使得多道批处理系统的 I/O 设备可与 CPU 并行工作
A. 仅 II、III
B. 仅 II
C. 仅 I、II
D. 仅 I、III17. A
批处理系统中,作业执行时用户无法干预其运行,只能通过事先编制作业控制说明书来间接干预,缺少交互能力,选项 I 错误。批处理系统按发展历程又分为单道批处理系统、多道批处理系统,选项 II 正确。多道程序设计技术允许把多个程序同时装入内存,并允许它们在 CPU 中交替运行,共享系统中的各种硬 / 软件资源,当一道程序因 I/O 请求而暂停运行时,CPU 便立即转去运行另一道程序,即多道批处理系统的 I/O 设备可与 CPU 并行工作,这是借助中断技术实现的,选项 III 正确。1. 单道批处理系统
为实现对作业的连续处理,需要先将一批作业以脱机方式输入磁带,并在系统中配上监督程序(Monitor),在其控制下,使这批作业能一个接一个地连续处理。虽然系统对作业的处理是成批进行的,但内存中始终保持一道作业。单道批处理系统的主要特征如下:
1)自动性。在顺利的情况下,磁带上的一批作业能自动地逐个运行,而无须人工干预。
2)顺序性。磁带上的各道作业顺序地进入内存,先调入内存的作业先完成。
3)单道性。内存中仅有一道程序运行,即监督程序每次从磁带上只调入一道程序进入内存运行,当该程序完成或发生异常情况时,才换入其后继程序进入内存运行。
此时面临的问题是:每次主机内存中仅存放一道作业,每当它在运行期间(注意这里是 “运行时” 而不是 “完成后”)发出输入 / 输出请求后,高速的 CPU 便处于等待低速的 I/O 完成的状态。为了进一步提高资源的利用率和系统的吞吐量,引入了多道程序技术。1.提高单机资源利用率的关键技术是( )。
A. 脱机技术
B. 虚拟技术
C. 交换技术
D. 多道程序设计技术1.D
脱机技术是指在主机以外的设备上进行输入 / 输出操作,需要时再送主机处理,以提高设备的利用率。虚拟技术与交换技术以多道程序设计技术为前提。多道程序设计技术同时在主存中运行多个程序,在一个程序等待时,可以去执行其他程序,因此提高了系统资源的利用率。2. 多道批处理系统
用户所提交的作业都先存放在外存上并排成一个队列,作业调度程序按一定的算法从后备队列中选择若干作业调入内存,它们在管理程序的控制下相互穿插地运行,共享系统中的各种硬 / 软件资源。当某道程序因请求 I/O 操作而暂停运行时,CPU 便立即转去运行另一道程序,这是通过中断机制实现的。它让系统的各个组成部分都尽量的 “忙”,切换任务所花费的时间很少,因而可实现系统各部件之间的并行工作,使其在单位时间内的效率翻倍。
命题追踪 多道批处理系统的特点(2017、2018、2022)
18.【2017 统考真题】与单道程序系统相比,多道程序系统的优点是( )。
I. CPU 利用率高
II. 系统开销小
III. 系统吞吐量大
IV. I/O 设备利用率高
A. 仅 I、III
B. 仅 I、IV
C. 仅 II、III
D. 仅 I、III、IV18. D
多道程序系统中总有一个作业在 CPU 上执行,因此提高了 CPU 的利用率、系统吞吐量和 I/O 设备利用率,选项 I、III、IV 正确。但是,系统要付出额外的开销来组织作业和切换作业,选项 II 错误。19.【2018 统考真题】下列关于多任务操作系统的叙述中,正确的是( )。
I. 具有并发和并行的特点
II. 需要实现对共享资源的保护
III. 需要运行在多 CPU 的硬件平台上
A. 仅 I
B. 仅 II
C. 仅 I、II
D. I、II、III19. C
现代操作系统都是多任务的,允许用户把程序分为若干个任务,使它们并发执行。在单 CPU 中,这些任务并发执行,即宏观上并行执行,微观上分时地交替执行;在多 CPU 中,这些任务是真正的并行执行。此外,引入中断之后才出现了多任务操作系统,而中断方式的特点是 CPU 与外设并行工作,因此选项 I 正确。多个任务必须互斥地访问共享资源,为达到这一目标必须对共享资源进行必要的保护,选项 II 正确。多任务操作系统并不一定需要运行在多 CPU 的硬件上,单个 CPU 通过分时使用也能满足要求,选项 III 错误。综上所述,选项 I、II 正确,选项 III 错误。20.【2022 统考真题】下列关于多道程序系统的叙述中,不正确的是( )。
A. 支持进程的并发执行
B. 不必支持虚拟存储管理
C. 需要实现对共享资源的管理
D. 进程数越多 CPU 利用率越高20. D
操作系统的基本特点:并发、共享、虚拟、异步,其中最基本、一定要实现的是并发和共享。早期的多道批处理操作系统会将所有进程的数据全部调入主存,再让多道程序并发执行,即使不支持虚拟存储管理,也能实现多道程序并发。进程多并不意味着 CPU 利用率高,进程数量越多,进程之间的资源竞争越激烈,甚至可能因为资源竞争而出现死锁现象,导致 CPU 利用率低。多道程序设计的特点是多道、宏观上并行、微观上串行。
1)多道。计算机内存中同时存放多道相互独立的程序。
2)宏观上并行。同时进入系统的多道程序都处于运行过程中,但都未运行完毕。
3)微观上串行。内存中的多道程序轮流占有 CPU,交替执行。3.下列选项中,不属于多道程序设计的基本特征的是( )。
A. 制约性
B. 间断性
C. 顺序性
D. 共享性3.C
多道程序的运行环境比单道程序的运行环境更加复杂。引入多道程序后,程序的执行就失去了封闭性和顺序性。程序执行因为共享资源及相互协同的原因产生了竞争,相互制约。考虑到竞争的公平性,程序的执行是断续的。16.引入多道程序技术的前提条件之一是系统具有( )。
A. 多个 CPU
B. 多个终端
C. 中断功能
D. 分时功能16. C
多道程序技术要求进程间能实现并发,需要实现进程调度以保证 CPU 的工作效率,而并发性的实现需要中断功能的支持。多道程序设计技术的实现需要解决下列问题:
1)如何分配处理器。
2)多道程序的内存分配问题。
3)I/O 设备如何分配。
4)如何组织和存放大量的程序和数据,以方便用户使用并保证其安全性与一致性。
在批处理系统中采用多道程序设计技术就形成了多道批处理操作系统。该系统将用户提交的作业成批地送入计算机内存,然后由作业调度程序自动地选择作业运行。
优点:资源利用率高,多道程序共享计算机资源,从而使各种资源得到充分利用;系统吞吐量大,CPU 和其他资源保持 “忙碌” 状态。缺点:用户响应的时间较长;不提供人机交互能力,用户既不能了解自己的程序的运行情况,又不能控制计算机。2.批处理系统的主要缺点是( )。
A. 系统吞吐量小
B. CPU 利用率不高
C. 资源利用率低
D. 无交互能力2.D
批处理系统中,作业执行时用户无法干预其运行,只能通过事先编制作业控制说明书来间接干预,缺少交互能力,也因此才有了分时操作系统的出现。注意:2018 年真题考查的多任务操作系统可视为具有交互性的多道批处理系统。
1.2.3 分时操作系统
所谓分时技术,是指将处理器的运行时间分成很短的时间片,按时间片轮流将处理器分配给各联机作业使用。若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时停止运行,将处理器让给其他作业使用,等待下一轮再继续运行。计算机速度很快,作业运行轮转得也很快,因此给每个用户的感觉就像是自己独占一台计算机。
分时操作系统是指多个用户通过终端同时共享一台主机,这些终端连接在主机上,用户可以同时与主机进行交互操作而互不干扰。因此,实现分时系统的关键问题是如何使用户能与自己的作业进行交互,即当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,再将结果返回用户。分时系统也是支持多道程序设计的系统,但它不同于多道批处理系统。多道批处理是实现作业自动控制而无须人工干预的系统,而分时系统是实现人机交互的系统,这使得分时系统具有与批处理系统不同的特征。分时系统的主要特征如下:
1)同时性。同时性也称多路性,指允许多个终端用户同时使用一台计算机。
2)交互性。用户通过终端采用人机对话的方式直接控制程序运行,与同程序进行交互。
3)独立性。系统中多个用户可以彼此独立地进行操作,互不干扰,单个用户感觉不到别人也在使用这台计算机,好像只有自己单独使用这台计算机一样。
4)及时性。用户请求能在很短时间内获得响应。
虽然分时操作系统较好地解决了人机交互问题,但在一些应用场合,需要系统能对外部的信息在规定的时间(比时间片的时间还短)内做出处理(比如飞机订票系统或导弹制导系统),因此,实时操作系统应运而生。8.下列关于分时系统的叙述中,错误的是( )。
A. 分时系统主要用于批处理作业
B. 分时系统中每个任务依次轮流使用时间片
C. 分时系统的响应时间好
D. 分时系统是一种多用户操作系统8.A
分时系统主要用于交互式作业而非批处理作业。分时系统中每个任务依次轮流使用时间片,这是一种公平的 CPU 分配策略。分时系统的响应时间好,因为分时系统采用了时间片轮转法来调度进程,可以使得每个任务在较短的时间内得到响应,提高用户的满意度。分时系统是一种多用户操作系统,因为分时系统可以支持多个终端同时连接到同一台计算机上。1.2.4 实时操作系统
为了能在某个时间限制内完成某些紧急任务而不需要时间片排队,诞生了实时操作系统。这里的时间限制可以分为两种情况:若某个动作必须绝对地在规定的时刻(或规定的时间范围)发生,则称为硬实时系统,如飞行器的飞行自动控制系统,这类系统必须提供绝对保证,让某个特定的动作在规定的时间内完成。若能够接受偶尔违反时间规定且不会引起任何永久性的损害,则称为软实时系统,如飞机订票系统、银行管理系统。
在实时操作系统的控制下,计算机系统接收外部信号后及时进行处理,并在严格的时限内处理完接收的事件。实时操作系统的主要特点是及时性和可靠性。5.实时操作系统必须在( )内处理来自外部的事件。
A. 一个机器周期
B. 被控制对象规定时间
C. 周转时间
D. 时间片5.B
实时系统要求能实时处理外部事件,即在规定的时间内完成对外部事件的处理。6.( )不是设计实时操作系统的主要追求目标。
A. 安全可靠
B. 资源利用率
C. 及时响应
D. 快速处理6.B
实时性和可靠性是实时操作系统最重要的两个目标,而安全可靠体现了可靠性,快速处理和及时响应体现了实时性。资源利用率不是实时操作系统的主要目标,即为了保证快速处理高优先级任务,允许 “浪费” 一些系统资源。7.下列( )应用工作最好采用实时操作系统平台。
I. 航空订票 II. 办公自动化 III. 机床控制
IV. AutoCAD V. 工资管理系统 VI. 股票交易系统
A. I、II 和 III
B. I、III 和 IV
C. I、V 和 IV
D. I、III 和 VI7.D
实时操作系统主要应用在需要对外界输入立即做出反应的场合,不能有拖延,否则会产生严重后果。本题的选项中,航空订票系统需要实时处理票务,因为票额数据库的数量直接反映了航班的可订机位。机床控制也要实时,不然会出差错。股票交易行情随时在变,若不能实时交易会出现时间差,使交易出现偏差。15.下列关于操作系统的叙述中,正确的是( )。
A. 批处理操作系统必须在响应时间内处理完一个任务
B. 实时操作系统须在规定时间内处理完来自外部的事件
C. 分时操作系统必须在周转时间内处理完来自外部的事件
D. 分时操作系统必须在调度时间内处理完来自外部的事件15. B
实时操作系统要求能在规定时间内完成特定的功能。批处理操作系统不需要在响应时间内处理完一个任务。分时操作系统不要求在周转时间或调度时间内处理完外部事件。1.2.5 网络操作系统和分布式计算机系统
网络操作系统是伴随着计算机网络的发展而诞生的,它把网络中的各台计算机有机地结合起来,实现各台计算机之间的通信和数据传送等功能,实现网络中各种资源的共享。
分布式计算机系统是由多台计算机组成并满足下列条件的系统:系统中任意两台计算机通过通信方式交换信息;每台计算机都具有同等的地位,即没有主机也没有从机;每台计算机上的资源为所有用户共享;系统中的任意台计算机都可以构成一个子系统,并且还能重构;任何工作都可以分布在几台计算机上,由它们并行工作、协同完成。用于管理分布式计算机系统的操作系统称为分布式计算机系统。该系统的主要特点是:分布性和并行性。分布式操作系统与网络操作系统的本质不同是,分布式操作系统中的若干计算机相互协同完成同一任务。1.2.6 个人计算机操作系统
个人计算机操作系统是目前使用最广泛的操作系统,它广泛应用于文字处理、电子表格、游戏中,常见的有 Windows、Linux 和 MacOS 等。操作系统的发展历程如图 1.1 所示。
此外,还有嵌入式操作系统、服务器操作系统、智能手机操作系统等。
1.2.7 本节习题精选
一、单项选择题
1.提高单机资源利用率的关键技术是( )。
A. 脱机技术
B. 虚拟技术
C. 交换技术
D. 多道程序设计技术1.D
脱机技术是指在主机以外的设备上进行输入 / 输出操作,需要时再送主机处理,以提高设备的利用率。虚拟技术与交换技术以多道程序设计技术为前提。多道程序设计技术同时在主存中运行多个程序,在一个程序等待时,可以去执行其他程序,因此提高了系统资源的利用率。2.批处理系统的主要缺点是( )。
A. 系统吞吐量小
B. CPU 利用率不高
C. 资源利用率低
D. 无交互能力2.D
批处理系统中,作业执行时用户无法干预其运行,只能通过事先编制作业控制说明书来间接干预,缺少交互能力,也因此才有了分时操作系统的出现。3.下列选项中,不属于多道程序设计的基本特征的是( )。
A. 制约性
B. 间断性
C. 顺序性
D. 共享性3.C
多道程序的运行环境比单道程序的运行环境更加复杂。引入多道程序后,程序的执行就失去了封闭性和顺序性。程序执行因为共享资源及相互协同的原因产生了竞争,相互制约。考虑到竞争的公平性,程序的执行是断续的。4.操作系统的基本类型主要有( )。
A. 批处理操作系统、分时操作系统和多任务系统
B. 批处理操作系统、分时操作系统和实时操作系统
C. 单用户系统、多用户系统和批处理操作系统
D. 实时操作系统、分时操作系统和多用户系统4.B
操作系统的基本类型主要有批处理操作系统、分时操作系统和实时操作系统。5.实时操作系统必须在( )内处理来自外部的事件。
A. 一个机器周期
B. 被控制对象规定时间
C. 周转时间
D. 时间片5.B
实时系统要求能实时处理外部事件,即在规定的时间内完成对外部事件的处理。6.( )不是设计实时操作系统的主要追求目标。
A. 安全可靠
B. 资源利用率
C. 及时响应
D. 快速处理6.B
实时性和可靠性是实时操作系统最重要的两个目标,而安全可靠体现了可靠性,快速处理和及时响应体现了实时性。资源利用率不是实时操作系统的主要目标,即为了保证快速处理高优先级任务,允许 “浪费” 一些系统资源。7.下列( )应用工作最好采用实时操作系统平台。
I. 航空订票 II. 办公自动化 III. 机床控制
IV. AutoCAD V. 工资管理系统 VI. 股票交易系统
A. I、II 和 III
B. I、III 和 IV
C. I、V 和 IV
D. I、III 和 VI7.D
实时操作系统主要应用在需要对外界输入立即做出反应的场合,不能有拖延,否则会产生严重后果。本题的选项中,航空订票系统需要实时处理票务,因为票额数据库的数量直接反映了航班的可订机位。机床控制也要实时,不然会出差错。股票交易行情随时在变,若不能实时交易会出现时间差,使交易出现偏差。8.下列关于分时系统的叙述中,错误的是( )。
A. 分时系统主要用于批处理作业
B. 分时系统中每个任务依次轮流使用时间片
C. 分时系统的响应时间好
D. 分时系统是一种多用户操作系统8.A
分时系统主要用于交互式作业而非批处理作业。分时系统中每个任务依次轮流使用时间片,这是一种公平的 CPU 分配策略。分时系统的响应时间好,因为分时系统采用了时间片轮转法来调度进程,可以使得每个任务在较短的时间内得到响应,提高用户的满意度。分时系统是一种多用户操作系统,因为分时系统可以支持多个终端同时连接到同一台计算机上。9.分时系统的一个重要性能是系统的响应时间,对操作系统的( )因素进行改进有利于改善系统的响应时间。
A. 加大时间片
B. 采用静态页式管理
C. 优先级 + 非抢占式调度算法
D. 代码可重入09. C
采用优先级 + 非抢占式调度算法,既可使重要的作业 / 进程通过高优先级尽快获得系统响应,又可保证次要的作业 / 进程在非抢占式调度下不会延迟得不到系统响应,这样有利于改善系统的响应时间。加大时间片会延迟系统响应时间;静态页式管理和代码可重入与系统响应时间无关。10.分时系统追求的目标是( )。
A. 充分利用 I/O 设备
B. 比较快速响应用户
C. 提高系统吞吐率
D. 充分利用内存10. B
要求快速响应用户是导致分时系统出现的重要原因。11.在分时系统中,时间片一定时,( )响应时间越长。
A. 内存越多
B. 内存越少
C. 用户数越多
D. 用户数越少11. C
分时系统中,当时间片固定时,用户数越多,每个用户分到的时间片就越少,响应时间就相应变长。注意,分时系统的响应时间 T 可表示为 T ≈ QN,其中 Q 是时间片,而 N 是用户数。12.在分时系统中,为使多个进程能够及时与系统交互,关键的问题是能在短时间内,使所有就绪进程都能运行。当就绪进程数为 100 时,为保证响应时间不超过 2s,此时的时间片最大应为( )。
A. 10ms
B. 20ms
C. 50ms
D. 100ms12. B
响应时间不超过 2s,即在 2s 内必须响应所有进程。所以时间片最大为 2s/100 = 20ms。13.操作系统有多种类型。允许多个用户以交互的方式使用计算机的操作系统,称为( );允许多个用户将若干作业提交给计算机系统集中处理的操作系统,称为( );在( )的控制下,计算机系统能及时处理由过程控制反馈的数据,并及时做出响应;在 IBM-PC 中,操作系统称为( )。
A. 批处理系统
B. 分时操作系统
C. 实时操作系统
D. 微型计算机操作系统13. B、A、C、D
这是操作系统发展过程中的几种主要类型。14.下列各种系统中,( )可以使多个进程并行执行。
A. 分时系统
B. 多处理器系统
C. 批处理系统
D. 实时系统14. B
多个进程并发执行的系统是指在一段时间内宏观上有多个进程同时运行,但在单处理器系统中,每个时刻却只能有一道程序执行,所以微观上这些程序只能是分时地交替执行。只有多处理器系统才能使多个进程并行执行,每个处理器上分别运行不同的进程。15.下列关于操作系统的叙述中,正确的是( )。
A. 批处理操作系统必须在响应时间内处理完一个任务
B. 实时操作系统须在规定时间内处理完来自外部的事件
C. 分时操作系统必须在周转时间内处理完来自外部的事件
D. 分时操作系统必须在调度时间内处理完来自外部的事件15. B
实时操作系统要求能在规定时间内完成特定的功能。批处理操作系统不需要在响应时间内处理完一个任务。分时操作系统不要求在周转时间或调度时间内处理完外部事件。16.引入多道程序技术的前提条件之一是系统具有( )。
A. 多个 CPU
B. 多个终端
C. 中断功能
D. 分时功能16. C
多道程序技术要求进程间能实现并发,需要实现进程调度以保证 CPU 的工作效率,而并发性的实现需要中断功能的支持。17.【2016 统考真题】下列关于批处理系统的叙述中,正确的是( )。
I. 批处理系统允许多个用户与计算机直接交互
II. 批处理系统分为单道批处理系统和多道批处理系统
III. 中断技术使得多道批处理系统的 I/O 设备可与 CPU 并行工作
A. 仅 II、III
B. 仅 II
C. 仅 I、II
D. 仅 I、III17. A
批处理系统中,作业执行时用户无法干预其运行,只能通过事先编制作业控制说明书来间接干预,缺少交互能力,选项 I 错误。批处理系统按发展历程又分为单道批处理系统、多道批处理系统,选项 II 正确。多道程序设计技术允许把多个程序同时装入内存,并允许它们在 CPU 中交替运行,共享系统中的各种硬 / 软件资源,当一道程序因 I/O 请求而暂停运行时,CPU 便立即转去运行另一道程序,即多道批处理系统的 I/O 设备可与 CPU 并行工作,这是借助中断技术实现的,选项 III 正确。18.【2017 统考真题】与单道程序系统相比,多道程序系统的优点是( )。
I. CPU 利用率高
II. 系统开销小
III. 系统吞吐量大
IV. I/O 设备利用率高
A. 仅 I、III
B. 仅 I、IV
C. 仅 II、III
D. 仅 I、III、IV18. D
多道程序系统中总有一个作业在 CPU 上执行,因此提高了 CPU 的利用率、系统吞吐量和 I/O 设备利用率,选项 I、III、IV 正确。但是,系统要付出额外的开销来组织作业和切换作业,选项 II 错误。19.【2018 统考真题】下列关于多任务操作系统的叙述中,正确的是( )。
I. 具有并发和并行的特点
II. 需要实现对共享资源的保护
III. 需要运行在多 CPU 的硬件平台上
A. 仅 I
B. 仅 II
C. 仅 I、II
D. I、II、III19. C
现代操作系统都是多任务的,允许用户把程序分为若干个任务,使它们并发执行。在单 CPU 中,这些任务并发执行,即宏观上并行执行,微观上分时地交替执行;在多 CPU 中,这些任务是真正的并行执行。此外,引入中断之后才出现了多任务操作系统,而中断方式的特点是 CPU 与外设并行工作,因此选项 I 正确。多个任务必须互斥地访问共享资源,为达到这一目标必须对共享资源进行必要的保护,选项 II 正确。多任务操作系统并不一定需要运行在多 CPU 的硬件上,单个 CPU 通过分时使用也能满足要求,选项 III 错误。综上所述,选项 I、II 正确,选项 III 错误。20.【2022 统考真题】下列关于多道程序系统的叙述中,不正确的是( )。
A. 支持进程的并发执行
B. 不必支持虚拟存储管理
C. 需要实现对共享资源的管理
D. 进程数越多 CPU 利用率越高20. D
操作系统的基本特点:并发、共享、虚拟、异步,其中最基本、一定要实现的是并发和共享。早期的多道批处理操作系统会将所有进程的数据全部调入主存,再让多道程序并发执行,即使不支持虚拟存储管理,也能实现多道程序并发。进程多并不意味着 CPU 利用率高,进程数量越多,进程之间的资源竞争越激烈,甚至可能因为资源竞争而出现死锁现象,导致 CPU 利用率低。二、综合应用题
1.有两个程序,程序 A 依次使用 CPU 计 10s、设备甲计 5s、CPU 计 5s、设备乙计 10s、CPU 计 10s;程序 B 依次使用设备甲计 10s、CPU 计 10s、设备乙计 5s、CPU 计 5s、设备乙计 10s。在单道程序环境下先执行程序 A 再执行程序 B,CPU 的利用率是多少?在多道程序环境下,CPU 利用率是多少?
1.【解答】
如下图所示,单道环境下,CPU 的运行时间为 (10 + 5 + 10) s + (10 + 5) s = 40s,两个程序运行的总时间为 40s + 40s = 80s,因此利用率是 40/80 = 50%。
多道环境下,CPU 运行时间为 40s,两个程序运行总时间为 45s,因此利用率为 40/45 = 88.9%。
注意:
此图为甘特图,甘特图也称横道图,它以图示的方式通过活动列表和时间刻度形象地表示任意特定项目的活动顺序与持续时间。
以后遇到此类题目,即给出几个不同的程序,每个程序以各个任务时间片给出时,一定要用甘特图来求解,因为其直观、快捷。为节省读者研究甘特图画法的时间,下面给出既定的步骤,读者可按下列步骤快速、正确地画出甘特图。
①横坐标上标出合适的时间间隔,纵坐标上的点是程序的名字。
②过横坐标上每个标出的时间点,向上作垂直于横坐标的虚线。
③用几种不同的线(推荐用 “直线”“波浪线”“虚线” 三种,较易区分)代表对不同资源的占用,按照题目给出的任务时间片,平行于横坐标把不同程序对应的线段分别画出来。
画图时要注意,如处理器、打印设备等资源是不能让两个程序同时使用的,有一个程序正在使用时,其他程序的请求只能排队。2.设某计算机系统有一个 CPU、一台输入设备、一台打印机。现有两个进程同时进入就绪态,且进程 A 先得到 CPU 运行,进程 B 后运行。进程 A 的运行轨迹为:计算 50ms,打印信息 100ms,再计算 50ms,打印信息 100ms,结束。进程 B 的运行轨迹为:计算 50ms,输入数据 80ms,再计算 100ms,结束。画出它们的甘特图,并说明:
1)开始运行时,CPU 有无空闲等待?若有,在哪段时间内等待?计算 CPU 的利用率。
2)进程 A 运行时有无等待现象?若有,则在何时发生等待现象?
3)进程 B 运行时有无等待现象?若有,则在何时发生等待现象?02. 【解答】
这类实际的 CPU 和输入 / 输出设备调度的题目一定要画图,画出运行时的甘特图后就能清楚地看到不同进程间的时序关系,进程运行情况如下图所示。
1)CPU 在 100~150ms 时间段内空闲,利用率为 250/300 = 83.3%。
2)进程 A 无等待现象。
3)进程 B 有等待现象,发生在 0~50ms 和 180~200ms 时间段。1.3 操作系统的运行环境
1.3.1 处理器运行模式 ①
①先弄清楚一个问题,即计算机 “指令” 和高级语言 “代码” 是不同的。通常所说的 “编写代码” 的是指用高级语言(如 C、Java 等)来编写程序。但 CPU 看不懂这些高级语言程序的含义,为了让这些程序能顺利执行,就需要将它们 “翻译” 成 CPU 能懂的机器语言,即一条条 “指令”。所谓执行程序,其实就是 CPU 根据一条条指令来执行一个个具体的操作。
在计算机系统中,通常 CPU 执行两种不同性质的程序:一种是操作系统内核程序;另一种是用户自编程序(系统外层的应用程序,简称应用程序)。对操作系统而言,这两种程序的作用不同,前者是后者的管理者,因此 “管理程序”(内核程序)要执行一些特权指令,而 “被管理程序”(用户自编程序)出于安全考虑不能执行这些特权指令。
05.CPU 执行的指令被分为两类,其中有一类称为特权指令,它只允许( )使用。
A. 管理员
B. 联机用户
C. 目标程序
D. 操作系统05.D
内核可以执行 CPU 能执行的任何指令,用户程序只能执行除特权指令之外的指令。因此特权指令只能由内核即操作系统使用。命题追踪 特权指令和非特权指令的特点(2022)
1)特权指令,是指不允许用户直接使用的指令,如 I/O 指令、关中断指令、内存清零指令,存取用于内存保护的寄存器、修改程序状态字寄存器等的指令。
2)非特权指令,是指允许用户直接使用的指令,它不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间,这也是为了防止用户程序对系统造成破坏。命题追踪 内核态执行的指令分析(2021)
命题追踪 用户态发生或执行的事件分析(2011、2012、2014)在具体实现上,将 CPU 的运行模式划分为用户态(目态)和内核态(也称管态、核心态)。可以理解为 CPU 内部有一个小开关,当小开关为 0 时,CPU 处于内核态,此时 CPU 可以执行特权指令,切换到用户态的指令也是特权指令。当小开关为 1 时,CPU 处于用户态,此时 CPU 只能执行非特权指令。应用程序运行在用户态,操作系统内核程序运行在内核态。应用程序向操作系统请求服务时通过使用访管指令,访管指令是在用户态执行的,因此是非特权指令。
在软件工程思想和结构化程序设计方法影响下诞生的现代操作系统,几乎都是分层式的结构。操作系统的各项功能分别被设置在不同的层次上。一些与硬件关联较紧密的模块,如时钟管理、中断处理、设备驱动等处于最低层。其次是运行频率较高的程序,如进程管理、存储器管理和设备管理等。这两部分内容构成了操作系统的内核。这部分内容的指令运行在内核态。
内核是计算机上配置的底层软件,它管理着系统的各种资源,可视为连接应用程序和硬件的一座桥梁,大多数操作系统的内核包括 4 方面的内容。
1. 时钟管理
命题追踪 时钟中断服务的内容(2018)
在计算机的各种部件中,时钟是关键设备。时钟的第一功能是计时,操作系统需要通过时钟管理,向用户提供标准的系统时间。另外,通过时钟中断的管理,可以实现进程的切换。例如,在分时操作系统中采用时间片轮转调度,在实时系统中按截止时间控制运行,在批处理系统中通过时钟管理来衡量一个作业的运行程度等。因此,系统管理的方方面面无不依赖于时钟。2. 中断机制
命题追踪 中断机制在多道程序设计中的作用(2016)
引入中断技术的初衷是提高多道程序运行时的 CPU 利用率,使 CPU 可以在 I/O 操作期间执行其他指令。后来逐步得到发展,形成了多种类型,成为操作系统各项操作的基础。例如,键盘或鼠标信息的输入、进程的管理和调度、系统功能的调用、设备驱动、文件访问等,无不依赖于中断机制。可以说,现代操作系统是靠中断驱动的软件。
中断机制中,只有一小部分功能属于内核,它们负责保护和恢复中断现场的信息,转移控制权到相关的处理程序。这样可以减少中断的处理时间,提高系统的并行处理能力。3. 原语
按层次结构设计的操作系统,底层必然是一些可被调用的公用小程序,它们各自完成一个规定的操作,通常将具有这些特点的程序称为原语(Atomic Operation)。它们的特点如下:
1)处于操作系统的底层,是最接近硬件的部分。
2)这些程序的运行具有原子性,其操作只能一气呵成(出于系统安全性和便于管理考虑)。
3)这些程序的运行时间都较短,而且调用频繁。
定义原语的直接方法是关中断,让其所有动作不可分割地完成后再打开中断。系统中的设备驱动、CPU 切换、进程通信等功能中的部分操作都可定义为原语,使它们成为内核的组成部分。4. 系统控制的数据结构及处理
系统中用来登记状态信息的数据结构很多,如作业控制块、进程控制块(PCB)、设备控制块、各类链表、消息队列、缓冲区、空闲区登记表、内存分配表等。为了实现有效的管理,系统需要一些基本的操作,常见的操作有以下 3 种:
1)进程管理。进程状态管理、进程调度和分派、创建与撤销进程控制块等。
2)存储器管理。存储器的空间分配和回收、内存信息保护程序、代码对换程序等。
3)设备管理。缓冲区管理、设备分配和回收等。
可见,内核态指令实际上包括系统调用类指令和一些针对时钟、中断和原语的操作指令。1.3.2 中断和异常的概念
命题追踪 用户态切换到内核态的事件分析(2013、2015)
在操作系统中引入内核态和用户态这两种工作状态后,就需要考虑这两种状态之间如何切换。操作系统内核工作在内核态,而用户程序工作在用户态。系统不允许用户程序实现内核态的功能,而它们又必须使用这些功能。因此,需要在内核态建立一些 “门”,以便实现从用户态进入内核态。在实际操作系统中,CPU 运行用户程序时唯一能进入这些 “门” 的途径就是通过中断或异常。发生中断或异常时,运行用户态的 CPU 会立即进入内核态,这是通过硬件实现的(例如,用一个特殊寄存器的一位来表示 CPU 所处的工作状态,0 表示内核态,1 表示用户态。若要进入内核态,则只需将该位置 0 即可)。中断是操作系统中非常重要的一个概念,对一个运行在计算机上的实用操作系统而言,缺少了中断机制,将是不可想象的。原因是,操作系统的发展过程大体上就是一个想方设法不断提高资源利用率的过程,而提高资源利用率就需要在程序并未使用某种资源时,将它对那种资源的占有权释放,而这一行为就需要通过中断实现。04.( )是操作系统必须提供的功能。
A. 图形用户界面(GUI)
B. 为进程提供系统调用命令
C. 中断处理
D. 编译源程序04.C
中断是操作系统必须提供的功能,因为计算机的各种错误都需要中断处理,内核态与用户态切换也需要中断处理。1. 中断和异常的定义
命题追踪 可能引发中断或异常的指令分析(2013、2015)
中断(Interruption)也称外中断,是指来自 CPU 执行指令外部的事件,通常用于信息输入 / 输出(见第 5 章),如设备发出的 I/O 结束中断,表示设备输入 / 输出处理已经完成。时钟中断,表示一个固定的时间片已到,让处理机处理计时、启动定时运行的任务等。
异常(Exception)也称内中断,是指来自 CPU 执行指令内部的事件,如程序的非法操作码、地址越界、运算溢出、虚存系统的缺页及专门的陷入指令等引起的事件。异常不能被屏蔽,一旦出现,就应立即处理。关于内中断和外中断的联系与区别如图 1.2 所示。
2. 中断和异常的分类
命题追踪 中断和异常的分类(2016)
外中断可分为可屏蔽中断和不可屏蔽中断。可屏蔽中断是指通过 INTR 线发出的中断请求,通过改变屏蔽字可以实现多重中断,从而使得中断处理更加灵活。不可屏蔽中断是指通过 NMI 线发出的中断请求,通常是紧急的硬件故障,如电源掉电等。此外,异常也是不能被屏蔽的。
异常可分为故障、自陷和终止。故障(Fault)通常是由指令执行引起的异常,如非法操作码、缺页故障、除数为 0、运算溢出等。自陷(Trap),也称陷入,是一种事先安排的 “异常” 事件,用于在用户态下调用操作系统内核程序,如条件陷阱指令、系统调用指令等。终止(Abort)是指出现了使得 CPU 无法继续执行的硬件故障,如控制器出错、存储器校验错等。故障异常和自陷异常属于软件中断(程序性异常),终止异常和外部中断属于硬件中断。3. 中断和异常的处理过程
命题追踪 中断和异常的处理过程(2015、2020、2024)
33.【2024 统考真题】下列关于中断、异常和系统调用的叙述中,错误的是( )。
A. 中断或异常发生时,CPU 处于内核态
B. 每个系统调用都有对应的内核服务例程
C. 中断处理程序开始执行时,CPU 处于内核态
D. 系统添加新类型设备时,需要注册相应的中断服务例程33.A
当中断或异常发生时,CPU 既可能处于内核态,又可能处于用户态,具体取决于当时 CPU 正在处理的任务,选项 A 错误。不同的系统调用对应不同的内核服务例程,选项 B 正确。在中断响应阶段,若 CPU 处于用户态,则需要切换到内核态,因此在中断处理阶段,CPU 一定处于内核态,选项 C 正确。设备种类繁多,计算机不可能事先准备好所有设备对应的中断服务例程(实际上属于设备驱动程序),因此当系统添加新类型的设备时,需要注册相应的中断服务例程。中断和异常处理过程的大致描述如下:当 CPU 在执行用户程序的第 i 条指令时检测到一个异常事件,或在执行第 i 条指令后发现一个中断请求信号,则 CPU 打断当前的用户程序,然后转到相应的中断或异常处理程序去执行。若中断或异常处理程序能够解决相应的问题,则在中断或异常处理程序的最后,CPU 通过执行中断或异常返回指令,回到被打断的用户程序的第 i 条指令或第 i + 1 条指令继续执行;若中断或异常处理程序发现是不可恢复的致命错误,则终止用户程序。通常情况下,对中断和异常的具体处理过程由操作系统(和驱动程序)完成。
命题追踪 中断处理和子程序调用的比较(2012)
注意区分中断处理和子程序调用:①中断处理程序与被中断的当前程序是相互独立的,它们之间没有确定的关系;子程序与主程序是同一程序的两部分,它们属于主从关系。②通常中断的产生都是随机的;而子程序调用是通过调用指令(CALL)引起的,是由程序设计者事先安排的。③调用子程序的过程完全属于软件处理过程;而中断处理的过程还需要有专门的硬件电路才能实现。④中断处理程序的入口地址可由硬件向量法产生向量地址,再由向量地址找到入口地址;子程序的入口地址是由 CALL 指令中的地址码给出的。⑤调用中断处理程序和子程序都需要保护程序计数器(PC)的内容,前者由中断隐指令完成,后者由 CALL 指令完成(执行 CALL 指令时,处理器先将当前的 PC 值压入栈,再将 PC 设置为被调用子程序的入口地址)。⑥响应中断时,需对同时检测到的多个中断请求进行裁决,而调用子程序时没有这种操作。1.3.3 系统调用
命题追踪 系统调用的定义及性质(2019、2021、2024)
33.【2024 统考真题】下列关于中断、异常和系统调用的叙述中,错误的是( )。
A. 中断或异常发生时,CPU 处于内核态
B. 每个系统调用都有对应的内核服务例程
C. 中断处理程序开始执行时,CPU 处于内核态
D. 系统添加新类型设备时,需要注册相应的中断服务例程33.A
当中断或异常发生时,CPU 既可能处于内核态,又可能处于用户态,具体取决于当时 CPU 正在处理的任务,选项 A 错误。不同的系统调用对应不同的内核服务例程,选项 B 正确。在中断响应阶段,若 CPU 处于用户态,则需要切换到内核态,因此在中断处理阶段,CPU 一定处于内核态,选项 C 正确。设备种类繁多,计算机不可能事先准备好所有设备对应的中断服务例程(实际上属于设备驱动程序),因此当系统添加新类型的设备时,需要注册相应的中断服务例程。系统调用是操作系统提供给应用程序(程序员)使用的接口,可视为一种供应用程序调用的特殊的公共子程序。系统中的各种共享资源都由操作系统统一掌管,因此凡是与共享资源有关的操作(如存储分配、I/O 传输及文件管理等),都必须通过系统调用方式向操作系统提出服务请求,由操作系统代为完成,并将处理结果返回给应用程序。这样,就可以保证系统的稳定性和安全性,防止用户进行非法操作。通常,一个操作系统提供的系统调用命令有几十条乃至上百条之多,每个系统调用都有唯一的系统调用号。这些系统调用按功能大致可分为如下几类。
命题追踪 系统调用的功能(2021)
·设备管理。完成设备的请求或释放,以及设备启动等功能。
·文件管理。完成文件的读、写、创建及删除等功能。
·进程控制。完成进程的创建、撤销、阻塞及唤醒等功能。
·进程通信。完成进程之间的消息传递或信号传递等功能。
·内存管理。完成内存的分配、回收以及获取作业占用内存区大小和起始地址等功能。
显然,系统调用相关功能涉及系统资源管理、进程管理之类的操作,对整个系统的影响非常大,因此系统调用的处理需要由操作系统内核程序负责完成,要运行在内核态。
命题追踪 系统调用的处理过程及 CPU 状态的变化(2012、2017、2023)
命题追踪 系统调用处理过程中操作系统负责的任务(2022)下面分析系统调用的处理过程:第一步,用户程序首先将系统调用号和所需的参数压入堆栈;接着,调用实际的调用指令,然后执行一个陷入指令,将 CPU 状态从用户态转为内核态,再后由硬件和操作系统内核程序保护被中断进程的现场,将程序计数器(PC)、程序状态字(PSW)及通用寄存器内容等压入堆栈。第二步,分析系统调用类型,转入相应的系统调用处理子程序。在系统中配置了一张系统调用入口表,表中的每个表项都对应一个系统调用,根据系统调用号可以找到该系统调用处理子程序的入口地址。第三步,在系统调用处理子程序执行结束后,恢复被中断的或设置新进程的 CPU 现场,然后返回被中断进程或新进程,继续往下执行。
可以这么理解,用户程序执行 “陷入指令”,相当于将 CPU 的使用权主动交给操作系统内核程序(CPU 状态会从用户态进入内核态),之后操作系统内核程序再对系统调用请求做出相应处理。处理完成后,操作系统内核程序又会将 CPU 的使用权还给用户程序(CPU 状态会从内核态回到用户态)。这么设计的目的是:用户程序不能直接执行对系统影响非常大的操作,必须通过系统调用的方式请求操作系统代为执行,以便保证系统的稳定性和安全性。
这样,操作系统的运行环境可以理解为:用户通过操作系统运行上层程序(如系统提供的命令解释程序或用户自编程序),而这个上层程序的运行依赖于操作系统的底层管理程序提供服务支持,当需要管理程序服务时,系统通过硬件中断机制进入内核态,运行管理程序;也可能是程序运行出现异常情况,被动地需要管理程序的服务,此时则通过异常处理进入内核态。管理程序运行结束时,退出中断或异常处理程序,返回到用户程序的断点处继续执行。系统调用的执行过程如图 1.3 所示。
在操作系统这一层面上,我们关心的是系统内核态和用户态的软件实现与切换,对于硬件层面的具体理解,可以结合 “计算机组成原理” 课程中有关中断的内容进行学习。下面列举一些由用户态转向内核态的例子:
1)用户程序要求操作系统的服务,即系统调用。
2)发生一次中断。
3)用户程序中产生了一个错误状态。
4)用户程序中企图执行一条特权指令。从内核态转向用户态由一条指令实现,这条指令也是特权命令,一般是中断返回指令。
03.下列关于系统调用的说法中,正确的是( )。
I. 用户程序使用系统调用命令,该命令经过编译后形成若干参数和陷入指令
II. 用户程序使用系统调用命令,该命令经过编译后形成若干参数和屏蔽中断指令
III. 用户程序创建一个新进程,需使用操作系统提供的系统调用接口
IV. 当操作系统完成用户请求的系统调用功能后,应使 CPU 从内核态转到用户态
A. I、III
B. III、IV
C. I、III、IV
D. II、III、IV03.C
系统调用需要触发陷入指令,如基于 x86 的 Linux 系统,该指令为 int 0x80 或 sysenter,选项 I 正确。程序设计无法形成屏蔽中断指令,选项 II 错误。用户程序通过系统调用进行进程控制,选项 III 正确。执行系统调用时 CPU 状态要从用户态转到内核态,这是通过中断来实现的,当系统调用返回后,继续执行用户程序,同时 CPU 状态也从内核态转到用户态,选项 IV 正确。1.3.4 本节习题精选
单项选择题
01.下列关于操作系统的说法中,错误的是( )。
I. 在通用操作系统管理下的计算机上运行程序,需要向操作系统预订运行时间
II. 在通用操作系统管理下的计算机上运行程序,需要确定起始地址,并从这个地址开始执行
III. 操作系统需要提供高级程序设计语言的编译器
IV. 管理计算机系统资源是操作系统关心的主要问题
A. I
B. I、III
C. II、III
D. I、II、III、IV01.B
选项 I 错误:通用操作系统使用时间片轮转调度算法,用户运行程序并不需要预先预订运行时间。选项 II 正确:操作系统执行程序时,必须从起始地址开始执行。选项 III 错误:编译器是操作系统的上层软件,不是操作系统需要提供的功能。选项 IV 正确:操作系统是计算机资源的管理者,管理计算机系统资源是操作系统关心的主要问题。02.下列说法中,正确的是( )。
I. 批处理的主要缺点是需要大量内存
II. 当计算机提供了内核态和用户态时,输入 / 输出指令必须在内核态下执行
III. 操作系统中采用多道程序设计技术的最主要原因是提高 CPU 和外部设备的可靠性
IV. 操作系统中,通道技术是一种硬件技术
A. I、II
B. I、III
C. II、IV
D. II、III、IV02.C
选项 I 错误:批处理的主要缺点是缺少交互性。批处理系统的主要缺点是常考点,读者对此要非常敏感。选项 II 正确:输入 / 输出指令属于特权指令,只能由操作系统使用,因此必须在内核态下执行。选项 III 错误:多道性是为了提高系统利用率和吞吐量而提出的。选项 IV 正确:I/O 通道实际上是一种特殊的处理器,它具有执行 I/O 指令的能力,并通过执行通道程序来控制 I/O 操作。03.下列关于系统调用的说法中,正确的是( )。
I. 用户程序使用系统调用命令,该命令经过编译后形成若干参数和陷入指令
II. 用户程序使用系统调用命令,该命令经过编译后形成若干参数和屏蔽中断指令
III. 用户程序创建一个新进程,需使用操作系统提供的系统调用接口
IV. 当操作系统完成用户请求的系统调用功能后,应使 CPU 从内核态转到用户态
A. I、III
B. III、IV
C. I、III、IV
D. II、III、IV03.C
系统调用需要触发陷入指令,如基于 x86 的 Linux 系统,该指令为 int 0x80 或 sysenter,选项 I 正确。程序设计无法形成屏蔽中断指令,选项 II 错误。用户程序通过系统调用进行进程控制,选项 III 正确。执行系统调用时 CPU 状态要从用户态转到内核态,这是通过中断来实现的,当系统调用返回后,继续执行用户程序,同时 CPU 状态也从内核态转到用户态,选项 IV 正确。04.( )是操作系统必须提供的功能。
A. 图形用户界面(GUI)
B. 为进程提供系统调用命令
C. 中断处理
D. 编译源程序04.C
中断是操作系统必须提供的功能,因为计算机的各种错误都需要中断处理,内核态与用户态切换也需要中断处理。05.CPU 执行的指令被分为两类,其中有一类称为特权指令,它只允许( )使用。
A. 管理员
B. 联机用户
C. 目标程序
D. 操作系统05.D
内核可以执行 CPU 能执行的任何指令,用户程序只能执行除特权指令之外的指令。因此特权指令只能由内核即操作系统使用。06.在中断发生后,中断处理的程序属于( )。
A. 用户程序
B. 可能是用户程序,也可能是 OS 程序
C. 操作系统程序
D. 单独的程序,即不是用户程序也不是 OS 程序06.C
中断处理程序是 OS 专门为处理中断事件而设计的程序。中断发生时,若被中断的是用户程序,则 CPU 将从用户态转入内核态,在内核态下进行中断的处理;若被中断的是低级中断,则 CPU 仍保持在内核态。被中断的程序可能是用户程序,但中断的处理程序一定是 OS 程序。07.CPU 的状态分为用户态和内核态,从用户态转换到内核态的唯一途径是( )。
A. 修改程序状态字指令
B. 中断屏蔽
C. 中断
D. 中断处理程序07.C
CPU 通过程序状态字寄存器中的某个位来标志当前的状态,但是修改程序状态字的指令本身就属于特权指令,不能在用户态下执行。当 CPU 执行到一条访管指令或陷阱指令时,会引起访管中断或陷阱中断,CPU 会保存断点和其他上下文环境,然后切换到内核态。也就是说,从用户态转换到内核态,不是通过指令来修改 CPU 的状态标志位的,而是由 CPU 在中断时自动完成的。中断处理程序一般在内核态执行,因此无法完成 “转换成内核态” 这一任务。08.下列指令中,可以在用户态执行的是( )。
I. 置时钟指令
II. 停机指令
III. 存数指令
IV. 寄存器清零指令
A. I、IV
B. III、IV
C. II、III、IV
D. II、III08.B
直接管理系统资源的指令(如设置时钟、启动 / 关闭硬件设备、切换进程、设置中断等)、系统状态修改指令(如修改中断向量表、切换 CPU 的运行模式等)、系统控制指令(如停机指令、重启指令等),都属于特权指令,必须在内核态执行。普通的数据处理指令、流程控制指令、读操作指令都不会影响系统的安全和整体状态,可以在用户态执行。09.下列指令中,必须在内核态执行的是( )。
I. 陷入指令
II. 系统调用指令
III. 开中断指令
IV. 转移指令
V. 中断屏蔽字设置指令
A. I、II、III、IV
B. II、III
C. II、III、V
D. I、IV09.C
用户程序通过陷入指令让 CPU 模式从用户态转入内核态,因此在用户态执行。虽然调用的发生可能在用户态(注意区分调用和执行),但是系统调用指令必然在内核态执行。开中断指令和关中断指令都属于特权指令,能够影响到系统的运行,必须在内核态执行。无论是分支跳转指令还是无条件转移指令,都属于普通的程序流程控制指令,在用户态执行。中断屏蔽字寄存器属于中断控制器的一部分,而中断控制器是属于 I/O 接口的,因此设置中断屏蔽字寄存器的操作就相当于对 I/O 接口中的 I/O 端口进行设置,属于 I/O 指令,必须在内核态执行。10.下列程序中,必须在内核态执行的是( )。
I. 磁盘调度程序
II. 中断处理程序
III. 设备驱动程序
IV. 操作系统初始化程序
A. I、II、III、IV
B. I、II、III
C. I、II、IV
D. II、III10.A
磁盘调度程序控制磁头的运行,和硬件密切相关,运行在内核态。中断处理程序在中断发生后由操作系统内核调用,运行在内核态。设备驱动程序用于和硬件设备进行通信,运行在内核态。操作系统初始化程序负责初始化系统资源、设置环境、加载驱动程序等,运行在内核态。11.当 CPU 处于内核态时,它可以执行的指令是( )。
A. 只有特权指令
B. 只有非特权指令
C. 只有访管指令
D. 除访管指令之外的全部指令11.D
访管指令(trap 指令)是一条在用户态下执行的指令。用户程序在用户态下要请求操作系统内核提供服务,就有意识地使用访管指令来引起访管中断,从而将控制权交给内核。在内核态,CPU 可以执行除访管指令之外的任何指令。12.下列中断事件中,能引起外部中断的事件是( )。
I. 时钟中断
II. 访管中断
III. 缺页中断
A. I
B. III
C. I 和 II
D. II 和 III12.A
外部中断是由 CPU 外部的事件引起的,如 I/O 设备的请求、时钟信号等。内部中断(也称异常)是由 CPU 内部的事件引起的,如访管指令(trap 指令)、缺页异常等。13.下列关于库函数和系统调用的说法中,不正确的是( )。
A. 库函数运行在用户态,系统调用运行在内核态
B. 使用库函数时开销较小,使用系统调用时开销较大
C. 库函数不方便替换,系统调用通常很方便被替换
D. 库函数可以很方便地调试,而系统调用很麻烦13.C
库函数是指被封装在库文件中的可复用的代码块,运行在用户态;而系统调用是面向硬件的,运行在内核态,是操作系统为用户提供的接口。库函数可以很方便地调试,而系统调用很麻烦,因为它运行在内核态。库函数可以很方便地替换,而系统调用通常不可替换。库函数属于过程调用,开销较小;系统调用需要在用户空间和内核空间中进行上下文切换,开销较大。14.下列关于系统调用和一般过程调用的说法中,正确的是( )。
A. 两者都需要将当前 CPU 中的 PSW 和 PC 的值压栈,以保存现场信息
B. 系统调用的被调用过程一定运行在内核态
C. 一般过程调用的被调用过程一定运行在用户态
D. 两者的调用过程与被调用过程一定都运行在用户态14.B
系统调用需要保存 PSW 和 PC 的值,一般过程调用只需保存 PC 的值,选项 A 错误。系统调用的被调用过程是操作系统中的程序,是系统级程序,必须运行在内核态,选项 B 正确。一般过程调用的被调用程序与调用程序运行在同一个状态,可能是系统态,也可能是用户态,选项 C 和 D 错误。15.用户在程序中试图读某文件的第 100 个逻辑块,使用操作系统提供的( )接口。
A. 系统调用
B. 键盘命令
C. 原语
D. 图形用户接口15.A
操作系统通过系统调用向用户程序提供服务,文件 I/O 需要在内核态运行。16.【2011 统考真题】下列选项中,在用户态执行的是( )。
A. 命令解释程序
B. 缺页处理程序
C. 进程调度程序
D. 时钟中断处理程序16.A
缺页处理和时钟中断都属于中断,在内核态执行;进程调度是操作系统内核进程,无须用户干预,在内核态执行;命令解释程序属于命令接口,是面对用户的,在用户态执行。17.【2012 统考真题】下列选项中,不可能在用户态发生的事件是( )。
A. 系统调用
B. 外部中断
C. 进程切换
D. 缺页17.C
本题的关键是对 “在用户态发生”(注意与 “在用户态执行” 区分)的理解。对于选项 A,系统调用是操作系统提供给用户程序的接口,系统调用发生在用户态,被调用程序在内核态下执行。对于选项 B,外部中断是用户态到内核态的 “门”,也发生在用户态,在内核态完成中断处理过程。对于选项 C,进程切换属于系统调用执行过程中的事件,只能发生在内核态;对于选项 D,缺页产生后,在用户态发生缺页中断,然后进入内核态执行缺页中断服务程序。18.【2012 统考真题】中断处理和子程序调用都需要压栈,以便保护现场,中断处理一定会保存而子程序调用不需要保存其内容的是( )。
A. 程序计数器
B. 程序状态字寄存器
C. 通用数据寄存器
D. 通用地址寄存器18.B
子程序调用不改变程序的状态,因为子程序调用是编译器可控的流程,而中断不是。下面以程序 if (a==b) 为例加以说明。该程序通常包含一条测试指令,以及一条根据标志位决定是否需要跳转来调用子程序的指令。编译器不在这两条指令中间插入任何子程序调用代码,因此标志位不变,但中断却随时可能发生,导致标志位改变。具体地说,执行 if (a==b) 时,会进行 a - b 操作,并生成相应的标志位,进而根据标志位来判断是否发生跳转。假设刚好在生成相应的标志位后发生了中断,若不保存 PSW 的内容,则后续根据标志位来进行跳转的流程就可能发生错误。但是,若进行了子程序调用,则说明已经根据 a - b 的标志位进行了跳转,此时 PSW 的内容已无意义而无须保存。综上所述,中断处理和子程序调用都有可能使 PSW 的内容发生变化,但中断处理程序执行完返回后,可能需要用到 PSW 原来的内容,子程序执行完返回后,一定不需要用到 PSW 原来的内容,因此选择选项 B。选项 A 都会保存,选项 C 和 D 不一定会保存。19.【2013 统考真题】下列选项中,会导致用户进程从用户态切换到内核态的操作是( )。
I. 整数除零
II. sin () 函数调用
III. read 系统调用
A. 仅 I、II
B. 仅 I、III
C. 仅 II、III
D. I、II 和 III19.B
整数除以零是非法操作,因此 CPU 会检测到异常,并切换到内核态进行异常处理。sin () 函数是 C 语言中的普通运算类库函数,且不会引发系统调用,在用户态执行。在用户态触发 read 系统调用时,会通过 trap 指令陷入内核态,由 CPU 执行相应的系统调用服务例程。20.【2014 统考真题】下列指令中,不能在用户态执行的是( )。
A. trap 指令
B. 跳转指令
C. 压栈指令
D. 关中断指令20.D
trap 指令、跳转指令和压栈指令均可以在用户态执行,其中 trap 指令负责由用户态转换为内核态。关中断指令为特权指令,必须在内核态才能执行。注意,在操作系统中,关中断指令是权限非常大的指令,因为中断是现代操作系统正常运行的核心保障之一,能把它关掉,说明执行这条指令的一定是权限非常大的机构(内核态)。21.【2015 统考真题】处理外部中断时,应该由操作系统保存的是( )。
A. 程序计数器(PC)的内容
B. 通用寄存器的内容
C. 快表(TLB)中的内容
D. Cache 中的内容21.B
外部中断处理过程,PC 值由中断隐指令自动保存,而通用寄存器内容由操作系统保存。快表(TLB)和 Cache 中的内容在外部中断处理过程中通常无须保存,直接置有效位为 0 即可。22.【2015 统考真题】假定下列指令已装入指令寄存器,则执行时不可能导致 CPU 从用户态变为内核态(系统态)的是( )。
A. DIV R0, R1 ; (R0)/(R1)→R0
B. INT n ; 产生软中断
C. NOT R0 ; 寄存器 R0 的内容取非
D. MOV R0, addr ; 把地址 addr 处的内存数据放入寄存器 R022.C
部分指令可能出现异常,从而转到内核态。指令 A 有除零异常的可能。指令 B 为软中断指令,用于触发一个中断并跳转到相应的中断处理程序,n 表示中断向量号,使用软中断可以在用户态和内核态之间切换,以实现系统调用。指令 D 有缺页异常的可能。指令 C 不会发生异常。23.【2016 统考真题】异常是指指令执行过程中在处理器内部发生的特殊事件,中断是来自处理器外部的请求事件。下列关于中断或异常情况的叙述中,错误的是( )。
A. “访存时缺页” 属于中断
B. “整数除以 0” 属于异常
C. “DMA 传送结束” 属于中断
D. “存储保护错” 属于异常23.A
中断是指来自 CPU 执行指令以外事件,如设备发出的 I/O 结束中断,表示设备输入 / 输出已完成,希望处理机能够向设备发出下一个输入 / 输出请求,同时让完成输入 / 输出后的程序继续运行。异常也称内中断,指源自 CPU 执行指令内部的事件。选项 A 错误。24.【2017 统考真题】执行系统调用的过程包括如下主要操作:
①返回用户态
②执行陷入(trap)指令
③传递系统调用参数
④执行相应的服务程序
正确的执行顺序是( )。
A. ②→③→①→④
B. ②→④→③→①
C. ③→②→④→①
D. ③→④→②→①24.C
执行系统调用的过程:正在运行的进程先传递系统调用参数,然后由陷入(trap)指令负责将 CPU 模式从用户态转换为内核态,并将返回地址压入堆栈以备后用,接下来 CPU 执行相应的内核态服务程序,最后返回用户态。25.【2018 统考真题】定时器产生时钟中断后,由时钟中断服务程序更新的部分内容是( )。
I. 内核中时钟变量的值
II. 当前进程占用 CPU 的时间
III. 当前进程在时间片内的剩余执行时间
A. 仅 I、II
B. 仅 II、III
C. 仅 I、III
D. I、II、III25.D
时钟中断的主要工作是处理和时间有关的信息及决定是否执行调度程序。和时间有关的所有信息包括系统时间、进程的时间片、延时、使用 CPU 的时间、各种定时器。26.【2019 统考真题】下列关于系统调用的叙述中,正确的是( )。
I. 在执行系统调用服务程序的过程中,CPU 处于内核态
II. 操作系统通过提供系统调用避免用户程序直接访问外设
III. 不同的操作系统为应用程序提供了统一的系统调用接口
IV. 系统调用是操作系统内核为应用程序提供服务的接口
A. 仅 I、IV
B. 仅 II、III
C. 仅 I、II、IV
D. 仅 I、III、IV26.C
用户可以在用户态调用操作系统的服务,但执行具体的系统调用服务程序是处于内核态的,选项 I 正确;设备管理属于操作系统的职能之一,包括对输入 / 输出设备的分配、初始化、维护等,用户程序需要通过系统调用使用操作系统的设备管理服务,选项 II 正确;操作系统不同,底层逻辑、实现方式均不相同,为应用程序提供的系统调用接口也不同,选项 III 错误;系统调用是用户在程序中调用操作系统提供的子功能,选项 IV 正确。27.【2020 统考真题】下列与中断相关的操作中,由操作系统完成的是( )。
I. 保存被中断程序的中断点
II. 提供中断服务
III. 初始化中断向量表
IV. 保存中断屏蔽字
A. 仅 I、II
B. 仅 I、II、IV
C. 仅 III、IV
D. 仅 II、III、IV27.D
当 CPU 检测到中断信号后,由硬件自动保存被中断程序的断点[程序计数器(PC)和程序状态字寄存器(PSW)],选项 I 错误。之后,硬件找到该中断信号对应的中断向量,中断向量指明中断服务程序入口地址(各中断向量统一存放在中断向量表中,该表由操作系统初始化,选项 III 正确)。接下来开始执行中断服务程序,保存中断屏蔽字、保存各通用寄存器的值,并提供与中断信号对应的中断服务,中断服务程序属于操作系统内核,选项 II 和 IV 正确。28.【2021 统考真题】下列指令中,只能在内核态执行的是( )。
A. trap 指令
B. I/O 指令
C. 数据传送指令
D. 设置断点指令28.B
在内核态下,CPU 可执行任何指令,在用户态下 CPU 只能执行非特权指令,而特权指令只能在内核态下执行。常见的特权指令有:①有关对 I/O 设备操作的指令;②有关访问程序状态的指令;③存取特殊寄存器的指令;④其他指令。选项 A、C 和 D 都是提供给用户使用的指令,可以在用户态执行,只是可能使 CPU 从用户态切换到内核态。29.【2021 统考真题】下列选项中,通过系统调用完成的操作是( )。
A. 页置换
B. 进程调度
C. 创建新进程
D. 生成随机整数29.C
系统调用是由用户进程发起的,请求操作系统的服务。对于选项 A,当内存中的空闲页框不够时,操作系统会将某些页面调出,并将要访问的页面调入,这个过程完全由操作系统完成,不涉及系统调用。对于选项 B,进程调度完全由操作系统完成,无法通过系统调用完成。对于选项 C,创建新进程可以通过系统调用来完成,如 Linux 中通过 fork 系统调用来创建子进程。对于选项 D,生成随机数是普通的函数调用,不涉及请求操作系统的服务,如 C 语言的 random () 函数。30.【2022 统考真题】下列关于 CPU 模式的叙述中,正确的是( )。
A. CPU 处于用户态时只能执行特权指令
B. CPU 处于内核态时只能执行特权指令
C. CPU 处于用户态时只能执行非特权指令
D. CPU 处于内核态时只能执行非特权指令30.C
CPU 在用户态时只能执行非特权指令,在内核态时可以执行特权指令和非特权指令。31.【2022 统考真题】执行系统调用的过程涉及下列操作,其中由操作系统完成的是( )。
I. 保存断点和程序状态字
II. 保存通用寄存器的内容
III. 执行系统调用服务例程
IV. 将 CPU 模式改为内核态
A. 仅 I、III
B. 仅 II、III
C. 仅 II、IV
D. 仅 II、III、IV31.B
发生系统调用时,CPU 通过执行软中断指令将 CPU 的运行状态从用户态切换到内核态,这个过程与中断和异常的响应过程相同,由硬件负责保存断点和程序状态字,并将 CPU 模式改为内核态。然后,执行操作系统内核的系统调用入口程序,该内核程序负责保存通用寄存器的内容,再调用执行特定的系统调用服务例程。综上,选项 I、IV 由硬件完成,选项 II、III 由操作系统完成。32.【2023 统考真题】在操作系统内核中,中断向量表适合采用的数据结构是( )。
A. 数组
B. 队列
C. 单向链表
D. 双向链表32.A
本题考查了 “计算机组成原理” 的考点,且综合了 “数据结构” 的内容。中断向量表用于存放中断处理程序的入口地址,CPU 通过查询得到中断类型号,然后据此计算可以得到对应中断服务程序的入口地址在中断向量表的位置,采用数组作为中断向量表的存储结构,可实现时间复杂度为 O (1) 的快速访问,从而提高中断处理的效率。33.【2024 统考真题】下列关于中断、异常和系统调用的叙述中,错误的是( )。
A. 中断或异常发生时,CPU 处于内核态
B. 每个系统调用都有对应的内核服务例程
C. 中断处理程序开始执行时,CPU 处于内核态
D. 系统添加新类型设备时,需要注册相应的中断服务例程33.A
当中断或异常发生时,CPU 既可能处于内核态,又可能处于用户态,具体取决于当时 CPU 正在处理的任务,选项 A 错误。不同的系统调用对应不同的内核服务例程,选项 B 正确。在中断响应阶段,若 CPU 处于用户态,则需要切换到内核态,因此在中断处理阶段,CPU 一定处于内核态,选项 C 正确。设备种类繁多,计算机不可能事先准备好所有设备对应的中断服务例程(实际上属于设备驱动程序),因此当系统添加新类型的设备时,需要注册相应的中断服务例程。1.4 操作系统结构
随着操作系统功能的不断增多和代码规模的不断扩大,提供合理的结构,对降低操作系统复杂度、提升操作系统安全与可靠性来说变得尤为重要。
1. 分层法
分层法是将操作系统分为若干层,底层(层 0)为硬件,顶层(层 N)为用户接口,每层只能调用紧邻它的低层的功能和服务(单向依赖)。分层的操作系统如图 1.4 所示。
分层法的优点:①便于系统的调试和验证,简化了系统的设计和实现。第 1 层可先调试而无须考虑系统的其他部分,因为它只使用了基本硬件。第 1 层调试完且验证正确之后,就可以调试第 2 层,如此向上。若在调试某层时发现错误,则错误应在这一层上,这是因为它的低层都调试好了。②易扩充和易维护。在系统中增加、修改或替换一层中的模块或整层时,只要不改变相应层间的接口,就不会影响其他层。
分层法的问题:①合理定义各层比较困难。因为依赖关系固定后,往往就显得不够灵活。②效率较差。操作系统每执行一个功能,通常要自上而下地穿越多层,各层之间都有相应的层间通信机制,这无疑增加了额外的开销,导致系统效率降低。2. 模块化
模块化是将操作系统按功能划分为若干具有一定独立性的模块。每个模块具有某方面的管理功能,并规定好各模块间的接口,使各模块之间能够通过接口进行通信。还可以进一步将各模块细分为若干具有一定功能的子模块,同样也规定好各子模块之间的接口。这种设计方法被称为模块 - 接口法,图 1.5 所示为由模块、子模块等组成的模块化操作系统结构。
在划分模块时,若将模块划分得太小,则虽然能降低模块本身的复杂性,但会使得模块之间的联系过多,造成系统比较混乱;若模块划分得过大,则又会增加模块内部的复杂性,显然应在两者间进行权衡。此外,在划分模块时,要充分考虑模块的独立性问题,因为模块独立性越高,各模块间的交互就越少,系统的结构也就越清晰。衡量模块的独立性主要有两个标准:
·内聚性,模块内部各部分间联系的紧密程度。内聚性越高,模块独立性越好。
·耦合度,模块间相互联系和相互影响的程度。耦合度越低,模块独立性越好。
模块化的优点:①提高了操作系统设计的正确性、可理解性和可维护性;②增强了操作系统的适应性;③加速了操作系统的开发过程。
模块化的缺点:①模块间的接口规定很难满足对接口的实际需求。②各模块设计者齐头并进,每个决定无法建立在上一个已验证的正确决定的基础上,因此无法找到一个可靠的决定顺序。3. 宏内核
从操作系统的内核架构来划分,可分为宏内核和微内核。
宏内核,也称单内核或大内核,是指将系统的主要功能模块都作为一个紧密联系的整体运行在内核态,从而为用户程序提供高性能的系统服务。因为各管理模块之间共享信息,能有效利用相互之间的有效特性,所以具有无可比拟的性能优势。
随着体系结构和应用需求的不断发展,需要操作系统提供的服务越来越复杂,操作系统的设计规模急剧增长,操作系统也面临着 “软件危机” 困境。就像一个人,越胖活动起来就越困难。所以就出现了微内核技术,就是将一些非核心的功能移到用户空间,这种设计带来的好处是方便扩展系统,所有新服务都可以在用户空间增加,内核基本不用去做改动。
从操作系统的发展来看,宏内核获得了绝对的胜利,目前主流的操作系统,如 Windows、Android、iOS、macOS、Linux 等,都是基于宏内核的构架。但也应注意到,微内核和宏内核一直是同步发展的,目前主流的操作系统早已不是当年纯粹的宏内核构架了,而是广泛吸取微内核构架的优点而后揉合而成的混合内核。当今宏内核构架遇到了越来越多的困难和挑战,而微内核的优势似乎越来越明显,尤其是谷歌的 Fuchsia 和华为的鸿蒙 OS,都瞄准了微内核构架。4. 微内核
(1)微内核的基本概念
微内核构架,是指将内核中最基本的功能保留在内核,而将那些不需要在内核态执行的功能移到用户态执行,从而降低内核的设计复杂性。那些移出内核的操作系统代码根据分层的原则被划分成若干服务程序,它们的执行相互独立,交互则都借助于微内核进行通信。
微内核结构将操作系统划分为两大部分:微内核和多个服务器。微内核是指精心设计的、能实现操作系统最基本核心功能的小型内核,通常包含:①与硬件处理紧密相关的部分;②一些较基本的功能;③客户和服务器之间的通信。这些部分只是为构建通用操作系统提供一个重要基础,这样就可以确保将内核做得很小。操作系统中的绝大部分功能都放在微内核外的一组服务器(进程)中实现,如用于提供对进程(线程)进行管理的进程(线程)服务器、提供虚拟存储器管理功能的虚拟存储器服务器等,它们都是作为进程来实现的,运行在用户态,客户与服务器之间是借助微内核提供的消息传递机制来实现交互的。图 1.6 展示了单机环境下的客户 / 服务器模式。
在微内核结构中,为了实现高可靠性,只有微内核运行在内核态,其余模块都运行在用户态,一个模块中的错误只会使这个模块崩溃,而不会使整个系统崩溃。例如,文件服务代码运行时出了问题,宏内核因为文件服务是运行在内核态的,系统直接就崩溃了。而微内核的文件服务是运行在用户态的,只要将文件服务功能强行停止,然后重启,就可以继续使用,系统不会崩溃。
(2)微内核的基本功能
微内核结构通常利用 “机制与策略分离” 的原理来构造 OS 结构,将机制部分以及与硬件紧密相关的部分放入微内核。微内核通常具有如下功能:
①进程(线程)管理。进程(线程)之间的通信功能是微内核 OS 最基本的功能,此外还有进程的切换、进程的调度,以及多处理机之间的同步等功能,都应放入微内核。举个例子,为实现进程调度功能,需要在进程管理中设置一个或多个进程优先级队列,这部分属于调度功能的机制部分,应将它放入微内核。而对用户进程如何分类,以及优先级的确认方式,则属于策略问题,可将它们放入微内核外的进程管理服务器中。
②低级存储器管理。在微内核中只配置最基本的低级存储器管理机制,如用于实现将逻辑地址变换为物理地址等的页表机制和地址变换机制,这一部分是依赖于硬件的,因此放入微内核。而实现虚拟存储器管理的策略,则包含应采取何种页面置换算法、采用何种内存分配与回收的策略,应将这部分放在微内核外的存储器管理服务器中。
③中断和陷入处理。微内核 OS 将与硬件紧密相关的一小部分放入微内核,此时微内核的主要功能是捕获所发生的中断和陷入事件,并进行中断响应处理,在识别中断或陷入的事件后,再发送给相关的服务器来处理,所以中断和陷入处理也应放入微内核。微内核操作系统将进程管理、存储器管理以及 I/O 管理这些功能一分为二,属于机制的很小一部分放入微内核,而绝大部分放入微内核外的各种服务器实现,大多数服务器都要比微内核大。因此,在采用客户 / 服务器模式时,能将微内核做得很小。
(3)微内核的特点
命题追踪 微内核操作系统的特点(2023)
微内核结构的主要优点如下所示。
①扩展性和灵活性。许多功能从内核中分离出来,当要修改某些功能或增加新功能时,只需在相应的服务器中修改或新增功能,或再增加一个专用的服务器,而无须改动内核代码。
②可靠性和安全性。前面已举例说明。
③可移植性。与 CPU 和 I/O 硬件有关的代码均放在内核中,而其他各种服务器均与硬件平台无关,因而将操作系统移植到另一个平台上所需做的修改是比较小的。
④分布式计算。客户和服务器之间、服务器和服务器之间的通信采用消息传递机制,这就使得微内核系统能很好地支持分布式系统和网络系统。微内核结构的主要问题是性能问题,因为需要频繁地在内核态和用户态之间进行切换,操作系统的执行开销偏大。为了改善运行效率,可以将那些频繁使用的系统服务移回内核,从而保证系统性能,但这又会使微内核的容量明显地增大。
虽然宏内核在桌面操作系统中取得了绝对的胜利,但是微内核在实时、工业、航空及军事应用中特别流行,这些领域都是关键任务,需要有高度的可靠性。
5. 外核
不同于虚拟机克隆真实机器,另一种策略是对资源进行划分,为每个用户分配整个资源的一个子集。例如,某虚拟机可能得到磁盘的 0 - 1023 盘块,而另一虚拟机得到磁盘的 1024 - 2047 盘块等。在底层,一种称为外核(exokernel)的程序在内核态中运行。它的任务是为虚拟机分配资源,并检查这些资源使用的安全性,以确保没有机器会使用他人的资源。每个用户的虚拟机可以运行自己的操作系统,但限制只能使用已经申请并且获得分配的那部分资源。
外核机制的优点是减少了资源的 “映射层”。在其他设计中,每个虚拟机系统都认为它拥有完整的磁盘(或其他资源),这样虚拟机监控程序就必须维护一张表格以重映像磁盘地址,有了外核,这个重映射处理就不需要了。外核只需要记录已分配给各个虚拟机的有关资源即可。这种方法还有一个优点,它将多道程序(在外核内)与用户操作系统代码(在用户空间内)加以分离,而且相应的负载并不重,因为外核所做的只是保持多个虚拟机彼此不发生冲突。
1.5 操作系统引导
操作系统(如 Windows、Linux 等)是一种程序,程序以数据的形式存放在硬盘中,而硬盘通常分为多个区,一台计算机中又可能有多个或多种外部存储设备。操作系统引导是指计算机利用 CPU 运行特定程序,通过程序识别硬盘,识别硬盘分区,识别硬盘分区上的操作系统,最后通过程序启动操作系统,一环扣一环地完成上述过程。
命题追踪 操作系统的引导过程(2021)
常见操作系统的引导过程如下:
①激活 CPU。激活的 CPU 读取 ROM 中的 boot 程序,将指令寄存器置为 BIOS(基本输入 / 输出系统)的第一条指令,即开始执行 BIOS 的指令。
②硬件自检。BIOS 程序在内存最开始的空间构建中断向量表,接下来的 POST(通电自检)过程要用到中断功能。然后进行通电自检,检查硬件是否出现故障。如有故障,主板会发出不同含义的蜂鸣,启动中止;如无故障,屏幕会显示 CPU、内存、硬盘等信息。
③加载带有操作系统的硬盘。通电自检后,BIOS 开始读取 Boot Sequence(通过 CMOS 里保存的启动顺序,或者通过与用户交互的方式),将控制权交给启动顺序排在第一位的存储设备,然后 CPU 将该存储设备引导扇区的内容加载到内存中。
④加载主引导记录(MBR)。硬盘以特定的标识符区分引导硬盘和非引导硬盘。若发现一个存储设备不是可引导盘,就检查下一个存储设备。如无其他启动设备,就会死机。主引导记录 MBR 的作用是告诉 CPU 去硬盘的哪个主分区去找操作系统。
⑤扫描硬盘分区表,并加载硬盘活动分区。MBR 包含硬盘分区表,硬盘分区表以特定的标识符区分活动分区和非活动分区。主引导记录扫描硬盘分区表,进而识别含有操作系统的硬盘分区(活动分区)。找到硬盘活动分区后,开始加载硬盘活动分区,将控制权交给活动分区。
⑥加载分区引导记录(PBR)。读取活动分区的第一个扇区,这个扇区称为分区引导记录(PBR),其作用是寻找并激活分区根目录下用于引导操作系统的程序(启动管理器)。
⑦加载启动管理器。分区引导记录搜索活动分区中的启动管理器,加载启动管理器。
命题追踪 操作系统运行的存储器(2013)
⑧加载操作系统。将操作系统的初始化程序加载到内存中执行。1.6 虚拟机
1.6.1 虚拟机的基本概念
虚拟机是指利用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器,通过隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境。有两类虚拟化方法。
1.第一类虚拟机管理程序
从技术上讲,第一类虚拟机管理程序就像一个操作系统,因为它是唯一一个运行在最高特权级的程序。它在裸机上运行并且具备多道程序功能。虚拟机管理程序向上层提供若干虚拟机,这些虚拟机是裸机硬件的精确复制品。因为每台虚拟机都与裸机相同,所以在不同的虚拟机上可以运行任何不同的操作系统。图 1.7 (a) 中显示了第一类虚拟机管理程序。
虚拟机作为用户态的一个进程运行,不允许执行敏感指令。然而,虚拟机上的操作系统认为自己运行在内核态(实际上不是),称为虚拟内核态。虚拟机中的用户进程认为自己运行在用户态(实际上确实是)。当虚拟机操作系统执行了一条 CPU 处于内核态才允许执行的指令时,会陷入虚拟机管理程序。在支持虚拟化的 CPU 上,虚拟机管理程序检查这条指令是由虚拟机中的操作系统执行的还是由用户程序执行的。若是前者,则虚拟机管理程序将安排这条指令功能的正确执行。否则,虚拟机管理程序将模拟真实硬件面对用户态执行敏感指令时的行为。
在过去不支持虚拟化的 CPU 上,真实硬件不会直接执行虚拟机中的敏感指令,这些敏感指令被转为对虚拟机管理程序的调用,由虚拟机管理程序模拟这些指令的功能。
2. 第二类虚拟机管理程序
图 1.7 (b) 中显示了第二类虚拟机管理程序。它是一个依赖于 Windows、Linux 等操作系统分配和调度资源的程序,很像一个普通的进程。第二类虚拟机管理程序仍然伪装成具有 CPU 和各种设备的完整计算机。VMware Workstation 是首个 x86 平台上的第二类虚拟机管理程序。
运行在两类虚拟机管理程序上的操作系统都称为客户操作系统。对于第二类虚拟机管理程序,运行在底层硬件上的操作系统称为宿主操作系统。
首次启动时,第二类虚拟机管理程序像一台刚启动的计算机那样运转,期望找到的驱动器可以是虚拟设备。然后将操作系统安装到虚拟磁盘上(其实只是宿主操作系统中的一个文件)。客户操作系统安装完成后,就能启动并运行。
虚拟化在 Web 主机领域很流行。没有虚拟化,服务商只能提供共享托管(不能控制服务器的软件)和独占托管(成本较高)。当服务商提供租用虚拟机时,一台物理服务器就可以运行多个虚拟机,每个虚拟机看起来都是一台完整的服务器,客户可以在虚拟机上安装自己想用的操作系统和软件,但是只需支付较低的费用,这就是市面上常见的 “云” 主机。
有的教材将第一类虚拟化技术称为裸金属架构,将第二类虚拟化技术称为寄居架构。
1.6.2 本节习题精选
单项选择题
01. 用( )设计的操作系统结构清晰且便于调试。
A. 分层式构架
B. 模块化构架
C. 微内核构架
D. 宏内核构架01.A
分层式结构简化了系统的设计和实现,每层只能调用紧邻它的低层的功能和服务,便于系统的调试和验证,若在调试某层时发现错误,则错误应在这层上,这是因为其低层都已调试好。02. 下列关于分层式结构操作系统的说法中,( )是错误的。
A. 各层之间只能是单向依赖或单向调用
B. 容易实现在系统中增加或替换一层而不影响其他层
C. 具有非常灵活的依赖关系
D. 系统效率较低02.C
单向依赖是分层式 OS 的特点。分层式 OS 中增加或替换一个层中的模块或整层时,只要不改变相应层间的接口,就不会影响其他层,因而易于扩充和维护。层次定义好后,相当于各层之间的依赖关系也就固定了,因此往往显得不够灵活,选项 C 错误。每执行一个功能,通常都要自上而下地穿越多层,增加了额外的开销,导致系统效率降低。03. 下列选项中,( )不属于模块化操作系统的特点。
A. 很多模块化的操作系统,可以支持动态加载新模块到内核,适应性强
B. 内核中的某个功能模块出错不会导致整个系统崩溃,可靠性高
C. 内核中的各个模块,可以相互调用,无须通过消息传递进行通信,效率高
D. 各模块间相互依赖,相比于分层式操作系统,模块化操作系统更难调试和验证03.B
模块化操作系统的各功能模块都在内核中,且模块之间相互调用、相互依赖,任何一个模块出错,都可能导致整个内核崩溃。选项 B 的设置属于 “移花接木”,正确的说法应该是:在微内核操作系统中,内核外的某个功能模块出错不会导致整个系统崩溃,可靠性高。04. 相对于微内核系统,( )不属于大内核操作系统的缺点。
A. 占用内存空间大
B. 缺乏可扩展性而不方便移植
C. 内核切换太慢
D. 可靠性较低04.C
微内核和宏内核作为两种对立的结构,它们的优缺点也是对立的。微内核 OS 的主要缺点是性能问题,因为需要频繁地在内核态和用户态之间进行切换,因而切换开销偏大。05. 下列说法中,( )不适合描述微内核操作系统。
A. 内核足够小
B. 功能分层设计
C. 基于 C/S 模式
D. 策略与机制分离05.B
功能分层设计是分层式 OS 的特点。通常可以从四个方面来描述微内核 OS:①内核足够小;②基于客户 / 服务器模式;③应用 “机制与策略分离” 原理;④采用面向对象技术。06. 对于以下五种服务,在采用微内核结构的操作系统中,( )不宜放在微内核中。
I. 进程间通信机制
II. 低级 I/O
III. 低级进程管理和调度
IV. 中断和陷入处理
V. 文件系统服务
A. I、II 和 III
B. II 和 V
C. 仅 V
D. IV 和 V06.C
进程(线程)之间的通信功能是微内核最频繁使用的功能,因此几乎所有微内核 OS 都将其放入微内核。低级 I/O 和硬件紧密相关,因此应放入微内核。低级进程管理和调度属于调度功能的机制部分,应将它放入微内核。微内核 OS 将与硬件紧密相关的一小部分放入微内核处理,此时微内核的主要功能是捕获所发生的中断和陷入事件,并进行中断响应处理,识别中断或陷入的事件后,再发送给相关的服务器处理,所以中断和陷入处理也应放入微内核。而文件系统服务是放在微内核外的文件服务器中实现的,所以仅选项 V 不宜放在微内核中。07. 相对于传统操作系统结构,采用微内核结构设计和实现操作系统有诸多好处,下列( )是微内核结构的特点。
I. 使系统更高效
II. 添加系统服务时,不必修改内核
III. 微内核结构没有单一内核稳定
IV. 使系统更可靠
A. I、III、IV
B. I、II、IV
C. II、IV
D. I、IV07.C
微内核结构需要频繁地在内核态和用户态之间进行切换,操作系统的执行开销相对偏大,那些移出内核的操作系统代码根据分层的原则被划分成若干服务程序,它们的执行相互独立,交互则都借助于微内核进行通信,影响了系统的效率,因此选项 I 不是优势。因为内核的服务变少,且一般来说内核的服务越少内核越稳定,所以选项 III 错误。而选项 II、IV 正是微内核结构的优点。08. 下列关于操作系统结构的说法中,正确的是( )。
I. 当前广泛使用的 Windows 操作系统,采用的是分层式 OS 结构
II. 模块化的 OS 结构设计的基本原则是,每一层都仅使用其底层所提供的功能和服务,这样就使系统的调试和验证都变得容易
III. 因为微内核结构能有效支持多处理机运行,所以非常适合于分布式系统环境
IV. 采用微内核结构设计和实现操作系统具有诸多好处,如添加系统服务时,不必修改内核、使系统更高效。
A. I 和 II
B. I 和 III
C. III
D. III 和 IV08.C
Windows 是融合了宏内核和微内核的操作系统,选项 I 错误。选项 II 描述的是层次化构架的原则。微内核架构将操作系统的核心功能和其他服务分离,使不同的服务可在不同的处理器上并行执行,提高了系统的并发性和可扩展性;微内核架构可以方便地实现进程间的通信和同步,支持服务器之间的消息传递和远程过程调用,使得分布式系统的开发和管理更简单和高效,选项 III 正确。添加系统服务时不必修改内核,这就使得微内核架构的可扩展性和灵活性更强;微内核构架的主要问题是性能问题,“使系统更高效” 显然错误。09. 下列关于微内核操作系统的描述中,不正确的是( )。
A. 可增加操作系统的可靠性
B. 可提高操作系统的执行效率
C. 可提高操作系统的可移植性
D. 可提高操作系统的可拓展性09.B
微内核会增加一些开销,如上下文切换、消息传递、数据拷贝等。这些开销会降低操作系统的执行效率,尤其是对一些频繁调用的服务。选项 A、C、D 均正确。10. 下列关于操作系统外核(exokernel)的说法中,错误的是( )。
A. 外核可以给用户进程分配未经抽象的硬件资源
B. 用户进程通过调用 “库” 请求操作系统外核的服务
C. 外核负责完成进程调度
D. 外核可以减少虚拟硬件资源的 “映射” 开销,提升系统效率10.C
在拥有外核的操作系统中,外核只负责硬件资源的分配、回收、保护等,进程管理相关的工作仍然由内核负责。11. 对于计算机操作系统引导,描述不正确的是( )。
A. 计算机的引导程序驻留在 ROM 中,开机后自动执行
B. 引导程序先做关键部位的自检,并识别已连接的外设
C. 引导程序会将硬盘中存储的操作系统全部加载到内存中
D. 若计算机中安装了双系统,引导程序会与用户交互加载有关系统11.C
常驻内存的只是操作系统内核,其他部分仅在需要时才调入。12. 存放操作系统自举程序的芯片是( )。
A. SRAM
B. DRAM
C. ROM
D. CMOS12.C
BIOS(基本输入 / 输出系统)是一组固化在主板的 ROM 芯片上的程序,它包含系统设置程序、基本输入 / 输出程序、开机自检程序和系统启动自举程序等。13. 计算机操作系统引导程序位于( )中。
A. 主板 BIOS
B. 片外 Cache
C. 主存 ROM 区
D. 硬盘13.D
操作系统的引导程序位于磁盘活动分区的引导扇区中。引导程序分为两种:一种是位于 ROM 中的自举程序(BIOS 的组成部分),用于启动具体的设备;另一种是位于装有操作系统硬盘的活动分区的引导扇区中的引导程序(称为启动管理器),用于引导操作系统。14. 计算机的启动过程是( )。①CPU 加电,CS:IP 指向 FFFF0H;②进行操作系统引导;③执行 JMP 指令跳转到 BIOS;④登记 BIOS 中断程序入口地址;⑤硬件自检。
A. ①②③④⑤
B. ①③⑤④②
C. ①③④⑤②
D. ①⑤③④②14.C
CPU 激活后,从顶端的地址 FFFF0H 获得第一条执行的指令,这个地址仅有 16 字节,放不下一段程序,所以是一条 JMP 指令,以跳到更低地址去执行 BIOS 程序。BIOS 程序在内存最开始的空间构建中断向量表和相应服务程序,在后续 POST 过程中要用到中断调用等功能。然后进行通电自检(Power - on Self Test,POST)以检测硬件是否有故障。完成 POST 后,BIOS 需要在硬盘、光驱或软驱等存储设备搜寻操作系统内核的位置以启动操作系统。15. 检查分区表是否正确,确定哪个分区为活动分区,并在程序结束时将该分区的启动程序(操作系统引导扇区)调入内存加以执行,这是( )的任务。
A. MBR
B. 引导程序
C. 操作系统
D. BIOS15.A
BIOS 将控制权交给排在首位的启动设备后,CPU 将该设备主引导扇区的内容[主引导记录(MBR)]加载到内存中,然后由 MBR 检查分区表,查找活动分区,并将该分区的引导扇区的内容[分区引导记录(PBR)]加载到内存加以执行。16. 下列关于虚拟机的说法中,正确的是( )。
I. 虚拟机可以用软件实现
II. 虚拟机可以用硬件实现
III. 多台虚拟机可同时运行在同一物理机器上,它实现了真正的并行
A. I 和 II
B. I 和 III
C. 仅 I
D. I、II 和 III16.A
软件能实现的功能也能由硬件实现,因为虚拟机软件能实现的功能也能由硬件实现,软件和硬件的分界面是系统结构设计者的任务,选项 I 和 II 正确。实现真正并行的是多核处理机,多台虚拟机同时运行在同一物理机器上,类似于多个程序运行在同一个系统中。17.下列关于 VMware Workstation 虚拟机的说法中,错误的是( )。
A. 真实硬件不会直接执行虚拟机中的敏感指令
B. 虚拟机中只能安装一种操作系统
C. 虚拟机是运行在计算机中的一个应用程序
D. 虚拟机文件封装在一个文件夹中,并存储在数据存储器中17.B
VMware Workstation 虚拟机属于第二类虚拟机管理程序,若真实硬件直接执行虚拟机中的敏感指令,则该指令非法时可能导致宿主操作系统崩溃,而这是不可能的,实际上是由第二类虚拟机管理程序模拟真实硬件环境。虚拟机看起来和真实物理计算机没什么两样,因此当然可以安装多个操作系统。VMware Workstation 就是一个安装在计算机上的程序,在创建虚拟机时,会为该虚拟机创建一组文件,这些虚拟机文件都存储在主机的磁盘上。18.虚拟机的实现离不开虚拟机管理程序(VMM),下列关于 VMM 的说法中正确的是( )。
I. 第一类 VMM 直接运行在硬件上,其效率通常高于第二类 VMM
II. VMM 的上层需要支持操作系统的运行、应用程序的运行,因此实现 VMM 的代码量通常大于实现一个完整操作系统的代码量
III. VMM 可将一台物理机器虚拟化为多台虚拟机器
IV. 为了支持客户操作系统的运行,第二类 VMM 需要完全运行在最高特权级
A. I、II 和 III
B. I 和 III
C. I、III 和 IV
D. I、II、III 和 IV18.B
第一类 VMM 直接运行在硬件上;第二类 VMM 运行在宿主操作系统上,不能直接和硬件打交道,因此第一类 VMM 的效率通常更高。VMM 的功能没有操作系统的功能复杂,其代码量少于一个完整的操作系统。选项 III 是基本概念。第一类 VMM 运行在最高特权级(内核态),而第二类 VMM 和普通应用程序的地位相同,通常运行在较低特权级(用户态)。19.【2013 统考真题】计算机开机后,操作系统最终被加载到( )。
A. BIOS
B. ROM
C. EPROM
D. RAM19.D
系统开机后,操作系统的程序会被动加载到内存中的系统区,这段区域是 RAM。部分未复习计组的读者对该内容可能不太熟悉,但熟悉了各类存储介质后,解答本题并不难。20.【2022 统考真题】下列选项中,需要在操作系统进行初始化过程中创建的是( )。
A. 中断向量表
B. 文件系统的根目录
C. 硬盘分区表
D. 文件系统的索引节点表20.A
在操作系统初始化的过程中需要创建中断向量表,以实现通电自检(POST),CPU 检测到中断信号后,根据中断号查询中断向量表,跳转到相应的中断处理程序,选项 A 正确。在硬盘逻辑格式化之前,需要先对硬盘进行分区,即创建硬盘分区表。分区完成后,对物理分区进行逻辑格式化(创建文件系统),为每个分区初始化一个特定的文件系统,并创建文件系统的根目录。若某个分区采用 UNIX 文件系统,则还要在该分区中建立文件系统的索引节点表。21.【2023 统考真题】与宏内核操作系统相比,下列特征中,微内核操作系统具有的是( )。
I. 较好的性能
II. 较高的可靠性
III. 较高的安全性
IV. 较强的可扩展性
A. 仅 II、IV
B. 仅 I、II、III
C. 仅 I、III、IV
D. 仅 II、III、IV21.D
微内核架构将内核中最基本的功能保留在内核,只有微内核运行在内核态,其余模块都运行在用户态,一个模块中的错误只会使这个模块崩溃,而不会使整个系统崩溃,因此具有较高的可靠性和安全性。微内核的非核心功能运行在用户空间,可通过插件或模块的方式进行扩展,无须改动内核代码,因此具有较强的可扩展性。微内核需要频繁地在用户态和内核态之间进行切换,操作系统的执行开销偏大,从而影响系统性能。1.7 本章疑难点
1. 并行性与并发性的区别和联系
并行性和并发性是既相似又有区别的两个概念。并行性是指两个或多个事件在同一时刻发生, 并发性是指两个或多个事件在同一时间间隔内发生。
在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序同时运行,但在单处理器系统中每个时刻却仅能有一道程序执行,因此微观上这些程序只能分时地交替执行。若在计算机系统中有多个处理器,则这些可以并发执行的程序便被分配到多个处理器上,实现并行执行,即利用每个处理器来处理一个可并发执行的程序。
2. 特权指令与非特权指令
特权指令是指有特殊权限的指令,由于这类指令的权限最大,使用不当将导致整个系统崩溃,如清内存、置时钟、分配系统资源、修改虚存的段表或页表、修改用户的访问权限等。若所有程序都能使用这些指令,则系统一天死机 n 次就不足为奇。为保证系统安全,这类指令不能直接提供给用户使用,因此特权指令必须在内核态执行。实际上,CPU 在内核态下可以执行指令系统的全集。形象地说,特权指令是那些儿童不宜的东西,而非特权指令是老少皆宜的东西。
为了防止用户程序中使用特权指令,用户态下只能使用非特权指令,内核态下可以使用全部指令。在用户态下使用特权指令时,将产生中断以阻止用户使用特权指令。所以将用户程序放在用户态下运行,而操作系统中必须使用特权指令的那部分程序在内核态下运行,从而保证了系统的安全性和可靠性。从用户态转换为内核态的唯一途径是中断或异常。
3. 访管指令与访管中断
访管指令(trap 指令)是一条在用户态下执行的指令。在用户程序中,因要求操作系统提供服务而有意识地使用访管指令,从而产生一个中断事件(自愿中断),将操作系统转换为内核态,称为访管中断。访管中断由访管指令产生,程序员使用访管指令向操作系统请求服务。
为什么要在程序中引入访管指令呢?这是因为用户程序只能在用户态下运行。若用户程序想要完成在用户态下无法完成的工作,该怎么办?解决这个问题要靠访管指令。访管指令本身不是特权指令,其基本功能是让程序拥有 “自愿进管” 的手段,从而引起访管中断。
4. 定义微内核结构 OS 的四个方面
1)足够小的内核。
2)基于客户 / 服务器模式。
3)应用 “机制与策略分离” 原理。机制是指实现某一功能的具体执行机构。策略则是在机制的基础上借助于某些参数和算法来实现该功能的优化,或达到不同的功能目标。在传统的 OS 中,将机制放在 OS 内核的较低层中,将策略放在内核的较高层中。而在微内核 OS 中,通常将机制放在 OS 的微内核中。正因如此,才可以将内核做得很小。
4)采用面向对象技术。基于面向对象技术中的 “抽象” 和 “隐蔽” 原则能控制系统的复杂性,进一步利用 “对象”“封装” 和 “继承” 等概念还能确保操作系统的正确性、可靠性、易扩展性等。正因如此,面向对象技术被广泛应用于现代操作系统的设计之中。
操作系统学习笔记 第1章(王道)
于 2025-04-24 00:03:35 首次发布