第3章-进程管理-习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章进程管理
一、单项选择题
1.在多进程的系统中,为了保证公共变量的完整性,各进程应互斥进入临界区。
所谓临界区是指。
(清华大学1996年研究生试题)
a.一个缓冲区 b. 一段数据区 c. 同步机制 d.. 一段程序
2. 一个进程是。
(清华大学1996年研究生试题)
a.由协处理机执行的一个程序
b.一个独立的程序+数据集
c.PCB结构与程序和数据的组合 d.一个独立的程序
3.在操作系统中,信号量表示资源实体,是一个与队列有关的变量,其值仅能用P、V操作来改变。
(陕西省1995年自考题)
a.实型 b.整型 c.布尔型 d.记录型
4.设有5个进程共享一个互斥段,如果最多允许有3个进程同时进入互斥段,则所采用的互斥信号量的初值应是。
(陕西省1996年自考题)
a. 5
b. 3
c. 1
d. 0
5.并发进程之间。
(陕西省1997年自考题) a.彼此无关 b、必须同步 c、必须互斥 d、可能需要同步或互斥6.实现进程之间同步与互斥的通信工具为。
a、P、V操作
b、信箱通信
c、消息缓冲
d、高级通信
7.N个进程共享某一临界资源,则互斥信号量的取值范围为。
a、0~1
b、-1~0
c、1~ -(N-1)
d、0~ -(N-1)
8.设m为同类资源数,n为系统中并发进程数。
当n个进程共享m个互斥资源时,每个进程的最大需求是w;则下列情况会出现系统死锁的是。
a、m=2,n=1,w=2
b、m=2,n=2,w=1
c、m=4,n=3,w=2
d、m=4,n=2,w=3 9.是进程调度算法。
a、时间片轮转法
b、先来先服务
c、响应比高者优先
d、均衡调度算法10.当时,进程从执行状态转变为就绪状态。
(西北工业大学1999年研究生试题)
a、进程被调度程序选中
b、时间片到
b、等待某一事件 d、等待的事件发生
11.对两个并发进程,其互斥信号量为mutex;若mutex=0,则表明。
a、没有进程进入临界区 b、有一个进程进入临界区
c、一个进程进入临界区而另一个进程正处于等待进入临界区状态
d、有两个进程进入临界区
12.用P、V操作可以解决互斥问题。
A、某些 b、一个 c、一切 d、大多数
13.系统中有n(n>2)个进程,并且当前没有执行进程调度程序,则不可能发生。
A、有一个运行进程,没有就绪进程,剩下的n-1个进程处于等待状态
B、有一个运行进程和n-1个就绪进程,但没有进程处于等待状态
C、有一个运行进程和1个就绪进程,剩下的n-2个进程处于等待状态
D、没有运行进程但有2个就绪进程,剩下的n-2个进程处于等待状态
14.下面临界区概念论述正确的是。
a、临界区是指进程中用于实现进程互斥的那段程序代码
b、临界区是指进程中用于实现进程同步的那段程序代码
c、临界区是指进程中用于实现进程通信的那段程序代码
d、临界区是指进程中用于访问临界资源的那段程序代码
15.支持多道程序设计的操作系统在运行过程中,不断地选择新进程运行来实现CPU的共享,但其中不是引起操作系统选择新进程的直接原因。
(复旦大学1999年研究生试题)
a、运行进程的时间片用完
b、运行进程出错
c、运行进程要等待某一事件的发生
d、有新进程进入就绪状态
二、填空题
1.进程的队列组织,通常采用和的形式。
(陕西省1995年自考题)
2.法和法是接触死锁的两种常用方法。
(陕西省1997年自考
题)
3.当系统创建一个进程时,系统就为其建立一个,当进程被撤消时就将其回收。
(陕西省1998年自考题)
4.死锁产生的主要原因是和。
5.死锁产生的4个必要条件是:互斥条件、、和。
6.当多个进程等待分配处理机时,系统按一种规定的策略从多个处于状态
的进
程中选择一个进程,让它占有处理机,被选中的进程就进入了状态。
7.临界区是指。
8.如果系统中有N个进程,则在等待队列中进程的个数最多为个。
9.在P、V操作中,信号量S的物理意义是当信号量S值大于零时表示;
当信号量S值小于零时,其绝对值为。
10.若使当前运行的进程总是优先级最高的进程,应选择进程调度算法。
11.用P、V操作管理临界区时,任何一个进程在进入临界区之前应调用操
作,
在临界区时应调用操作。
12.如果信号量的当前值为-4,则表示系统在该信号量上有个等待进程。
13.实现一个进程时必须考虑的3个主要问题包括:。
三、问答题
1.操作系统中为什么要引入进程的概念?为了实现并发进程间的合作和协调工作,以及保证系统的安全,操作系统在进程管理方面应做哪些工作?(南京大学1997年研究生试题)
2.试比较进程和程序的区别。
(哈尔滨工业大学2000年研究生试题)
3.进程和线程的主要区别是什么?(西北工业大学1999年研究生试题)
4.试比较管程和进程的异同点。
5.进程之间存在哪几种相互制约的关系?各是什么原因引起的?下列活动分别属于哪种
制约关系?(北京理工大学1996年研究生试题)
(1)若干同学去图书借书;
(2)两队举行篮球比赛;
(3)流水线生产的各道工序;
(4)商品生产和社会消费;
6. 进程基本状态变迁如图3-8所示。
问:
(1)在什么情况下将发生下述状态的因果变迁?
a .2 1 b. 3 2 c. 4 1 d.. 3 1
(2)在什么情况下,下述状态变迁不会立即引起其他变迁?
a .1
b . 2 c. 3 d . 4
4
图3-8 进程基本状态变迁图
7. 下述程序是解决两个进程互斥访问临界区问题的一种方法,试从“互斥”、“有空即进”、“有限等待”3个方面讨论它的正确性,如果它是正确的,则证明之;如果它不正确,请说明理由。
Program sample;
Var c1 ,c2 :integer ;
Procedure p1 ; /*第一个进程p1*/
Begin
Repeat
Other section 1;
Repeat
C1 :=1-c2
Until c2 <>0;
Critical section ;/*临界区*/
C1 :=1
Until false
End
Procedure p2 ;
Begin
Repeat
Other section 2;
Repeat
C2 :=1-c1
Until c1 <>0;
Critical section ;/*临界区*/
C2 :=1
Until false
End ;
Begin
C1 :=1;
C2 :=1;
Cobegin
P1 ;
P2 ;
Coend
End
(1)
8. 产生死锁的必要条件是什么?解决死锁问题常用哪几种措施?
9.要使一个系统不发生死锁,一般可采用哪些方法?简述它们的实现原理。
10.Dijkstra 1965年提出的银行家算法其主要思想是什么?它能够用来解决实际中的死锁问题吗?为什么?
四、解答题
1.设有8个程序prog1,prog2,……prog8,它们在并发系统中执行时有如图4-1所示的制约关系,试用P,V操作实现这些程序间的同步。
图4-1 prog1~prog8执行关系图
2.两个可以并发执行的程序都分别包含输入、计算的打印3个程序段,即I1、C1、P1、和I2、C2和P2。
两程序的前趋关系如图3-12所示,试用P、V操作实现它们的同步关系。
3.有3个并发进程R、M、P,它们共享同一缓冲区。
进程R负责从输入设备读信息,每读入一个记录后,就把它放进缓冲区中;进程M在缓冲区中加工读入的记录;进程P把加工后的记录打印输出。
读入的记录经加工输出后,缓冲区又可以存放下一个记录。
试写出它们能够正确执行的关发程序。
4. 设有进程A,B,C分别调用过程get,copy,put对缓冲区S和T进行操作。
其中get负责把数据块输入缓冲区S,COPY负责从缓冲区S中提取数据块复制到缓冲区T中,PUT负责从缓冲区S,COPY负责从缓冲区T中提取信息打印,如图3-15所示。
试描述get,copy,put 的操作过程。
图3-15三进程工作示意图
5. 进程A1,A2……..,An1通过m个缓冲区向进程B1,B2,….Bn2不断发送消息,发送和接受工作遵循如下规则:
(1)每个发送进程一次发送一个消息,写如一个缓冲区,缓冲区大小与消息长度一样;
(2)对每一个消息,B1,B2,…….Bn2都需要各接受一次,读入各自的数据区内:
(3)m个缓冲区都满时,发送进程等待,没有可读的消息时,接受进程等待。
试用P、V操作组织正确的发送和接受操作。
6.有一个仓库,可以存放A和B两种产品,仓库的存储空间足够大,但要求:
(1)一次只能存入一种产品(A或B);
(2)-N<A产品数量-B产品数量<M。
其中,N和M是正整数。
试用“存放A”和“存放B”以及P、V操作描述产品A与产品B的入库过程。
(北京大学1991年研究生试题)
7.有一个仓库存放两种零件A和B,最大库容量各为m 个。
有一车间不断地取A和B进行装配,每次各取一个。
为避免零件锈蚀,遵循先入库者先出库的原则。
有两组供应商分别不断地供应A和B。
为保证齐套和合理库存,当某种零件的数量比另一种的数量超过n(n<m)个时,暂时对数量大的零件进货,集中补充数量少的零件。
试用P、V操作正确的实现之。
8. 设有一个具有N个信息元素的环形缓冲区,A进程顺序把信息写入缓冲区,B进程依次地从缓冲区读出信息。
回答下列问题:
(1)叙述A、B两进程的相互制约关系;
(2)判别下列用P、V操作表示的同步算法是否正确?如不正确,试说明理由,并修改成正确算法。
VAR buffer:ARRAY[0..N-1] OF T;
in,out:0..N-1;
VAR S1,S2:Semaphore;
S1:=0; S2:=N;
in:=0; out:=0;
PROCEDURE A;
BEGIN
REPEAT
生产数据m;
P(S2);
buffer(in):=m;
in:=(in+1) mod N;
V(S1);
forever
END;
PROCEDURE B;
BEGIN
REPEAT
V(S2);
m:=buffer(out);
消费m;
out:=(out+1) mod N;
P(S1);
forever
END;
9.多个进程共享一个文件,其中只读文件的称之为读者,其余只写文件的称为写者。
读者可以同时读,但是写者只能独立地写。
(1)说明进程间的相互制约关系,应设哪些信号量?
(2)用P、V操作写出其同步算法。
(3)修改上述的同步算法,使得它对写者优先,即一旦有写者到达,后续的读者都必须
等待,而无论是否有读者在读文件。
10.设有P1、P2、P3 3个进程共享某一资源F,P1对F只读不写,P2对F只写不读,P3对F先读后写。
当一个进程写F时,其他进程对F不能进行读写,但多个进程同时读F是允许的。
试用P、V操作正确实现P1、P2、P3的同步与互斥。
要求:
(1)正常运行时不产生死锁;
(2)使用F的并发度要高。
11.设有5个哲学家,共享一张放有5把椅子和桌子,每人分得一把椅子。
但是,桌上总共只有5支筷子,在每人两边各放一支。
哲学家只有在肚子饥饿时方可分两次从两边抢占筷子就餐。
就餐的条件是:
(1)哲学家想吃饭时,先提出吃饭要求;
(2)提出吃饭要求,并拿到两支筷子后,方可吃饭;
(3)如筷子已被他人获得,则必须等待此人吃完饭后才能获取该筷子;
(4)任一哲学家在自己未拿到两支筷子吃饭之前,决不放下手中的筷子;(5)刚开始就餐时只允许两个哲学家请求吃饭;
试问:
(1)描述一个保证不会出现两个邻座同时要求吃饭的算法。
(2)描述一个既没有两邻座同时吃饭,又没有人饿死的算法。
(3)在什么情况下,5个哲学家全部吃不上饭?
12. 图3-23所示的是高级通信原语SEND和RECEIVE不完整的框图。
请填充适当的P.V 操作,并说明所用信号量的意义和初值。
图3-23SEND和RECEIVE不完整框图
13. (复旦大学1997研究生试题)
用P、V操作实现下述问题的解。
桌上有一个盘子,可以存放一个水果,父亲总是放苹果到盘子中,而母亲则总是放香蕉到盘子中;一个儿专等吃盘中的香蕉,而一个女儿专等吃盘中的苹果。
14. (南京大学2000年研究生试题)
桌上有一只盘子,最多可容纳两个水果,每次只能放入或取出一个水果。
爸爸专向盘子放苹果(apple),妈妈专向盘子中放桔子(orange);两个儿子专等吃盘子中的桔子,两个女儿专等吃盘中的苹果。
请用p、v操作来实现爸爸、妈妈、儿子、女儿之间的同步与互斥关系。
15.例题3.47 (南京大学2000年试题)
兄弟两共同使用一个帐号,每次限存或去10元,存钱与取钱的进程如下所示:
begin
amount: integer;
amount:=0;
cobegin
process SA VE
m1: integer;
begin
m1: =amount;
m1: =m1+10;
amount: =m1
end;
process TAKE
m2: integar;
begin
m2: =amount;
m2: =m2-10;
amount: =m2
end
coend
end;
由于兄弟俩可能同时存钱或取钱,因此两个进程是并发的。
若哥哥先存了两次钱,但在第三次存钱的时候,弟弟在取钱。
请问最后账号amount上面可能出现的值?如何用PV 操作实现两并发进程的互斥执行?
16.(北京邮电大学1998年研究生试题)
某寺庙,有小和尚、老和尚若干。
有一水缸,由小和尚提水入缸老和尚饮用。
水缸可容10桶水,水取自同一井中。
水井径窄,每次只能容一个桶取水。
水桶总数为3个。
每次入、取缸水仅为1桶,且不可同时进行。
试给出有关取水、入水的算法描述。
17.某工厂有两个生产车间和一个装配车间,两个生产车间分别生产A、B两种零件,装配车间的任务是把A、B两种零件组装成产品。
两个生产车间每生产一个零件后都要分别把它们送到装配车间的货架F1、F2上。
F1存放零件A,F2存放零件B,F1和F2的容量均为可以存放10个零件。
装配工人每次从货架上取一个A零件和一个B零件然后组装成产。
请用P、V操作进行正确管理。
(南京大学1999年研究生题)
18.(上海交大1999年研究生试题)
设系统仅有一类数量为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;
19. (北京大学1997年研究生试题)
设系统中有3种类型的资源(A,B,C)和五个进程(P1,P2,P3,P4,P5),A资源的数量为17,B资源的数量为5,C资源的数量为20,在T0时刻系统状态如表所示。
表3.1 T
(1)T0时刻是否为安全状态?若是,请给出安全序列。
(2)在T0时刻若进程P2请求资源(0,3,4),是否能实施资源分配?为什么?
(3)在(2)的基础上,若进程P4请求资源(2,0,1),是否能实施资源分配?为什么?(4)在(3)的基础上,若进程P1请求资源(0,2,0),是否能实施资源分配?为什么?
20. (中科院软件所1999年研究生试题)
某系统有R1、R2和R3共3种资源,在T0时刻P1、P2、P3和P4这4个进程对资源的占用和需求情况如下表3.7所示,此刻系统的可用资源为(2,1,2),问题:(1)将系统中各种资源总数和此刻个进程对个资源的需求数目用向量或矩阵表示出来。
(2)如果此时P1和P2均发出资源请求向量Request(1,0,1),为了保证系统的安全性,应该如何分配资源给这两个进程?说明你所采用策略的原因。
(3)如果(2)中两个请求立即得到满足后,系统此刻是否处于死锁状态?
表3.7 T0时刻4进程对资源的占用和需求情况
21. (南京大学2000年试题)
按序分配是防止死琐的一钟策略。
什么是按序分配?为什么按序分配可以防止死锁?。