期中复习题答案分开.docx
《期中复习题答案分开.docx》由会员分享,可在线阅读,更多相关《期中复习题答案分开.docx(14页珍藏版)》请在冰豆网上搜索。
期中复习题答案分开
操作系统期中复习试题
一、单项选择题:
(每题1分,共25分)
1. 操作系统是对进行管理的软件
A、软件B、硬件C、计算机资源D、应用程序
2. 操作系统采用多道程序设计技术提高CPU和外部设备的_____。
A、利用率B、可靠性C、稳定性D、兼容性
3. 如果分时操作系统的时间片一定,那么则响应时间越长
A、用户数越少B、用户数越多C、内存越少D、内存越多
4. 分配到必要的资源并获得处理机时的进程状态是。
A、就绪状态B、执行状态C、阻塞状态D、撤销状态
5. 下面算法不是进程调度算法。
A、LRUB、FCFSC、SJFD、高优先权算法
6. 是一种只能进行P操作和V操作的特殊变量
A、调度B、进程C、同步D、信号量
7. 采用资源剥夺法可解除死锁,还可以采用_____方法解除死锁
A、执行并行操作B、撤销进程
C、拒绝分配新资源D、修改信号量
8. 资源的有序分配算法在解决死锁问题中是用于。
A、预防死锁B、避免死锁
C、检测死锁D、解除死锁
9. 任何两个并发进程之间。
A、一定相互独立B、一定存在交往
C、可能存在交往D、都有共享变量
10. 用户程序通过系统调用creat来创建一新文件时,在执行creat()的过程中,用户进程运行在下。
A、系统态B、用户态
C、系统态或用户态D、目态
11. 设有两个进程共享3个同类资源,为使系统不会死锁,每个进程最多可以申请____资源
A、0个B、1个C、2个D、3个
12.下面对临界区的论述中,正确的论述是____。
A.临界区是指进程中用于实现进程互斥的那段代码。
B.临界区是指进程中用于实现进程同步的那段代码。
C.临界区是指进程中用于实现共享资源的那段代码。
D.临界区是指进程中访问临界资源的那段代码。
二.填空题(每格1分,共16分)
1.进程在执行过程中有3种基本状态,它们是
(1)态、
(2)态和(3)态。
2.系统中一个进程由(4)、(5)和(6)三部分组成。
3.在一个单CPU系统中,若有5个用户进程,则处于就绪状态的用户进程最多有(7)个,最少有(8)个。
4.在分时和批处理系统结合的操作系统中引入“前台”和“后台”作业的概念,其目的是(9),(10)。
5.分时系统的主要特征为(11)、(12)、(13)和(14)。
6.对待死锁,一般应考虑死锁的预防、避免、检测和解除四个方面。
典型的银行家算法是属于(15),破坏环路等待条件是属于(16)。
7.作业被系统接纳后到运行完毕,一般还需要经历(17)、(18)和(19)三个阶段。
8.如果系统中有N个进程,处于运行状态的进程最多几个(20),最少几个(21);就绪进程最多几个(22)最少几个(23);阻塞进程最多几个(24),最少几个(25)?
三.判断题(每小题1分,共10分)
1. 进程存在的唯一标志是它是否处于运行状态.()
2. 只要破坏产生死锁的四个必要条件中的其中一个就可以预防死锁的发生()
3.若系统产生了不安全状态,则一定产生了死锁。
()
四.简答题:
(9分)
1. 进程与程序的关系和区别是什么?
2. 什么是死锁?
产生死锁的原因是什么?
3.写出进程的三种基本状态以及各状态的特点,并画出进程状态转换图。
五.综合题(40分).
1、信号量和pv操作
①写出P、V操作的定义。
②有三个进程PA、PB和PC合作解决文件打印问题:
PA将文件记录从磁盘读入主存的缓冲区1,每执行一次读一个记录;PB将缓冲区1的内容复制到缓冲区2,每执行一次复制一个记录;PC将缓冲区2的内容打印出来,每执行一次打印一个记录。
缓冲区的大小等于一个记录大小。
请用P、V操作来保证文件的正确打印。
2、处理机管理
设有一组作业,它们的到达时间和所需CPU时间如下所示。
作业号
到达时间
所需CPU时间
开始时间
完成时间
周转时间
带权周转时间
调度顺序
1
9:
00
70分钟
2
9:
40
30分钟
3
9:
50
10分钟
4
10:
10
5分钟
分别采用先来先服务和短作业优先作业调度算法。
按要求填写表格的空白处,并计算平均周转时间以及平均带权周转时间各是什么?
某系统有三个作业:
作业号
到达时间
所需CPU时间
开始时间
完成时间
周转时间
带权周转时间
调度顺序
1
8.8
1.5
2
9.0
0.4
3
9.5
1.0
系统确定在它们全部到达后,开始采用响应比高者优先调度算法。
试问对它们的调度顺序是什么?
各自的周转时间是多少?
3、银行家算法
在银行家算法中,若出现下述资源分配情况:
ProcessAllocationNeedAvailable
Po003200121622
P110001750
P213542356
P303320652
P400140656
试问:
(1)该状态是否安全?
(2)若进程P2提出请求Request(1,2,3,2)后,系统能否将资源分配给它?
参考答案
一、单项选择题:
1.C2.A3.B4.B5.A
6.D7.B8.A9.C10.A
11.B12.D
二.填空题
1.运行2.就绪3.阻塞4.程序5.数据集合
6.进程控制块(PCB)7.48.09.改善系统功能10.提高处理能力
11.多路性12.交互性13.独立性14.及时性15.避免
16.预防17.后备18.运行19.完成20.1,
21.022.N-123.024.N25.0
三.判断题
1.X2.√3.X
四.简答题
1. 进程与程序的关系和区别是什么?
答:
进程和程序是既有联系又有区别的两个概念:
(1)程序是指令的集合,静态概念;进程是程序在处理机上的一次执行过程,动态概念;。
(2)程序是长期存在的,进程有生命周期,有创建、活动、消亡。
(3)程序仅是指令的有序集合;而进程则由程序、数据和进程控制块组成。
(4)进程与程序之间不是一一对应的,即同一程序同时运行于若干不同的数据集合上,它将属于若干个不同的进程;而一个进程可以执行多个程序。
2.什么是死锁?
产生死锁的原因是什么?
答:
死锁是指多个进程因竞争资源而造成的一种僵局,若无外力作用,进程将无法向前推进。
产生死锁的原因有以下两点:
(1)系统资源不足;
(2)进程推进顺序不当。
五.综合题
1、信号量和pv操作
解:
(1)P、V操作是两条原语,定义如下:
P操作:
P操作记为P(S),其中S为一信号量,它执行时主要完成下述动作:
S=S-1
若S>=0,则进程继续运行。
若S<0,则该进程被阻塞,并将它插入该信号量的等待队列中。
V操作:
V操作记为V(S),其中S为一信号量,它执行时主要完成下述动作:
S=S+1
若S>0,则进程继续运行。
若S<=0,则从信号量的等待队列中移出队首进程。
使其变为就绪状态。
(2)描述如下:
Varempty1,empty2,full1,full2:
semaphore:
=1,1,0,0;
begin
parbegin
process1:
begin
repeat
从磁盘读一个记录;
P(empty1);
将记录存入缓冲区1;
V(full1);
untilfalse;
end
process2:
begin
repeat
P(full1);
从缓冲区1取出纪录;
V(empty1);
P(empty2);
将记录存入缓冲区2;
V(full2);
untilfalse;
end
process3:
begin
repeat
P(full2);
从缓冲区2取出纪录;
V(empty2);
打印记录;
untilfalse;
end
parend
2、处理机管理
解:
(1)采用先来先服务作业调度算法时的实施过程如下。
作业号
到达时间
所需CPU时间
开始时间
完成时间
周转时间
1
9:
00
70分钟
9:
00
10:
10
70分钟
2
9:
40
30分钟
10:
10
10:
40
60分钟
3
9:
50
10分钟
10:
40
10:
50
60分钟
4
10:
10
5分钟
10:
50
10:
55
45分钟
这时,作业的调度顺序是1→2→3→4。
其平均周转时间为:
(70+60+60+45)/4=58.75
(2)采用短作业优先作业调度算法时的实施过程如下。
作业号
到达时间
所需CPU时间
开始时间
完成时间
周转时间
1
9:
00
70分钟
9:
00
10:
10
70分钟
4
10:
10
5分钟
10:
10
10:
15
5分钟
3
9:
50
10分钟
10:
15
10:
25
35分钟
2
9:
40
30分钟
10:
25
10:
55
75分钟
这时,作业的调度顺序是1→4→3→2。
其平均周转时间为:
(70+5+35+75)/4=46.25
某系统有三个作业:
解:
三个作业是在9.5时全部到达的。
这时它们各自的响应比如下:
作业1的响应比=(9.5–8.8)/1.5=0.46
作业2的响应比=(9.5–9.0)/0.4=1.25
作业3的响应比=(9.5–9.5)/1.0=0
因此,最先应该调度作业2运行,因为它的响应比最高。
它运行了0.4后完成,这时的时间是9.9。
再计算作业1和3此时的响应比:
作业1的响应比=(9.9–8.8)/1.5=0.73
作业3的响应比=(9.9–9.5)/1.0=0.40
因此,第二个应该调度作业1运行,因为它的响应比最高。
它运行了1.5后完成,这时的时间是11.4。
第三个调度的是作业3,它运行了1.0后完成,这时的时间是12.4。
整个实施过程如下。
作业号
到达时间
所需CPU时间
开始时间
完成时间
周转时间
2
9.0
0.4
9.5
9.9
0.9
1
8.8
1.5
9.9
11.4
2.6
3
9.5
1.0
11.4
12.4
2.9
作业的调度顺序是2→1→3。
各自的周转时间为:
作业1为0.9;作业2为2.6;作业3为2.9
3、银行家算法
(1)安全,顺序为
(2)不能,因为剩下可分配的资源(1622)小于P2申请的资源(1,2,3,2),所以没有足够的资源分配给P2,不能对他进行分配。
假定John和Peter两个人合住一套公寓,共同养了一条金鱼。
该金鱼每天进食一顿,两个人想把金鱼养活,一天只喂一次,也只能喂一次。
如果一天内两人都喂了鱼,鱼就胀死。
如果一天内两人都没有喂鱼,鱼就得饿死。
请用信号量解决此问题。
参考:
John()
{
wait(s);
if(nofeed)
feedfish;
signal(s);
}
Peter()
{
wait(s);
if(nofeed)
feedfish;
signal(s);
}
桌上有一空盘,允许存放一个水果。
爸爸可向盘中放苹果,或放橘子,儿子专门等着吃盘中的橘子,女儿专门等着吃盘中的苹果。
规定当盘空时一次只能放一个水果供取用,试实现爸爸、儿子和女儿三个并发进程的同步。
分析在本题中,爸爸、儿子、女儿共用一个盘子,盘中一次只能放一个水果。
当盘子为空时,爸爸可将一个水果放入果盘中。
若放入果盘中的是桔子,则允许儿子吃,女儿必须等待;若放入果盘中的是苹果,则允许女儿吃,儿子必须等待。
本题实际上是生产者-消费者问题的一种变形。
这里,生产者放入缓冲区的产品有两类,消费者也有两类,每类消费者只消费其中固定的一类产品。
信号量:
empty=1;orange=0;apple=0;
爸爸进程:
while
(1)
{
wait(empty);
放水果;
if(橘子)signal(orange);
if(苹果)signal(apple);
}
儿子进程:
while
(1)
{
wait(orange);
取橘子;
signal(empty);
}
女儿进程:
while
(1)
{
wait(apple);
取苹果;
signal(empty);
}
1、有一个阅览室,共有100个座位,读者进入时必须先在一张登记表上登记,该表为每一座位列一表目,包括座号和读者姓名等,读者离开时要消掉登记的信息,试问:
●为描述读者的动作,应编写几个程序,设置几个进程?
●试用wait、signal操作描述读者进程之间的同步关系。
例一:
有一个阅览室,读者进入时必须先在一张登记表上进行登记,该表为每一座位列一表目,包括座号和读者姓名,读者离开时,要删掉登记的信息,阅览室共有100个座位,试问:
(1)为描写读者动作,应编写几个程序,应设置几个进程?
进程与程序间关系如何?
(2)试问P、V操作写出这些进程间的同步算法。
解法1:
(1)因阅览室有100个座位可容纳100个读者同时阅读,基于这种并行性,因此可为每一个读者设立一个进程。
因为任何读者进出阅览室都做相同的工作(登记阅读和取消登记)。
所以对于100个读者进程可以共同对应一个程序。
此程序功能是入室时查表登记,入室阅读和离室时查表取消登记。
(2)设置信号量(S位)来表示空座位个数,处置为100,用来控制进入阅览室的读者进程个数不超过100。
设置信号量(S表)来表示被共享的登记表这一临界资源。
处置为1,用来防止两个以上读者进程同时查表。
每个进程和其他进程之间的同步关系如下:
解法2:
(1)将读者入室查表登记和离室查表取消登记各编一个程序,这样每个读者需设两个进程,分别执行入室和离室程序。
(2)原设信号量S为座位入室进程私有信号量,增设离室进程私有信号量S人---入室读者数,初值为0,这时进程间的同步关系如下: