第 1 章
一、填空
1.计算机由 硬件 系统和 软件 系统两个部分组成,它们构成了一个完整的计算机系
统。
2.按功能划分,软件可分为 系统 软件和 应用 软件两种。
3.操作系统是在 裸机 上加载的第一层软件,是对计算机硬件系统功能的 首次 扩充。
4.操作系统的基本功能是 处理机(包含作业) 管理、 存储 管理、 设备 管理和 文
件 管理。
5.在分时和批处理系统结合的操作系统中引入“前台”和“后台”作业的概念,其目
的是 改善系统功能,提高处理能力 。
6.分时系统的主要特征为 多路性 、 交互性 、 独立性 和 及时性 。
7.实时系统与分时以及批处理系统的主要区别是 高及时性 和 高可靠性 。
8.若一个操作系统具有很强的交互性,可同时供多个用户使用,则是 分时 操作系统。
9.如果一个操作系统在用户提交作业后,不提供交互能力,只追求计算机资源的利用
率、大吞吐量和作业流程的自动化,则属于 批处理 操作系统。
10.采用多道程序设计技术,能充分发挥 CPU 和 外部设备 并行工作的能力。
二、选择
1.操作系统是一种 B 。
A.通用软件
B.系统软件
C.应用软件
D.软件包
2.操作系统是对 C 进行管理的软件。
A 系统软件
C.计算机资源 D.应用程序
3.操作系统中采用多道程序设计技术,以提高 CPU 和外部设备的 A 。
B.系统硬件
A.利用率
B.可靠性
C.稳定性
D.兼容性
4.计算机系统中配置操作系统的目的是提高计算机的 B 和方便用户使用。
A.速度
B.利用率
C.灵活性
D.兼容性
5. C 操作系统允许多个用户在其终端上同时交互地使用计算机。
A.批处理
B.实时
C.分时
D.多道批处理
6.如果分时系统的时间片一定,那么 D ,响应时间越长。
A.用户数越少 B.内存越少
C.内存越多
D.用户数越多
三、问答
1.什么是“多道程序设计”技术?它对操作系统的形成起到什么作用?
答:所谓“多道程序设计”技术,即是通过软件的手段,允许在计算机内存中同时存放
几道相互独立的作业程序,让它们对系统中的资源进行“共享”和“竞争”,以使系统中的各
– 1 –
操作系统习题解答
种资源尽可能地满负荷工作,从而提高整个计算机系统的使用效率。基于这种考虑,计算机
科学家开始把 CPU、存储器、外部设备以及各种软件都视为计算机系统的“资源”,并逐步
设计出一种软件来管理这些资源,不仅使它们能够得到合理地使用,而且还要高效地使用。
具有这种功能的软件就是“操作系统”。所以,“多道程序设计”的出现,加快了操作系统的
诞生。
2.怎样理解“虚拟机”的概念?
答:拿操作系统来说,它是在裸机上加载的第一层软件,是对计算机硬件系统功能的首
次扩充。从用户的角度看,计算机配置了操作系统后,由于操作系统隐蔽了硬件的复杂细节,
用户会感到机器使用起来更方便、容易了。这样,通过操作系统的作用使展现在用户面前的
是一台功能经过扩展了的机器。这台“机器”不是硬件搭建成的,现实生活中并不存在具有
这种功能的真实机器,它只是用户的一种感觉而已。所以,就把这样的机器称为“虚拟机”。
3.对于分时系统,怎样理解“从宏观上看,多个用户同时工作,共享系统的资源;从
微观上看,各终端程序是轮流运行一个时间片”?
答:在分时系统中,系统把 CPU 时间划分成许多时间片,每个终端用户可以使用由一个
时间片规定的 CPU 时间,多个用户终端就轮流地使用 CPU。这样的效果是每个终端都开始
了自己的工作,得到了及时的响应。也就是说,“从宏观上看,多个用户同时工作,共享系统
的资源”。但实际上,CPU 在每一时刻只为一个终端服务,即“从微观上看,各终端程序是
轮流运行一个时间片”。
第 2 章
一、填空
1.进程在执行过程中有 3 种基本状态,它们是 运行 态、 就绪 态和 阻塞 态。
2.系统中一个进程由 程序 、 数据集合 和 进程控制块(PCB) 三部分组成。
3.在多道程序设计系统中,进程是一个 动 态概念,程序是一个 静 态概念。
4.在一个单 CPU 系统中,若有 5 个用户进程。假设当前系统为用户态,则处于就绪状
态的用户进程最多有 4 个,最少有 0 个。
注意,题目里给出的是假设当前系统为用户态,这表明现在有一个进程处于运行状态,
因此最多有 4 个进程处于就绪态。也可能除一个在运行外,其他 4 个都处于阻塞。这时,处
于就绪的进程一个也没有。
5.总的来说,进程调度有两种方式,即 不可剥夺 方式和 剥夺 方式。
6.进程调度程序具体负责 中央处理机(CPU)的分配。
7.为了使系统的各种资源得到均衡使用,进行作业调度时,应该注意 CPU 忙碌
作业和 I/O 忙碌 作业的搭配。
8.所谓系统调用,就是用户程序要调用 操作系统 提供的一些子功能。
– 2 –
操作系统习题解答
9.作业被系统接纳后到运行完毕,一般还需要经历 后备 、 运行 和 完成 三个
阶段。
10.假定一个系统中的所有作业同时到达,那么使作业平均周转时间为最小的作业调度
算法是 短作业优先 调度算法。
– 3 –
操作系统习题解答
二、选择
1.在进程管理中,当 C 时,进程从阻塞状态变为就绪状态。
A.进程被调度程序选中
C.等待的事件出现
B.进程等待某一事件发生
D.时间片到
2.在分时系统中,一个进程用完给它的时间片后,其状态变为 A 。
A.就绪
B.等待
C.运行
D.由用户设定
3.下面对进程的描述中,错误的是 D 。
A.进程是动态的概念
C.进程具有生命周期
4.操作系统通过 B 对进程进行管理。
B.进程的执行需要 CPU
D.进程是指令的集合
A.JCB
B.PCB
C.DCT
D.FCB
5.一个进程被唤醒,意味着该进程 D 。
A.重新占有 CPU
C.移至等待队列之首
6.由各作业 JCB 形成的队列称为 C 。
A.就绪作业队列
C.后备作业队列
B.优先级变为最大
D.变为就绪状态
B.阻塞作业队列
D.运行作业队列
7.既考虑作业等待时间,又考虑作业执行时间的作业调度算法是 A 。
A.响应比高者优先
C.优先级调度
B.短作业优先
D.先来先服务
8.作业调度程序从处于 D 状态的队列中选取适当的作业投入运行。
A.就绪
C.等待
9. A 是指从作业提交系统到作业完成的时间间隔。
B.提交
A.周转时间
C.等待时间
B.响应时间
D.运行时间
10.计算机系统在执行 C 时,会自动从目态变换到管态。
C.系统调用
B.V 操作
A.P 操作
D.后备
D.I/O 指令
三、问答
1.在多道程序设计系统中,如何理解“内存中的多个程序的执行过程交织在一起,大
家都在走走停停”这样一个现象?
答:在多道程序设计系统中,内存中存放多个程序,它们以交替的方式使用 CPU。因
此,从宏观上看,这些程序都开始了自己的工作。但由于 CPU 只有一个,在任何时刻 CPU
只能执行一个进程程序。所以这些进程程序的执行过程是交织在一起的。也就是说,从微
观上看,每一个进程一会儿在向前走,一会儿又停步不前,处于一种“走走停停”的状态
之中。
2.什么是“原语”、“特权指令”、“系统调用命令”和“访管指令”?它们之间有无一
定的联系?
– 4 –
操作系统习题解答
答:特权指令和访管指令都是 CPU 指令系统中的指令,只是前者是一些只能在管态下执
行的指令,后者是一条只能在目态下执行的指令。原语和系统调用命令都是操作系统中的
功能程序,只是前者执行时不能被其他程序所打断,后者没有这个要求。操作系统中有些
系统调用命令是以原语的形式出现的,例如创建进程就是一条原语式的系统调用命令。但
并不是所有系统调用命令都是原语。因为如果那样的话,整个系统的并发性就不可能得到
充分地发挥。
3.操作系统是如何处理源程序中出现的系统调用命令的?
答:编译程序总是把源程序中的系统调用命令改写成为一条访管指令和相应的参数。
这样在程序实际被执行时,就通过访管指令进入操作系统,达到调用操作系统功能子程序
的目的。
4.系统调用与一般的过程调用有什么区别?
答:系统调用是指在用户程序中调用操作系统提供的功能子程序;一般的过程调用是指
在一个程序中调用另一个程序。因此它们之间有如下三点区别。
(1)一般的过程调用,调用者与被调用者都运行在相同的 CPU 状态,即或都处于目态
(用户程序调用用户程序),或都处于管态(系统程序调用系统程序);但发生系统调用时,
发出调用命令的调用者运行在目态,而被调用的对象则运行在管态,即调用者与被调用者运
行在不同的 CPU 状态。
(2)一般的过程调用,是直接通过转移指令转向被调用的程序;但发生系统调用时,只
能通过访管指令提供的一个统一的入口,由目态进入管态,经分析后,才转向相应的操作系
统命令处理程序。
(3)一般的过程调用,在被调用者执行完后,就径直返回断点继续执行;但系统调用可
能会导致进程状态的变化,从而引起系统重新分配处理机。因此,系统调用处理结束后,不
一定是返回调用者断点处继续执行。
5.试述创建进程原语的主要功能。
答:创建进程原语的主要功能有以下三项。
(1)为新建进程申请一个 PCB。
(2)将创建者(即父进程)提供的新建进程的信息填入 PCB 中。
(3)将新建进程设置为就绪状态,并按照所采用的调度算法,把 PCB 排入就绪队列中。
6.处于阻塞状态的一个进程,它所等待的事件发生时,就把它的状态由阻塞改变为就
绪,让它到就绪队列里排队,为什么不直接将它投入运行呢?
答:只要是涉及管理,就应该有管理的规则,没有规则就不成方圆。如果处于阻塞状态
的一个进程,在它所等待的事件发生时就径直将它投入运行(也就是把 CPU 从当前运行进程
的手中抢夺过来),那么系统就无法控制对 CPU 这种资源的管理和使用,进而也就失去了设
置操作系统的作用。所以,阻塞状态的进程在它所等待的事件发生时,必须先进入就绪队列,
然后再去考虑它使用 CPU 的问题。
7.作业调度与进程调度有什么区别?
答:作业调度和进程调度(即 CPU 调度)都涉及到 CPU 的分配。但作业调度只是选择
参加 CPU 竞争的作业,它并不具体分配 CPU。而进程调度是在作业调度完成选择后的基础
上,把 CPU 真正分配给某一个具体的进程使用。
– 5 –
操作系统习题解答
8.系统中的各种进程队列都是由进程的 PCB 链接而成的。当一个进程的状态从阻塞变
为就绪状态时,它的 PCB 从哪个队列移到哪个队列?它所对应的程序也要跟着移来移去吗?
为什么?
答:当一个进程的状态从阻塞变为就绪时,它的 PCB 就从原先在的阻塞队列移到就
绪队列里。在把进程的 PCB 从这个队列移到另一个队列时,只是移动进程的 PCB,进程
所对应的程序是不动的。这是因为在进程的 PCB 里,总是记录有它的程序的断点信息。
知道了断点的信息,就能够知道程序当前应该从哪里开始往下执行了。这正是保护现场所
起的作用。
9.为什么说响应比高者优先作业调度算法是对先来先服务以及短作业优先这两种调度
算法的折中?
答: 先来先服务的作业调度算法,重点考虑的是作业在后备作业队列里的等待时间,
因此对短作业不利;短作业优先的作业调度算法,重点考虑的是作业所需的 CPU 时间(当然,
这个时间是用户自己估计的),因此对长作业不利。“响应比高者优先”作业调度算法,总是
在需要调度时,考虑作业已经等待的时间和所需运行时间之比,即:
该作业已等待时间 / 该作业所需 CPU 时间
不难看出,这个比值的分母是一个不变的量。随着时间的推移,一个作业的“已等待时
间”会不断发生变化,也就是分子在不断地变化。显然,短作业比较容易获得较高的响应比。
这是因为它的分母较小,只要稍加等待,整个比值就会很快上升。另一方面,长作业的分母
虽然很大,但随着它等待时间的增加,比值也会逐渐上升,从而获得较高的响应比。根据这
种分析,可见“响应比高者优先”的作业调度算法,既照顾到了短作业的利益,也照顾到了
长作业的利益,是对先来先服务以及短作业优先这两种调度算法的一种折中。
10.短作业优先调度算法总能得到最小的平均周转时间吗?为什么?
答:短作业优先调度算法只有在所有作业同时到达后备作业队列时,才能得到最小的平
均周转时间。如果各作业不是同时到达,这个结论是不成立的。可以用反例说明,例如,教
材上举有如下例子:考虑有 5 个作业 A 到 E,运行时间分别是 2、4、1、1、1;到达时间分
别是 0、0、3、3、3。按照短作业优先的原则,最初只有 A 和 B 可以参与选择,因为其他 3
个还没有到达。于是,运行顺序应该是 A、B、C、D、E。它们每个的周转时间分别是 2、6、
4、5、6,平均周转时间是 4.6。但如果按照顺序 B、C、D、E、A 来调度,它们每一个的周
转时间成为 9、4、2、3、4,平均周转时间是 4.4。结果比短作业优先调度算法好。之所以会
这样,就是因为这 5 个作业并没有同时到达。
四、计算
1.有三个作业:
作
业
到达时间
所需 CPU 时间
1
2
3
0.0
0.4
1.0
8
4
1
– 6 –
操作系统习题解答
分别采用先来先服务和短作业优先作业调度算法。试问它们的平均周转时间各是什么?你是
否还可以给出一种更好的调度算法,使其平均周转时间优于这两种调度算法?
解:(1)采用先来先服务作业调度算法时的实施过程如下。
作
业
到达时间
所需 CPU 时间
开始时间
完成时间
周转时间
1
2
3
0.0
0.4
1.0
8
4
1
0.0
8.0
12.0
8.0
12.0
13.0
8.0
11.6
12.0
这时,作业的调度顺序是 1→2→3。其平均周转时间为:
(8 + 11.6 + 12)/ 3 = 10.53
(2)采用短作业优先作业调度算法时的实施过程如下。
作
业
到达时间
所需 CPU 时间
开始时间
完成时间
周转时间
1
3
2
0.0
1.0
0.4
8
1
4
0.0
8.0
9.0
8.0
9.0
13.0
8.0
8.0
12.6
这里要注意,在作业 1 运行完毕进行作业调度时,作业 2 和 3 都已经到达。由于是实行短作
业优先作业调度算法,因此先调度作业 3 运行,最后调度作业 2 运行。所以,这时的作业调
度顺序是 1→3→2。其平均周转时间为:
(8 + 8 + 12.6)/ 3 = 9.53
(3)还可以有更好的作业调度算法,使其平均周转时间优于这两种调度算法。例如,如
果知道在作业 1 后面会来两个短作业,那么作业 1 到达后,先不投入运行。而是等所有作业
到齐后,再按照短作业优先作业调度算法进行调度,具体实施过程如下。
作
业
到达时间
所需 CPU 时间
开始时间
完成时间
周转时间
3
2
1
1.0
0.4
0.0
1
4
8
1.0
2.0
6.0
2.0
6.0
14.0
1.0
5.6
14.0
这时的作业调度顺序是 3→2→1。其平均周转时间为:
(1 + 5.6 + 14)/ 3 = 6.87
2.设有一组作业,它们的到达时间和所需 CPU 时间如下所示。
– 7 –
操作系统习题解答
作业号
到达时间
所需 CPU 时间
1
2
3
4
9:00
9:40
9:50
10:10
70 分钟
30 分钟
10 分钟
5 分钟
分别采用先来先服务和短作业优先作业调度算法。试问它们的调度顺序、作业周转时间以及
平均周转时间各是什么?
解:(1)采用先来先服务作业调度算法时的实施过程如下。
作业号
到达时间
所需 CPU 时间
开始时间
完成时间
周转时间
1
2
3
4
9:00
9:40
9:50
10:10
70 分钟
30 分钟
10 分钟
5 分钟
9:00
10:10
10:40
10:50
10:10
10:40
10:50
10:55
70 分钟
60 分钟
60 分钟
45 分钟
这时,作业的调度顺序是 1→2→3→4。其平均周转时间为:
(70 + 60 + 60 + 45)/ 4 = 58.75
(2)采用短作业优先作业调度算法时的实施过程如下。
作业号
到达时间
所需 CPU 时间
开始时间
完成时间
周转时间
1
4
3
2
9:00
10:10
9:50
9:40
70 分钟
5 分钟
10 分钟
30 分钟
9:00
10:10
10:15
10:25
10:10
10:15
10:25
10:55
70 分钟
5 分钟
35 分钟
75 分钟
这时,作业的调度顺序是 1→4→3→2。其平均周转时间为:
(70 + 5 + 35 + 75)/ 4 = 46.25
3.某系统有三个作业:
作业号
到达时间
所需 CPU 时间
1
2
8.8
9.0
1.5
0.4
– 8 –