操作系统习题参考答案(第二版).docx
- 文档编号:730577
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:26
- 大小:107.36KB
操作系统习题参考答案(第二版).docx
《操作系统习题参考答案(第二版).docx》由会员分享,可在线阅读,更多相关《操作系统习题参考答案(第二版).docx(26页珍藏版)》请在冰点文库上搜索。
第1章操作系统概述习题参考答案
1.选择题
(1)C
(2)C (3)C (4)B(5)C (6)B (7)C (8)B (9)A
2.填空题
(1)存储管理设备管理
(2)软硬件资源
(3)批处理操作系统分时操作系统实时操作系统
(4)20ms
3.问答题
(1)简述操作系统的概念
答:
操作系统是一组能控制和管理计算机系统的硬件和软件资源,合理地组织计算机工作流程并为用户使用计算机提供方便的程序和数据的集合。
(2)什么是批处理系统?
为什么要引入批处理系统?
答:
批处理系统指用户的作业成批的处理,作业建立、过渡、完成都自动由系统成批完成。
因为1958~1964年,晶体管时代,计算机速度、容量、外设品种和数量等方面和第一代计算机相比都有了很大发展,计算机速度有几十倍、上百倍的提高,故使手工操作的慢速度和计算机运算的高速度之间形成一对矛盾。
只有设法去掉人工干预,实现作业自动过渡,这样就出现了成批处理。
(3)什么叫多道程序?
试述多道程序涉及技术的基本思想及特征,为什么对作业进行多道批处理可以提高系统效率?
答:
多道程序设计技术是在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制下,相互穿插交替运行。
当某道程序因某种原因不能继续运行下去时,管理程序就将另一道程序投入运行,这样使几道程序在系统内并行工作,可使中央处理机及外设尽量处于忙碌状态,从而大大提高计算机使用效率。
在批处理系统中采用多道程序设计技术形成多道批处理系统,多个作业成批送入计算机,由作业调度程序自动选择作业运行,这样提高了系统效率。
(4)何为分时系统?
简述其特点。
答:
分时系统采用时间片轮转法,使一台计算机同时为多个终端服务。
特点:
多路性。
若干个终端连接到计算机上,系统按分时原则为每个用户服务。
宏观上多用户同时工作,共享系统资源。
微观上,每个用户作业轮流在CPU上运行。
独立性。
各用户独立地使用一台终端工作,彼此互不干扰。
用户感觉自己在独占使用计算机。
及时性。
用户的请求能在较短时间内得到响应。
分时系统的响应时间指用户发出终端命令到系统响应,做出应答所需要的时间。
此时间需要在用户能接受的范围之内,通常为2
至3秒。
交互性。
在分时系统中,用户能与计算机进行对话,以交互的方式进行工作。
用户可联机对文件进行编辑,对源程序进行编译、链接,对程序进行调试,运行程序等活动。
(5)分时系统和实时系统有何不同?
答:
分时系统控制的主动权在计算机,计算机按一定时间间隔,以固定时间片或不固定时间片去轮流完成多个提交的任务,只是在用户反应相对较慢时,不感到机器“走开”。
而
实时系统控制的主动权在用户,用户规定什么时间要计算机干什么,计算机不能“走开”。
分时系统通用性强,交互性强,及时响应性要求一般(通常数量级为秒);实时系统往
往是专用的,系统与应用很难分离,常常紧密结合在一起,实时系统并不强调资源利用率,而更关心及时响应性(通常数量级为毫秒或微秒)、可靠性等。
(6)实现多道程序解决哪些问题?
答:
首先包括分时使用硬件的硬件设计技术:
CPU和通道分时使用内存、只读存储器和数据通道等;通道与通道分时使用CPU、内存、通道的公用控制部分等;同一通道中的
I/O又分时使用内存、通道等。
其次包括共享硬件和软件资源的软件设计技术:
包括引入“进程”“线程”等技术。
第2章操作系统用户界面习题参考答案
1.选择题
(1) D
(2)A (3)A (4)B (5)A (6)D (7)D (8)B
2.填空题
(1)命令控制接口程序接口(系统调用)
(2)目(用户)管(核心)
(3)用户程序
(4)编程 bash
(5)drw-r--r--
3.问答题
(1)什么是核心态与用户态?
为什么需要区别出这两种状态?
系统是如何区分的?
核心态是计算机的特权态,当执行操作系统程序时,处理机处于核心态。
在核心态下
CPU可以执行所有的指令,包括一般用户程序中不能使用的特权指令,从而能对所有寄存器和内存进行访问、启动I/O操作等。
用户态是非特权态,用户程序是在用户态下执行,它的的权限最低,只能执行指令集中非特权指令。
设置这两种不同状态的目的是保护计算机资源的合理分配与使用,防止用户程序干扰操作系统执行,提高计算机的可靠性。
通常在PSW中有一个控制位控制这两种状态。
(2)什么是系统调用?
系统调用是通过什么指令实现的?
系统调用是操作系统提供给用户程序调用的一组“特殊”接口。
用户程序可以通过这组
“特殊”接口来获得操作系统内核提供的服务,是进入系统内核空间的一种方法。
在用户程序中通过执行一条访管指令使得系统进入核心态,调用相应的系统调用功能。
(3)①③④⑤
(4)系统调用与过程调用在功能及实现上有什么相同点和不同点?
答:
相同点:
两者都由程序代码构成,可直接用高级程序设计语言(如C,C++和Perl语言)来编制;使用方式相同——以函数调用的形式出现,调用时传送参数。
不同点:
①代码层次不同,过程调用不属于操作系统的一部分,而系统调用是操作系统的一部分。
②运行状态不同。
过程调用只能在用户态下运行,不能进入核心态,而系统调用是在核心态下运行的。
③进入方式不同。
过程调用在用户程序中调用,并直接在用户空间内执行;而系统调用可以在用户程序中调用,但是在用户程序中执行到系统调用时,会产生异常事件。
实现处理机状态从用户态到核心态的转变,从而进入操作系统核心空间去执行系统调用的代码。
(5)试说明特权指令和系统调用之间的区别与联系。
答:
特权指令是一类只能在核心态下执行的机器指令。
而系统调用不是机器指令,它往往以函数调用的形式出现,实现操作系统提供的子功能,它是操作系统与用户的编程接口。
在用户程序中可以使用系统调用来获得操作系统服务,在系统调用代码中可以使用特权指令
第3章进程与进程通信习题参考答案
1.选择题
(1)B
(2)D
(3)B
(4)D
(5)D
(6)A
(7)C
(8)D
(9)D
(10)D
(11)C
(12)D
(13)A
(14)B
(15)B
(16)C
(17)B
(18)C
(19)D
(20)A
(21)C
(22)D
(23)A
(24)B
(25)C
(26)A
(27)B
(28)A
(29)B
(30)C
2.填空题
(1)数据段 PCB
(2)并行 并发
(3)资源分配 调度
(4)阻塞
(5)共享存储
(6)运行时间短 等待时间长
(7)阻塞状态
(8)后备
(9)可剥夺 非剥夺
(10)1.5
3.问答题
(1)简述进程和程序之间的区别和联系。
答:
进程和程序是既有区别又有联系的两个概念。
1)进程是动态的,程序是静态的。
程序是一组有序的指令集合,是一个静态的概念;进程则是程序及其数据在计算机上的一次执行,是一个动态的集合。
离开了程序,进程就失去了存在的意义,但同一程序在计算机上的每次运行将构成不同的进程。
程序可看作是电影的胶片,进程可以看作电影院放电影的过程。
2)一个进程可以执行多个程序,如同一个电影院的一场电影可放映多部影片。
3)一个程序可被多个进程执行,如同多个影院同时利用一个电影的胶片放映同一部电影。
4)程序可以长期保存,进程只能存在于一段时间。
程序是永久存在的,而进程有从被创建到消亡的生命周期。
(2)为什么将进程划分成运行、就绪和阻塞三个基本状态?
答:
根据多道程序执行的特点,进程的运行是走走停停的。
因此进程的初级状态应该是执行和等待状态。
处于执行状态的进程占用处理机执行程序,处于等待状态的进程正在等待处理机或者等待其它某种事件的发生。
但是,当处理机空闲时,并不是所有处于等待状态的进程都能放到处理机上执行,有的进程即使分配给它处理机,它也不能执行,因为它的执行的条件没有得到满足。
因此,将等待状态的进程分成两部分,一部分是放在处理机上就能立即执行,这就是就绪的进程;另一部分是仍需等某种事件发生的进程,即使放在处理机上也不能执行的进程,这就是阻塞进程。
(3)PCB的作用是什么?
它主要包含哪些内容?
答:
操作系统管理的进程是多种多样的,要对这些进程实施有效的管理,必须对进程进
行抽象。
为了便于系统控制和描述进程的活动,在操作系统核心为进程定义了一个进程控制块PCB。
PCB用于描述进程的基本情况以及进程运行和变化的过程,它与进程一一对应。
当系统创建进程时,为进程分配一个PCB;在进程运行过程中,系统通过PCB对进程实施管理和控制;进程结束时,系统将收回PCB。
PCB中的内容主要包括调度信息和现场信息两大部分。
调度信息包括进程名、进程号、优先级、当前状态、资源信息、程序和数据的位置信息、隶属关系和各种队列指针信息等。
现场信息主要包括程序状态字、时钟寄存器和界限寄存器等描述进程运行情况的信息。
(4)简述创建进程的大致过程
解创建一个进程大体分以下几步:
1)申请一个空白的PCB和唯一的进程标识号pid
2)为新进程分配除CPU以外的资源,包括内存空间;
3)初始化PCB中的数据项,包括标志信息、状态信息、控制信息等;
4)将新进程的PCB插入系统的就绪队列。
(5)为何引入线程?
线程与进程的关系是什么?
答:
在操作系统中引入进程的目的,是为了使多个程序并发执行,以改善资源利用率及提高系统的吞吐量;那么,在操作系统中再引入线程则是为了减少程序并发执行时所付出的时空开销,使操作系统具有更好的并发性。
线程具有许多传统进程所具有的特征,故又称为轻型进程(Light-WeightProcess)或进程元;而把传统的进程称为重型进程(Heavy-WeightProcess),它相当于只有一个线程的任务。
在引入了线程的操作系统中,通常一个进程都有若干个线程,至少需要有一个线程。
(6)何谓进程通信?
试列举几种进程通信方式。
答:
进程之间的信息交换,就是进程通信。
进程同步与互斥,就实现了进程之间交换信息,但由于交换的信息量少,可以看作是低级通信。
并发执行的进程,有交换信息的各种需要,除同步与互斥外,还可采用其它的通信方式。
介绍几种常用的通信方式:
共享存储、消息传递、管道。
运行
2
3
1
就绪
阻塞
4
(7)进程的三个基本的转换如下图所示,图中1、2、3、4分别代表某种类型状态变迁,请分别回答:
1)什么事件引起各状态之间的变迁?
2)系统中常常由于某一进程的状态变迁引起另一进程也产生状态变迁,试判断变迁3
——1、2——1、3——2、4——1、3——4是否存在因果关系?
答:
1)引起各变迁的事件如下:
变迁1:
正在执行的进程从处理机上退下,导致进程调度程序从就绪状态的进程中选取一个进程。
变迁2:
正在执行的进程所分配的时间片用完,导致进程从处理机上退到就绪状态;或者在可抢占优先级的进程调度中,有更高有先级的进程进入就绪状态,导致正在执行的进程从执行状态退到就绪状态。
变迁3:
进程需要等待事件的发生;
变迁4:
进程所等待的某事件发生了(如I/O完成);
2)可能发生的因果变迁
3——1:
由于处于运行状态的进程转入阻塞状态,进程调度程序根据调度算法,又从就绪队列中选择一个进程投入运行;
2——1:
由于处于运行状态的进程时间片用完,重新转入就绪状态,从而使进程调度程序又从就绪队列中选择一个进程投入运行;
3——2:
此种变化不存在;
4——1:
4的发生与1的发生没有必然关系;
3——4:
3的发生和4的发生没有必然关系。
(8)设在内存中有三道程序A、B和C,并按A、B、C的优先次序运行,其在CPU上运行时间以及I/O时间分别为:
A:
计算30ms,I/O40ms,计算10msB:
计算30ms,I/O50ms,计算10msC:
计算20ms,I/O40ms,计算20ms
试画出按多道程序运行的时间关系图(调度程序的执行时间忽略不计),完成这三道程序共花多少时间?
比单道运行节省多少时间?
(假定运行环境为单CPU,每个程序所用的I/O设备相同,比如打印机)
A B C A 空闲 B 空闲 C
CPU
I/O
0102030405060708090100110120130140150160170180 t/ms
图1三道作业并发运行情况
答:
三道程序共花180ms,比单道(80+90+80)ms=250ms节省了70ms。
(9)下表给出了4个作业J1、J2、J3、J4的提交时间、运行时间,试分别采用FCFS、SJF和HRRF调度算法,求出在各种作业调度算法下作业的平均周转时间。
表14个作业的提交时间和运行时间表
作业名
提交时间
运行时间/h
J1
10:
00
2
J2
10:
18
1
J3
10:
48
0.5
J4
11:
00
0.8
解:
采用FCFS作业调度算法时,根据这4个作业提交作业的先后顺序依次运行,每个作
业的周转时间如表2所示。
表2FCFS调度算法性能表
作业名
提交时间
运行时间/h
开始时间
完成时间
周转时间/h
J1
10:
00
2
10:
00
12:
00
2
J2
10:
18
1
12:
00
13:
00
2.7
J3
10:
48
0.5
13:
00
13:
30
2.7
J4
11:
00
0.8
13:
30
14:
18
3.3
作业的平均周转时间=(2+2.7+2.7+3.3)h/4=2.675h采用SJF作业调度算法时,每个作业的周转时间如表3所示。
表3SJF调度算法性能表
作业名
提交时间
运行时间/h
开始时间
完成时间
周转时间/h
J1
10:
00
2
10:
00
12:
00
2
J2
10:
18
1
13:
18
14:
18
4
J3
10:
48
0.5
12:
00
12:
30
1.7
J4
11:
00
0.8
12:
30
13:
18
2.3
作业的平均周转时间=(2+4+1.7+2.3)h/4=2.5h
采用HRRF作业调度算法时,每个作业的周转时间如表4所示。
当时间为10:
00时,仅有作业J1,J1先运行。
当作业J1结束后,此时系统中存在3个作业,计算这3个作业J2、J3、J4的响应比,分别为2.7、3.4、2.25。
作业J3的响应比高,作业J3运行。
当作业J3结束后,系统中剩下2个作业,计算这2个作业J2、J4的响应比,分别为3.2、2.875。
作业J2的响应比高,运行作业J2。
作业J2运行结束后,运行作业J4。
表4HRRF调度算法性能表
作业名
提交时间
运行时间/h
开始时间
完成时间
周转时间/h
J1
10:
00
2
10:
00
12:
00
2
J2
10:
18
1
12:
30
13:
30
3.2
J3
10:
48
0.5
12:
00
12:
30
1.7
J4
11:
00
0.8
13:
30
14:
18
3.3
作业的平均周转时间=(2+3.2+1.7+3.3)h/4=2.55h
(10)引起进程调度的主要因素主要有哪些?
答:
1)一个进程运行完毕;
2)一个正在运行的进程被阻塞;
3)在抢占式调度中,一个高优先级的进程被创建;
4)在抢占式调度中,一个高优先级进程由阻塞被唤醒;
5)在轮转式调度中,正在运行的进程运行完一个时间片。
(11)【答案要点】
(1)由于采用了静态优先数,当就绪队列中总有优先数较小的进程时,优先数较大的进程一直没有机会运行,因而会出现饥饿现象。
(2)优先数priority的计算公式为:
priority=nice+k1*cpuTime-k2*waitTime,其中k1>0,k2>0,用来分别调整cpuTime和
waitTime在priority中所占的比例。
waitTime可使长时间等待的进程优先数减小,从而避免出现饥饿现象。
第4章进程互斥、同步与死锁思考与练习题参考答案
1.选择题
(1)D
(2)D
(3)C
(4)A
(5)B,A
(6)B,D
(7)A
(8)A
(9)B
(10)C
(11)D
(12)A
(13)D
(14)D
(15)A
(16)B
(17)C
(18)C
(19)B
(20)D
(21)D
(22)C
(23)D
(24)B
(25)B
(26)B
(27)B
(28)A
(29)B
(30)C
2.填空题
(1)环路等待条件。
(2)临界资源。
(3)P、V 等待
(4)可用资源数目 等待该资源的进程数。
(5)等待
(6)P V
(7)进程
(8)安全 不安全
3.问答题与同步题
(1)在多道程序系统中程序的执行失去了封闭性和再现性,因此多道程序的执行不需要这些特性,这种说法是否正确?
答:
这种说法不正确。
可以想象,如果一个程序在多道程序系统中,在相同的输入的情
况下,多次执行所得结果是不同的,有谁还敢使用这个程序?
因此,多道程序的执行也需要封闭性和再现性,只不过单道程序系统的封闭性和再现性是先天固有的,多道程序系统的程序执行要想获得封闭性和再现性,需通过程序员的精心设计才能得到。
所使用的方法就是同步和互斥的方法。
(2)多个进程对信号量S进行了5次P操作,2次V操作后,现在信号量的值是-3,与信号量S相关的处于阻塞状态的进程有几个?
信号量的初值是多少?
解:
因为S的当前值是-3,因此因为S处于阻塞状态的进程有3个;
因为每进行一次P(S)操作,S的值都减1,每执行1次V操作S的值加1,故信号量的初值为-3+5-2=0;
(3)解:
在这个问题中,司机与售票员间是并行操作的,司机和售票员各自的操作是顺
序进行的。
因此司机是一个进程,售票员是一个进程,它们之间是合作关系,即同步关系。
根据一般常识,司机和售票员在车上的操作规则如下:
l售票员操作的规则是只有司机停车后,售票员才能开门让乘客上下车;
l司机操作的规则是只有售票员关门后,司机才能启动开始行驶汽车。
根据同步规则以及操作流程确定信号量的个数是2个,S1和S2。
S1的含义是否关门,其初值为0,表示开门,其值若为1表示关门;
S2的含义是否停车,其初值为1,表示停车,其值若为0表示开车。
司机在的操作:
在开车前看是否关门?
若没关则等待,这是一个P(S1)操作;若门关,则开车。
到达一个站点,则停车,这是一个V(S2)操作;
售票员的操作:
看是否停车?
若没停则等待,这是一个P(S2)操作;若停则开门,这是一个V(S1)操作。
司机与售票员的协调操作描述如下:
intS1=0;intS2=1;main()
{
cobegin
driver();
busman();coend
}
driver()
{
while
(1)
{
P(S1);
启动车辆;正常行车;到站停车;V(S2);
}
}
busserver()
{
while
(1)
{
}
}
(4)解:
关车门;
V(S1);
售票;
P(S2);
开车门;上下乘客;
信号量S的初值为300;int S=300
main()
{
P1();
P2();
……Pn();
}P1()
{
}
……Pn()
{
}
P(S);
进入售票厅;购票;
退出售票厅;
V(S);
P(S);
进入售票厅;购票;
退出售票厅;
V(S);
(5)解:
该算法有错。
若A进程永不要求访问临界资源,则不会执行V(S1),意味着B进程的申请永远得不到操作临界资源的机会;同理,若B进程不要求访问临界资源,则不会执行V(S2),意味着
A进程下次也得不到操作临界资源的机会。
所以问题在于本应进行互斥控制而使用的却是同
CSA
V(S1)
P(S2)
P(S1)
CSB
V(S2)
A进程 B进程
图4-5第(5)题图
步控制。
实现改正如下:
设置信号mutex,初值为1;
P(muyex)
CSA
V(mutex)
P(mutex)
CSB
V(mutex)
A进程 B进程
第(5)题改正图
(6)解在本题中,应设置三个信号量S、So、Sa,信号量S表示盘子是否为空,其初值为1;信号量So表示盘中是否有桔子,其初值为0;信号量Sa表示盘中是否有苹果,其初值为0。
同步描述如下:
intS=1;intSa=0;intSo=0;main( )
{
cobegin
father();
son();daughter();
coend
}
father()
{
while
(1)
{
P(S);
将水果放入盘中;
if(放入的是桔子)V(So);elseV(Sa);
}
}
son( )
{
while
(1)
{
P(So);
从盘中取出桔子;
V(S);
吃桔子;
}
}
daughter()
{
while
(1)
{
P(Sa);
从盘中取出苹果;
V(S);
吃苹果;
}
}
(7)解
按序分配是适应于动态分配的一种分配方法。
为了避免产生死锁,系统将所有资源进行编号,并规定进程请求资源时,严格按照设备编号的大小,比如由小到大的顺序进程申请。
如果某进程第n号资源没有获得,则进程不能请求第j(j>n)号资源。
(系统也可以规定由大到小的请求次序。
)
因为按序分配可以破坏环路等待条件,因此可以防止死锁。
(8)解:
(1)从表1分析可知,可用资源数能满足进程P2,当P2运行结束后,释放它所占有的资源,使可用资源数目变为(6,2,3)。
此刻,可用资源可满足其他任一进程,若将可用资源分配给进程P1,P1结束后,可用资源数变为(7,2,3)。
再将可用资源分配给进程P3,
P3结束后,可用资源数变为(9,3,4)。
最后将可用资源分配给进程P4,P4结束后,可用资源数变为(9,3,6)。
因此,系统在T0时刻是安全的。
(2)由于P3请求资源数(1,0,1)小于可用资源数(1,1,2),因此现有资源能满足P3的要求。
系统先假定为P3分配资源,则可用资源数变为(0,1,1)。
修改相关数据,如表2所示。
表P3申请资源后的资源分配表
资源
进程
Max
Allocation
Need
Available
R1R2R3
R1R2R3
R1R2R3
R1R2R3
P1
3 2 2
1 0 0
2 2 2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 习题 参考答案 第二