第2章 进程管理.docx
- 文档编号:22780659
- 上传时间:2023-04-27
- 格式:DOCX
- 页数:19
- 大小:53.88KB
第2章 进程管理.docx
《第2章 进程管理.docx》由会员分享,可在线阅读,更多相关《第2章 进程管理.docx(19页珍藏版)》请在冰豆网上搜索。
第2章进程管理
第2章进程管理解答
一、单项选择题
[解答]
1.d。
.
2.c。
进程的实体由PCB、程序与数据3部分组成。
3.b。
4.b。
允许3个进程同时进入互斥段的互斥信号量初值设为3。
5.d。
并发进程之间可能存在同步与互斥关系,也可能不存在任何关系。
6.a。
7.c。
由于互斥信号量的初值是1,则极端情况是一个进程访问临界资源而其余N-1个进程处于等待状态,即信号量的值为-(N-1)
8.d。
当资源总数为4,并发进程为2,每个进程的最大需求是3时,可能够出现每个进程都占用2个资源而又申请第3个资源的死锁状态。
9.a。
先来先服务、响应比高者优先和均衡调度算法都属于作业调度算法。
10.b。
进程从执行态变成就绪态通常有两种情况:
(1)分时操作系统下时间片到;
(2)剥夺式进程调度方式下有更高优先级的进程进入就绪状态。
11.b。
12.c。
13.d。
如果存在就绪进程且处理机空闲时,进程调度程序就必然选中一个就绪进程使之投入运行;所以d错误。
14.d。
a~c概念都不完全。
15.d。
a~c都会引进操作系统选择新进程运行,仅d不会。
16.a17.a18。
d19。
d20。
b21。
a22。
d23。
d24。
a
25.b26.c27。
b28。
d29。
c30。
B
二、填空题[解答]
1.线性表链接表(或队列)2.删除剥夺
3.因为PCB是进程存在的唯一标志,故填PCB4.资源竞、进程推进顺序不当
5.非剥夺条件逐次请求条件环路条件6.就绪运行
7.进程中访问临界资源的那段程序代码
8.当出现死琐的极端情况时,处于等待的进程数为n,故填n
9.可用资源的数目,因请求该资源而被阻塞的进程数目
10.剥夺式调度总是将优先级高的进程(不包括等待队列上的进程)投入运行,故填
“剥夺式”11.PV
12.当信号量知小于零时,其绝对值为被阻塞的进程个数,故填4
13.互斥、同步、条件变量14.—2~215.临界区(或互斥段)16.程序数据PCB.
17.银行家算法18.同步19.运行态进程调度20.创建消亡
21.资源分配独立运行调度22.临界区P操作V操作
23.引起进程调度的原因进程调度算法的选择就绪队列的组织.
三、问答题
1.试比较进程和程序的区别。
[解答]进程和程序的区别如下:
(1)程序是指令的有序集合,是一个静态的概念,其本身没有任何运行的含义,进程是程序在处理机上的一次执行过程,是一个动态的概念。
(2)程序作为软件资料可长期保存,而进程则是有生命期的,因创建而产生、因调度而执行、因得不到资源而暂停、因撤消而消亡。
(3)程序是记录在介质上指令的有序集合,而进程则由程序、数据和进程控制块3部分
组成。
(4)进程与程序之间无一一对应关系。
不同的进程可以包含同一个程序,同一个程序在执行中也可以产生多个进程。
(5)进程是一个独立运行的单位,也是系统进行资源分配和调度的独立单位,而程序无此概念。
2.进程和线程的主要区别是什么?
[解答]进程和线程的主要区别如下:
(1)线程是进程的一个组成部分。
一个进程可以有多个线程,而且至少有一个可执行线程。
(2)进程是资源分配的基本单位,它拥有自己的地址空间和各种资料。
线程是处理机调度的基本单位,它只能和其他线程共享进程的资源,而本身并不具有任何资源。
(3)进程的多个线程都在进程的地址空间内活动。
这样,在以线程为单位进行独立机调度和切换时,由于不发生资源变化特别是地址空间的变化,因此切换时间较短。
而以进程为单位进行处理机调度和切换时,由于涉及到资源转移及现场保护等问题,将导致切换时间变长和资源利用率降低。
(4)线程和进程一样,都有自己的状态和相应的同步机制。
但是,由于线程没有自己单独的程序数据空间,因而不能像进程的程序和数据那样交换到外存去。
(5)进程的调度和控制大多由操作系统的内核完成,而线程的控制既可以由操作系统的内核完成,也可以由用户控制完成。
3.进程之间存在哪几种相互制约的关系?
各是什么原因引起的?
下列活动分别属于哪种制约关系?
(1)若干同学去图书借书;
(2)两队举行篮球比赛;
(3)流水线生产的各道工序;
(4)商品生产和社会消费;
[解答]进程之间的制约关系分为直接制约(即同步)和间接制约关系(即互斥)。
同步是因合作进程之间协调彼此的工作而控制自己的执行速度,即因相互合作、相互等待而产生的制约关系;而互斥是进程之间竞争临界资源而禁止两个以上的进程同时进入临界区所发生的制约关系。
(1)属于互斥关系,因为一本书只能借给一个同学。
(2)属于互斥关系,篮球只有一个,两队都要争夺。
(3)属于同步关系,各道工序的开始都依赖前一道工序的完成。
(4)属于同步关系,商品没有生产出来则消费无法进行,商品没有消费完则无须再生产。
4进程基本状态变迁如图3-8所示。
问:
(1)在什么情况下将发生下述状态的因果变迁?
a.21b.32c.41d..31
(2)在什么情况下,下述状态变迁不会立即引起其他变迁?
a.1b.2c.3d.4
123
4
图3-8进程基本状态变迁图
[解答]
(1)各种状态因果变迁发生的情况如下:
a.正运行的进程因时间片到变为就绪状态的变迁2,必然引起一个就绪进程被调度执行的变迁1。
b.
32不可能产生。
c.当一进程从等待状态变为就绪状态的变迁4,在该进程的优先级最高且系统采用抢占式调度时,就会引起该进程又被调度执行的变迁1。
d.正在运行的进程因请求资源未得到满足而变为等待状态的变迁3,必然引起一个就绪进程被调度执行的变迁1。
(2)不引起其他变迁的情况如下:
a.由就绪状态变为运行状态的变迁1不会引起其他变迁。
b.变迁2必然引起变迁1。
c.仅当无就绪进程时,变迁3不会引起变迁1。
非抢占式调度下或从等待状态变为就绪状态时的进程优先级较低,则不引起变迁1,
d.非抢占式调度下或从等待状态变为就绪状态时的进程优先级较低,则不引起变迁1,当然也不引起其他变迁。
5产生死锁的必要条件是什么?
解决死锁问题常用哪几种措施?
【解答】产生死锁的必要条件如下:
(1)互斥条件:
进程对所需要的资源进行排它性控制,即在一段时间内某资源为一进程所独占。
(2)请求和保持条件:
进程因请求资源阻塞时,对已分配它的资源保持不放。
(3)不剥夺条件:
进程所获得的资源在未使用完之前,不能被其他进程强占,而只能由该进程自己释放。
(4)环路条件:
在发生死锁时,进程――资源图必构成一环路,即前一个进程保持着后一个进程所需要的资源。
解决死锁问题常用的措施有:
(1)死锁的预防;
(2)死锁的检测与解除。
四、解答题
1.有3个并发进程R、M、P,它们共享同一缓冲区。
进程R负责从输入设备读信息,每读入一个记录后,就把它放进缓冲区中;进程M在缓冲区中加工读入的记录;进程P把加工后的记录打印输出。
读入的记录经加工输出后,缓冲区又可以存放下一个记录。
试写出它们能够正确执行的并发程序。
【解答】 这是一个简单的生产者――消费者问题。
由于3个并发进程R、M和P共享一个缓冲区,因此它们之前存在如图3-14所示的制约关系。
a
c
b
图3-14R、M和P的制约关系图
R、M和P的同步关系如下:
Begin
a:
=0;b:
=0;c:
=0;
cobegin
R:
begin
Repeat
P(c);
从输入设备读入一记录到缓冲区;
V(a);
4untilfalse
End;
M:
begin
Repeat
P(a);
在缓冲区中加工读入的记录;
v(b);
untilfalse
end;
p:
begin
repeat
p(b);
打印加工后的记录;
v(c)
untilfalse
end
coend
end;
注意:
为了保证首先执行,所以信号量C的初植应设为“1”。
此外,由制约关系图3-4可以看出来,R,M和P不会竞争缓冲区资源,故无须设置用于互斥的公用信号量。
2.多个进程共享一个文件,其中只读文件的称之为读者,其余只写文件的称为写者。
读者可以同时读,但是写者只能独立地写。
(1)说明进程间的相互制约关系,应设哪些信号量?
(2)用P、V操作写出其同步算法。
(3)修改上述的同步算法,使得它对写者优先,即一旦有写者到达,后续的读者都必须等待,而无论是否有读者在读文件。
count:
=0
cobegin
readeri(i=1,2,…m):
begin
P(rmutex);
count:
=count+1;
ifcount=1thenP(wmutex);/*第一个读者开始访问则禁止写者访问*/
V(rmutex);
读文件;
P(rmutex);
count:
=count-1;
ifcount=0thenV(wmutex);/*没有读者访问则允许写者访问*/
V(rmutex)
end;
writerj(j=1,2,…n):
begin
P(wmutex);
写文件;
V(wmutex)
end
coend
end;
(3)在
(2)中,当有读者在读而使写者阻塞时,如果仍有其他读者不断地请求读则写者就难以有机会执行。
在实际系统中则希望让写者优先,即当有读者正在读文件时,有写者请求访问,这时应禁止后续读者的读请求,待到已在读文件的读者执行完毕则立即让写者运行;只有在无写者写文件的情况下才允许读者投入运行。
为了提高写者的优先级,可以增加一个信号量W,即当有写者担出写请求时通过信号量W封锁后续读者的读请求。
写者优先的算法描述如下:
begin
rmutex:
=1;wmutex:
=1;
count:
=0;
w:
=1;
cobegin
readeri(i=1,2,…m):
begin
P(w)/*在无写者请求时进入*/
P(rmutex);
count:
=count+1;
ifcount=1thenP(wmutex);
V(rmutex);
V(w)
读文件;
P(rmutex);
count:
=count-1;
ifcount=1thenV(wmutex);
V(rmutex)
end;
Writerj(j=1,2,…,n):
begin
P(w);
P(wmutex);
写文件;
V(wmutex);
V(w)
end
coend
end;
3.设有P1、P2、P33个进程共享某一资源F,P1对F只读不写,P2对F只写不读,P3对F先读后写。
当一个进程写F时,其他进程对F不能进行读写,但多个进程同时读F是允许的。
试用P、V操作正确实现P1、P2、P3的同步与互斥。
要求:
(1)正常运行时不产生死锁;
(2)使用F的并发度要高。
[解答]
本题仍是一个读者一写者问题,不过进程P3既是读者又是写者。
由于写者与写者之间互斥、读者与写者之间互斥,所以只能通过读者之间可以同时读来提高使用F的并发度,即昼让读者优先。
实现P1、P2、P3同步与互斥的算法如下:
begin
rmutex:
=1;wmutex:
=1;
count:
=0;
cobegin
P1:
begin
regeat
P(rmutex);
count:
=count+1;
ifcount=1thenP(wmutex);
V(rmutex);
读F;
P(rmutex);
count:
=count-1;
ifcount=0thenV(wmutex);
V(rmutex)
untilfalse
end;
P2:
begin
repeat
P(wmutex);
写F;
V(wmutex)
untilfalse
end;
P3:
begin
repeat
P(rmutex);
count:
=count+1;
ifcount=1thenP(wmutex);
V(rmutex);
读F;
P(rmutex);
count:
=count-1;
ifcount=0thenV(wmutex);
V(rmutex);
P(wmutex);
写F;
V(wmutex);
untilfalse
coend
end;
由于本题实际上是一个标准和读者——写者问题解法的重复,因此正常运行时不会产生死锁。
4.设系统仅有一类数量为M的独占型资源,系统中N个进程竞争该类资源,其中各进程对该类资源的最大需求为W。
当M、N、W分别取下列值时,试判断下列哪些情形会发生死锁?
为什么?
(1)M=2;N=2,W=1;
(2)M=3;N=2,W=2;
(3)M=3;N=2,W=3;
(4)M=5;N=3,W=2;
(5)M=6;N=3,W=3;
【解答】
如果资源数为M,进程个数为N,则每个进程对该资源的最大需求不超过下面公式的X值时,系统不会发生死锁:
1当M≤N时
X=1+∟(M-1)/N」当M>N时
(注:
“∟」”表示对结果取下界,即去掉小数部分。
)
由此得到:
(1)X=1,X=W,即系统不会出现死锁。
(2)X=2,X=W,即系统不会出现死锁。
(3)X=2,X (4)X=2,X=W,即系统不会出现死锁。 (5)X=2,X 对于(3),资源个数为3,进程个数为2且每个进程对资源的最大需求是3。 如果这两个进程一个获得了2个资源,另一个获得了1个资源,则它们都因再无资源可以得到而死锁。 对于(5)资源个数为6,进程个数为3且每个进程对资源的最大需求是3;如果这3个进程中的每一个都已获得了2个资源,则它们都将因无资源可得到而死锁。 5.生产围棋的工人不小心把相等数量的黑子和白子混装在一个箱子里,现要用自动分拣系统把黑子和白子分开,该系统由两个并发执行的进程组成,系统功能如下: (1)进程A专门拣黑子,进程B专门拣白子: (2)每个进程每次只拣一个子,当一个进程在拣子时不允许另一进程去拣子; (3)当一个进程拣了一子(黑子或白子)以后,必让另一个进程拣一个子(白子或黑子)。 请用PV操作管理这两个并发进程,使其能正确实现上述功能。 解: 属于进程同步问题。 程序如下: VarS1,S2: semaphore: =1,0; begin parbegin A: beginB: begin repeatrepeat wait(S1);wait(S2); 拣黑子;拣白子; signal(S2);signal(S1); untilfalseuntilfalse endend parend end 6.用P、V操作实现下述问题的解。 桌上有一个盘子,可以存放一个水果,父亲总是放苹果到盘子中,而母亲则总是放香蕉到盘子中;一个儿专等吃盘中的香蕉,而一个女儿专等吃盘中的苹果。 【解答】 由于父亲和母亲可以同时向盘子放水果,所以盘子是临界资源,应设置一互斥信号量mutex来实现放水果的互斥,其初值为1。 此外,父亲的女儿、母亲和儿子之间存在同步关系,即分别设置信号量apple和banana来分别实现这种同步关系,其初值均为0。 父亲、母亲、女儿和儿子4个进程的同步示意如图3-26所示。 进程father进程mother进程daughter进程son P(mutex)P(mutex)P(apple)P(banana) 向盘中放苹果向盘中放香蕉取盘中的苹果取盘中的香蕉 V(apple)V(banana)V(mutex)V(mutex) 图3-264个进程的并发程序如下: 4个进程的并发程序如下: begin mutex: =1; apple: =0;banana: =0; cobegin father: begin repeat P(mutex); 向盘中放苹果; V(apple) untilfalse end; mother: begin repeat P(mutex); 向盘中放香蕉; V(banana) untilfalse end; daugbter: begin repeat P(apple); 取盘中苹果; V(mutex) untilfalse end; son: begin repeat P(banana); 取盘中香蕉; V(mutex) untilfalse end; coend end;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 进程管理 进程 管理