操作系统第3章题.docx
- 文档编号:29307755
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:20
- 大小:36.45KB
操作系统第3章题.docx
《操作系统第3章题.docx》由会员分享,可在线阅读,更多相关《操作系统第3章题.docx(20页珍藏版)》请在冰豆网上搜索。
操作系统第3章题
1.在操作系统中,PV操作是一种不可实现的功能是()。
A.进程间同步B.进程间通信
C.进程间互斥D.进程间创建
2.进程控制块是()存在的标识。
A.程序B.作业C.进程D.线程
3.实际的操作系统要兼顾资源的利用率、安全性,为使系统不出现死锁,对于不同资源往往采用()分配策略。
A.动态B.静态C.预先D.不同的
4.如果系统处于安全状态则死锁()。
A.可能发生B.一定发生
C.一定不能发生D.不知道
1.进程主要分为系统进程和用户进程两种。
2.进程间的制约关系可分为和。
1.(6分)某餐厅可容纳200人,当餐厅中的人数不足200时,则餐厅外的人可直接进入,否则需在外等待。
如把就餐者看作一个进程,请用PV操作管理并发进程。
答:
设信号量SP表示餐厅尚可容纳的人数,初始值为200;就餐者进程的描述如下:
eater()
begin
L1:
来一名就餐者
P(SP)
就餐
V(SP)
GotoL1:
end
3.(7分)假设某系统有同类资源12个,有3进程p1、p2、p3,已知p1、p2、p3所需资源总数是8、6、9,它们申请资源的次序如表1所示。
系统采用银行家算法为它们分配资源。
请回答:
(1)哪次申请分配会使系统进入不安全状态?
说明理由。
(2)写出执行完序号为6的申请后,各进程的状态和各进程已占的资源数。
序号
进程
申请量
1
P1
4
2
P2
4
3
P3
2
4
P1
1
5
P2
2
6
P3
2
……
答:
(1)若序号4的申请被满足,会使系统进入不安全状态。
因为在序号1、2、3的申请被满足后,进程p1、p2、p3分别后得资源数为4、4、2,尚需资源数分别为:
4、2、7,系统上可使用的资源数为2。
若序号4的申请被满足,进程p1、p2、p3分别后得资源数为5、4、2,尚需资源数分别为:
3、2、7,系统尚可使用的资源数为1,在继续执行,三个进程所需资源都不能得到满足,使系统进入不安全状态。
(2)执行完序号为6的申请后,进程p1、p2、p3的状态分别为阻塞或执行、执行或完成、阻塞。
各进程已占的资源数4、6、2?
(把每个步骤看成很短一段时间,P2在第五步获得足够的资源,在第六步得到执行,可能完成,也可能没完,如果完成了则可能释放资源,P1等到资源得到执行;没完成则P1继续阻塞)。
因为进程p2在序号5的申请被满足时,已得到全部资源它能运行结束且归还资源,那么执行完序号为6的申请后,进程p2的状态可以是执行或完成,这样p1的状态为阻塞或执行。
1.执行状态的进程在()条件下转到就绪状态。
A.内存不够用B.需要输入C.需要输出D.时间片到
2.可作为共享资源使用的资源是()。
A.只读文件B.打印机C.磁带机D.扫描仪
3.进程从执行态到阻塞态可能是由于()。
A.进程调度的程序进行调度B.现运行的进程执行了V操作
C.现运行的进程执行了P操作D.现运行的进程的时间片用完
1.进程的状态有就绪、执行和阻塞。
1.解释进程概念。
(3分)说明为何引入进程。
(3分)
答:
一个进程是一个程序在某个数据集上的执行过程,是分配资源的基本单位。
进程概念的引入很好地刻画了程序执行的动态过程和并发行为。
4.何谓并发和并行?
两者有何区别?
(8分)
答:
并发是指两个或多个事件在同一时间间隔内发生。
并行是指两个或多个事件在同一时刻同时发生。
在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序在同时运行;对于单处理器系统而言每一时刻只能有一道程序在运行,微观上多道程序只能分时地交替执行几串行执行;对于多处理器系统而言每一时刻可以有多道程序同时在不同的处理器上运行。
并发通常是指在同一个环境中发生的行为;并行即可以指在同一个环境中发生的行为,也可以指在不同环境中发生的行为。
5.简述解决死锁的主要方法。
(6分)
答:
死锁的解决方法一般分为死锁的预防、死锁的避免、死锁的检测与恢复等三种。
死锁的预防一般是从破坏导致死锁发生的必要条件着手,采用某种策略,限制并发进程对资源的请求,使得死锁的必要条件在系统运行期间得不到满足,从而避免死锁现象的发生。
死锁的避免是指系统在为进程动态分配资源时,根据系统资源的使用情况,通过一定的算法提前对系统状态做出预测,从而避免死锁的发生,即在资源的动态分配过程中预测出死锁发生的可能性并加以避免。
死锁的检测与恢复是死锁发生后的事后处理技术。
它是指系统设有专门的机构,当死锁发生时该机构能够检测到死锁发生的位置和原因,并能通过外力破坏死锁发生的必要条件,使得并发进程从死锁状态中恢复出来。
3.(7分)假设某系统有同类资源10个,进程p、q、r所需资源总数是8、4、9,它们申请资源的次序如表1所示。
系统采用银行家算法为它们分配资源。
请回答:
(1)写出执行完序号为6的申请后,各进程的状态和各进程已占的资源数。
(2)在以后的各次申请中,哪次申请要求可先得到满足?
说明理由。
表1进程申请资源情况
序号
进程
申请量
1
r
2
2
p
4
3
q
2
4
p
2
5
r
1
6
q
2
7
r
3
8
p
2
9
r
3
……
答:
(1)执行完序号为6的申请后,进程p、q、r的状态分别为阻塞、就绪或执行、阻塞。
各进程已占的资源数4、4、2。
其中q进程已得到全部资源它能运行结束且归还资源。
(2)在以后的各次申请中,序号为8的申请要求可先得到满足。
因为若进程q已归还了所占资源,则系统目前有4各资源,可以满足进程p的尚需资源数,但不能满足进程r的尚需资源数。
4.(7分)进程PA用于向缓存区A存放数据,进程PB从缓存区A中取数据加工,加工后放入缓存区B中,进程PC把缓存区B中的数据取出输出,用P、V操作实现进程PA、PB、PC间的同步。
答:
设信号量Sab表示缓冲区A是否允许放数据,值为1时表示允许,初值为1;信号量Sba表示缓冲区S是否允许取数据,值为1时表示允许,初值为0;信号量Sbc表示缓冲区B是否允许放数据,值为1时表示允许,初值为1;信号量Scb表示缓冲区B是否允许取数据,值为1时表示允许,初值为0。
进程PA、PB、和PC描述如下:
PA()
begin
L1:
取存入缓冲区A的数据x
P(Sab)
把数据x存入缓冲区A中
V(Sba)
gotoL1
end
PB()
begin
L2:
P(Sba)
把缓冲区A的数据存入x中
V(Sab)
对x进行加工
P(Sbc)
把加工后的x存入缓冲区B中
V(Scb)
gotoL2
end
PC()
begin
L3:
P(Scb)
把缓冲区B的数据存入x中
V(Sbc)
打印数据x
gotoL3
end
在分时系统中由于时间片到让出CPU的进程将进入()队列。
A.等待B.就绪C.运行D.阻塞
在多进程的并发系统中,肯定不会因竞争( )而产生死锁。
A.CPU B.磁带机 C.打印机 D.磁盘
进程被创建后将进入()队列。
A.等待B.就绪C.运行D.阻塞
1.PV原语可实现进程间的______同步______、_____互斥___________和_____通信________三种操作。
2.进程是由____进程控制块__、__数据区___、___程序___和___工作区___四部分组成。
3.解释死锁这一概念并说明死锁产生的必要条件。
死锁:
一个进程集合中的进程处于永久阻塞状态,它们正在竞争有限的系统资源或正在进行相互通信。
集合中的所有进程都处于永远相互等待状态。
(每个条件各1分)
(1)互斥使用(资源独占):
进程对其申请的资源进行排他控制,其他申请资源的进程必须等待。
(2)非剥夺控制(不可强占):
占用资源的进程只能自己释放资源,不能被其他进程强迫释放,即使该进程处于阻塞状态,它所占有的资源也不能被其他进程使用,其他进程只能等待该资源的释放。
(3)零散请求:
进程可以按需要逐次申请资源,而不是集中性一次请求所有资源。
这样,进程在已经占有资源的情况下,又申请其他资源而得不到满足时,并不释放已占有的资源。
(4)循环等待:
等待资源的进程形成了一个封闭的链,链上的进程都在等待下一个进程占有的资源,造成了无止境的等待状态。
3、能从一种状态转变为二种状态的进程状态是()。
A、就绪状态B、阻塞状态C、完成状态D、执行状态
4、若P、V操作的信号量S初值为2,当前值为-1,则表示有()等待进程。
A、0个B、1个C、2个D、3个
2.(9分)假设系统中有5个进程P1、P2、P3、P4和P5,4种类型的资源R1、R2、R3和R4。
某时刻系统资源分配情况如下表所示。
已分配资源
尚需资源
剩余资源
R1
R2
R3
R4
R1
R2
R3
R4
R1
R2
R3
R4
P1
0
0
3
2
0
0
1
2
1
6
2
2
P2
1
0
0
0
1
7
5
0
P3
1
3
5
4
2
3
5
6
P4
0
3
3
2
0
6
5
2
P5
0
0
1
4
0
6
5
6
试回答下列问题:
(1)此时系统是否安全?
为什么?
(2)如安全,P2申请资源(1、2、2、2),系统能否分配给它?
为什么?
(1)此时系统剩余资源(1622),可以满足P1的要求,分配给P1所需资源,P1在有限时间内可以执行完,P1执行完释放所占资源,系统可用资源(1654);可以满足P4的要求,分配给P4所需资源,P4在有限时间内可以执行完,P4执行完释放所占资源,系统可用资源(1986);可以满足P2的要求,分配给P2所需资源,P2在有限时间内可以执行完,P2执行完释放所占资源,系统可用资源(2986);可以满足P3的要求,分配给P3所需资源,P3在有限时间内可以执行完,P3执行完释放所占资源,系统可用资源(3121310);可以满足P5的要求,分配给P5所需资源,P5在有限时间内可以执行完。
故系统是安全的。
(2)假设满足P2的请求,系统状态为:
已分配资源
尚需资源
剩余资源
R1
R2
R3
R4
R1
R2
R3
R4
R1
R2
R3
R4
P1
0
0
3
2
0
0
1
2
0
4
0
0
P2
2
2
2
2
0
5
3
0
P3
1
3
5
4
2
3
5
6
P4
0
3
3
2
0
6
5
2
P5
0
0
1
4
0
6
5
6
此时系统剩余资源(0400),任何一个进程的需求都不能满足,因此系统是不安全的。
不能满足P2的请求。
2、发生死锁的必要条件有4个,要预防死锁的发生,可以破坏这四个必要条件,但破坏()条件是不太实际的。
A、互斥B、请求和保持C、不剥夺D、环路等待
5、进程从执行态到阻塞状态可能是由于()。
A.请求某种资源B.现运行进程时间片用完
C.释放某种资源D.进程调度程序的调度
3、在引入线程的操作系统中,独立调度和分派的基本单位是线程,资源分配的基本单位是。
有m个进程共享同一临界资源,若使用信号量机制实现对临界资源的互斥访问,则信号量(初值为1)值的变化范围是1到1-m。
5.(9分)设有三个进程R、M、P,它们共享一个缓冲区。
R负责从输入设备读信息,每读一纪录后,把它存放在缓冲区;M负责对缓冲区中的纪录进行加工;P把加工后的纪录打印输出。
读入的纪录加工输出后,缓冲区中又可存放下一个纪录。
请用PV操作写出它们能正确执行的程序。
R()
Begin
L1:
得到一个数据X;
P(SR);
数据X放入缓冲区;
V(SM);
Gotol1;
End
M()
Begin
L2:
P(SM);
取缓冲区中数据进行加工;
把加工后的数据存入缓冲区
V(SP);
Gotol2;
End
M()
Begin
L3:
P(SP);
取缓冲区中数据存入Y中;
V(SR);
输出Y;
Gotol3;
End
5.(c)对资源的申请和分配不加限制,只要有剩余资源就可把资源分配给申请者。
A.死锁的预防B.死锁的避免C.死锁的检测D.死锁的解决
6.信号量S的初值定义为6,在S上调用了10次P操作和8次V操作后,S的值应为(d)。
A.2B.14C.7D.4
7.若系统中有一些资源类中的资源不止一个,则应根据(d)来考虑系统是否处于安全状态。
A.各类资源的剩余量B.各类资源的占有量
C.各类资源的尚需量D.以上所有
8.出现死锁时不一定出现的情况是(c)。
(4必要条件)
A.互斥使用资源B.占有并等待资源
C.申请不存在的资源D.循环等待资源
3.进程调度的方式有抢占式和非抢占式。
4.()系统处于不安全状态即发生了死锁。
5.()某进程的一个线程处于阻塞状态,则该进程必然处于阻塞状态。
4.(6分)假设有一个成品仓库,总共能存放n台成品,生产者进程生产产品放入仓库,消费者进程从仓库中取出成品。
为了防止积压,仓库满时停止生产。
由于仓库搬运设备只有一套,故成品的存放和取出只能分别进行,使用操作P、V来实现该方案。
答:
(2分)设信号量Sd表示搬运设备是否可用,值为1时表示可用,初值为1;信号量Sp表示仓库中允许放成品的数量,初始值为n;信号量Sv表示仓库中有成品的数量,初始值为0。
生产者进程producer和消费者customer进程描述如下:
(2分)producer
begin
l1:
生产出一台成品x
P(Sp)
P(Sd)
把成品x放入仓库
V(Sd)
V(Sv)
gotol1
end
(2分)customer
begin
l2:
P(Sv)
P(Sd)
把一成品从仓库中取出放入x中
V(Sd)
V(Sp)
消费成品x
gotol2
end
9.若调用V操作之前S<0,则表明(C)。
A.消息尚未产生且无等待的进程B.消息已存在且有等待的进程
C.消息尚未产生前有等待的进程D.消息已存在且无等待的进程
10.处于就绪状态的进程已获得的资源肯定不包括(D)。
A.磁盘空间B.输入机C.输入设备D.处理器
1.操作系统中的阻塞队列只设一个。
(错)
2.信号量表示进程等待资源的情况。
(错)
3.解决死锁的方法有死锁预防、死锁避免和死锁检测与恢复。
4.说明程序和进程的主要区别。
答:
进程和程序间的主要区别:
(1)程序是静态的概念;而进程是动态的概念。
(2)进程具有并发特征,而程序没有。
(3)程序是进程的一个组成部分。
(4)同一个程序可对应多个进程,但所操作的数据集不同。
1.(6分)有三个进程P1,P2,P3并发执行,P1进程需要使用互斥资源S3和S1,P2进程需要使用互斥资源S1和S2,P3进程需要使用互斥资源S2和S3,请问:
若对资源分配不加限制,会发生什么情况?
为什么?
答:
如对资源分配不加限制,会发生死锁。
各进程占有并申请资源情况表示如图2所示。
从图2中可知出现循环等待,故可出现死锁。
(图中虚线表示申请资源,实现表示占有资源)
6.进程间的高级通信类型有、和组成。
(管道、共享存储器和消息传递)
7.若操作系统能保证所有的进程在有限的时间内得到所需的全部资源,则称系统处于(B)。
A.稳定状态B.安全状态C.同步状态D.互斥状态
11.死锁产生的根本原因(C)。
A.循环等待资源B.并发进程执行速度
C.竞争互斥资源D.共享内存
5.PV原语是实现互斥的唯一方法。
(错)
6.以下说法正确的是(D)。
A.系统是否处于安全状态与是否发生死锁无关
B.没有发生死锁说明系统处于安全状态
C.系统一旦进入不安全状态,即发生死锁
D.只要能保证系统处于安全状态就可以避免死锁的发生
25、设系统中有n个并发进程,共同竞争共享资源X,且每个进程都需要m个X类资源,为了保证系统不会发生死锁,资源X至少需要多少个?
答:
为了保证系统不会发生死锁,资源X至少需要(m-1)n+1个。
因为假设n个进程中的每一个进程都得到了m-1个X类资源,那么如果再有一个X类资源,则n个进程就有一个进程所需的全部资源得到了满足,可以执行结束,执行结束后就可释放它所占有的资源,其他进程就可以执行完。
26、一台计算机配有6台磁带机,它们由n个进程竞争使用,每个进程最多需要2台磁带机,请问n为多少时系统不会发生死锁,请解释原因。
答:
按上题可以得知当资源总数大于等于(各进程所需的资源数-1)进程数+1时不会发生死锁,即6>=(2-1)n+1时不会发生死锁,故n<=5时不会发生死锁。
27、一个系统中存在2个进程和3个同类资源X,每个进程最多需要2个X类资源,请判断是否会发生死锁?
请解释原因。
答:
由题25可知当资源总数大于等于(各进程所需的资源数-1)进程数+1时不会发生死锁。
本题中资源总数为3,进程数为2,各进程所需的资源数最多为2,由于3>=(2-1)2+1,故不会发生死锁。
12、在一个仅允许单向行驶的单排车道十字路口,只允许车辆从南向北和从西向东行驶,如图8.1所示;为了安全起见,每次仅允许一辆汽车通过十字路口;当有车辆通过路口时其它车辆必须等待,当无车辆在路口行驶时则一次仅允许一辆汽车通过。
请用P、V原语及信号量实现十字路口的交通控制系统,并描述具体的控制算法。
答:
设一信号量sem表示是否允许汽车通过,初值为1,表示允许汽车通过。
设入口检测进程procedurein,出口检测进程procedureout,它们的描述如下:
procedurein()
begin
L1:
检测到有一辆车要进入路口
P(sem)
允许进入路口
gotoL1
end
procedureout()
begin
L2:
检测到有一辆车驶出路口
V(sem)
gotoL2
end
14、烟—吸烟者问题。
考虑一个系统有三个吸烟者进程和一个代理进程。
每个吸烟者持续不停地卷烟和吸烟。
但是为了卷烟和吸烟,吸烟者必须同时拥有三种材料:
烟丝、卷烟纸和火柴;三个吸烟者分别拥有其中的一种。
代理可以提供足够的三种材料,但每次仅将两种不同的材料放在桌子上供吸烟者使用。
手中拥有一种材料的吸烟者要卷烟和吸烟时就向代理发信号,代理然后将所需要的两种材料放在桌子上;如此循环重复这个过程。
请写出代理和吸烟者间的同步算法。
答:
设信号量S[i](i=1,2,3)表示第i个吸烟者是否提出请求,其值为1时表示提出请求,初值为1;SP表示桌上是否可以放材料,其值为1时表示提出请求,初值为1;ST[i](i=1,2,3)表示是否放了第i个吸烟者所需的材料。
三个吸烟者进程smoker[i]和一个代理进程agent描述如下:
agent()
begin
L1:
P(S[i])//收到第i个人发出的请求
P(SP)//桌子可以放材料
ifi==1then放卷烟纸和火柴
elseifi==2then放烟丝和火柴
else放烟丝和卷烟纸
V(ST[i])//放了第i个人请求的东西
gotoL1
end
smoker[i]()
begin
L2:
P(ST[i])//第i个人取走自己的东西
取所需的材料
V(SP)//桌子又可以放东西
卷烟
吸烟
V(S[i])//抽完了又发出请求
gotoL2
end
桌子上有一个盘子,最多能容纳两个水果,每次允许放入或取出一个水果,爸爸放苹果,妈妈放橘子,两个儿子取橘子,两个女儿取苹果,写出每个人的代码。
Father():
Begin
L1:
P(empty)
P(mutex)
放苹果
V(apple)
V(mutex)
GotoL1
End
Mother():
Begin
L1:
P(empty)
P(mutex)
放橘子
V(orange)
V(mutex)
GotoL1
End
Son():
Begin
L1:
P(orange)
P(mutex)
拿橘子
V(empty)
V(mutex)
GotoL1
End
Daughter():
Begin
L1:
P(apple)
P(mutex)
拿苹果
V(empty)
V(mutex)
GotoL1
End
这也是一个生产者-消费者问题,信号量mutex用于互斥,初值为1,要注意和其他P操作的顺序不能颠倒,否则死锁;信号量empty表示盘子还能容纳水果的数量,初值为2;信号量apple和orange分别表示盘子里
P1、P2、P3互斥使用一个N单元的缓冲区,P1用produce()生成一个正整数,用put(x)把该数放入缓冲区某一空单元;P2用getodd()从缓冲区取出一个奇数,用countodd()统计奇数个数;P3用geteven()从缓冲区取出一个偶数,用counteven()统计偶数个数,写出P1、P2、P3。
P1、P2、P3显然和生产者-消费者问题类似,有一个生产者,两个消费者,消费产品的类型不同,因此生产时也要区分产品类型,并且这3个进程可以写成死循环。
定义信号量empty,表示空单元个数,初值为N;定义信号量odd表示放奇数单元的个数,初值为0;定义信号量even表示放偶数单元的个数,初值为0;定义信号量mutex,用于实现缓冲区互斥,初值为1。
P1():
Begin
L1:
x=produce()
p(empty)
p(mutex)
put()
v(mutex)
ifx%2=1thenv(odd)
elsev(even)
gotoL1
end
P2():
Begin
L2:
P(odd)
P(mutex)
Getodd()
v(mutex)
v(empty)
countodd()
gotoL2
end
P3():
Begin
L3:
P(even)
P(mutex)
Geteven()
v(mutex)
v(empty)
counteven()
gotoL3
end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 章题