习题三同步、通信与死锁
一、单项选择题
1在单一处理机上,将执行时间有重叠的几个程序称为()。
A. 顺序程序
B.多道程序
C.并发程序
D.并行程序
2、进程间的基本关系为()。
A. 相互独立与相互制约
B.同步与互斥
C.并行执行与资源共享
D.信息传递与信息缓冲
3、两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来信息,或
者建立某个条件后再向前执行,这种关系是进程间的()关系。
A. 同步
B.互斥
C.竞争
D.合作
4、在一段时间内,只允许一个进程访问的资源称为()。
A.共享资源
B.临界区
C.临界资源
D.共享区
5、在操作系统中,对信号量S的P原语操作定义中,使进程进入相应阻塞队列等待的条件
是()。
A. S>0
B. S=0
C. S<0
D. S=0
6、信号量S的初值为8,在S上执行了10次P操作,6次V操作后,S的值为(
)。
A . 10 B. 8 C. 6 D. 4
7、临界区是指()。
A. 并发进程中用于实现进程互斥的程序段
B. 并发进程中用于实现进程同步的程序段
C. 并发进程中用户实现进程通信的程序段
D. 并发进程中与共享变量有关的程序段
8、下列对线程的描述中,()是错误的。
A.不同的线程可执行相同的程序 B ?线程是资源的分配单位
C.线程是调度和执行单位 D ?同一进程中的线程可共享该进程的主存空间
9、P, V操作是()
A.两条低级进程通信原语
B.两组不同的机器指令
C. 两条系统调用命令
D. 两条高级进程通信原语
10、若P, V操作的信号量S初值为2,当前值为-1,则表示有()等待进程。
A. 0 个
B. 1 个
C. 2 个
D. 3 个
11、()是一种只能进行P操作和V操作的特殊变量.
A.调度
B.进程
C.同步
D.信号量
12、下面的叙述中正确的是()。
A. 操作系统的一个重要概念是进程,因此不同进程所执行的代码也一定不同
B. 为了避免发生进程死锁,各进程只能逐个申请资源
C. 操作系统用PCB管理进程,用户进程可以从PCB中读出与本身运行状况有关
的信息
D. 进程同步是指某些进程之间在逻辑上的相互制约关系
13、对于两个并发进程,设互斥信号量为mutex,若mutex=0 ,则().
A.表示没有进程进入临界区
B. 表示有一个进程进入临界区
C. 表示有一个进程进入临界区,另一个进程等待进入
D. 表示有两个进程进入临界区
14、发生死锁的必要条件有四个,要防止死锁的发生,可以破坏这四个必要条件,但破
坏()条件是不太实际的。
A ?互斥
B ?不可抢占
C. 部分分配 D ?循环等待
15、资源的按序分配策略可以破坏()条件。
A ?互斥使用资源
B ?占有且等待资源
C. 非抢夺资源 D ?循环等待资源
16、在()的情况下,系统出现死锁。
A ?计算机系统发生了重大故障
B ?有多个封锁的进程同时存在
C.若干进程因竞争资源而无休止地相互等待他方释放己占有的资源
D ?资源数大大小于进程数或进程同时申请的资源数大大超过资源总数
17、银行家算法是一种()算法。
A?死锁解除C.死锁预防B ?死锁避免D .死锁检测
18某系统中有3个并发进程,都需要冋类资源4个, 试问该系统不会发生死锁的最少资源数是()。
A ? 9 B.10 C. 11D. 12
19、信箱通信是一种()通信方式。
A.直接通信B?间接通信C.低级通信 D. 信号量
20、并发进程失去了封闭性是指()。
A .多个相对独立的进程以各自的速度向前推进
B ?并发进程的执行结果与速度无关
C.并发进程执行时,在不同时刻发生的错误
D ?并发进程共享变量,其执行结果与速度有关
二、填空题
1、若一个进程已进入临界区,其他欲进入临界区的进程必须 _________ 。
2、用P, V操作管理临界区时,任何一个进程在进入临界区之前应调用操作,退出临
界区时应调用______ 操作。
3、用信箱实现通信时,应有_____ 和______ 两条基本原语。
4、有m个进程共享同一临界资源,若使用信号量机制实现对临界资源的互斥访问,则信号
量值的变化范围是_______ 。
5、死锁产生的必要条件有四个,即_________ 、________ 、________ 、_________ 。
6、银行家算法中,当一个进程提出的资源请求将导致系统从进入时,系统就
拒绝它的资源请求。
7、PV操作也可看作为进程间的一种通信方式,由于只交换了少量的信息,故称为
。
8、在多线程操作系统中,线程与进程的根本区别在于进程作为单位,而线程
是__________ 单位。
9、临界区是指并发进程中与_________ 有关的程序段
10、操作系统中信号量的值与________ 的使用情况有关,它的值仅能由_________ 来改变。
三、简答题
1、什么是进程的互斥与同步?
2、一个进程进入临界区的调度原则是什么?
3、在操作系统中,P操作和V操作各自的动作是如何定义的?
4、为什么并发进程执行时可能会产生与时间有关的错误?如何避免?
5、为什么说采用有序资源分配法不会产生死锁?
四、应用题
1、四个进程A、B、C、D都要读一个共享文件F,系统允许多个进程同时读文件F。但限制是进程A和进程C不能同时读文件F,进程B和进程D也不能同时读文件F。为了使这四个进程并发执行时能按系统要求使用文件,现用PV操作进行管理,请回答下面的问题:(1)如何定义信号量及初值;
(2)在下列的程序中填上适当的P、V操作,以保证它们能正确并发工作:
进程A 进程B 进程C 进程D
[1] ;[3] ;[5] ;[7];
read F;read F;read F;read
F;
[2] ;[4] ;[6] ;[8];
2、设有一台计算机,有两条I/O通道,分别接一台卡片输入机和一台打印机。卡片机把一叠
卡片逐一输入到缓冲区B1中,加工处理后再搬到缓冲区B2中,并在打印机上打印,问:
①系统要设几个进程来完成这个任务?各自的工作是什么?
②这些进程间有什么样的相互制约关系?
③用P、V操作写出这些进程的同步算法。
3、生产者-消费者问题表述如下:一组生产者进程和一组消费者进程通过缓冲区发生联系。
生产者进程将生产的产品送入缓冲区,消费者进程则从中取出产品。假定环形缓冲池中共有N个缓冲区,编号为0~N-1。
为了描述生产者进程和消费者进程,设指针in和out分别指向生产者进程和消费者进
程当前所用的缓冲区(buffer),初值均为0。
(1)应设置三个信号量实现两类进程的同步,分别是full、empty和mutex。请说出它们的含义及初值。
(2)下面是生产者进程的算法描述,请填写相应的P、V操作语句。
while (TRUE){
----------------------- ;
产品送往buffer (in);
in= (in+1)mod N ;/*mod 为取模运算*/
(3) 指出生产者进程算法中的临界区是哪一段程序? 4、在银行家算法中,若出现下述资源分配情况:
Allocatio n
Need
Available P0 0 0 3
2 0 0 1 2 16 2 2
P1 1 0 0 0 1 7 5 0 P2 1 3 5 4 2 3 5 6
P3
0 3 3 2 0 6 5 2
P4 0 0 1 4
0 6 5 6
试问:(1)该状态是否安全?
(2)如果进程P2提出请求Request2(1, 2,2,2)后,系统能否将资源分配给 它?
5、 桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子,儿子专 等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者 取用,请用P, V 原语实现爸爸、儿子、女儿三个并发进程的同步。
6、 哲学家甲请哲学家乙、丙、丁到某处讨论问题,约定全体到齐后开始讨论:在讨论的间 隙四位哲学家进餐,每人进餐时都需使用刀、叉各一把,餐桌上的布置如图
2.9所示。请用
信号量及P 、V 操作说明这四位哲学家的同步、互斥过程。
甲
刀2 叉1
答案三同步、通信与死锁
一、单项选择题
1、C
2、B
3、A
4、C
5、A
6、C
7、D
8、B
9、A10、B
11、D 12 、D13、
B
14、
A
15、D16、C17 、B18、B19、B20、D
二、填空题
1、等待
2、P、V
3、发送、接收
4、1至-(m-1)
5、互斥条件、不剥夺条
件、部分分
配、
环路条件
6、安全状态、不安全状态
7、低级通信
8、资源分配、调度和执行单位
9、共享变量
10、资源、PV 操作
三、简答题1.进程的互斥是指在逻辑上本来完全独立的若干进程,由于竞争同一个资源而产生的相互制约关系。
进程的同步是进程间共同完成一项任务时直接发生相互作用的关系,也就是说,这些具有伙
伴关系的进程在执行时间次序上必须遵循确定的规律。
2.一进程进入临界区的调度原则是:
①如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。
②任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。
③进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。
④如果进程不能进入自己的临界区,则应让出CPU,避免进程出现忙等”现象。
3.P 操作顺序执行下述两个动作:
①信号量的值减1,即S=S-1;
②如果S>0,则该进程继续执行;
如果S v 0,则把该进程的状态置为阻塞态,把相应的PCB连入该信号量队列的末尾,并放弃处理机,进行等待(直至其它进程在S上执行V操作,把它释放出来为止)。
V操作顺序执行下述两个动作:
①S值加1,即S=S+1 ;
②如果S>0,则该进程继续运行;
如果s w0,则释放信号量队列上的第一个PCB (即信号量指针项所指向的PCB)所对应的进程(把阻塞态改为就绪态),执行V 操作的进程继续运行。
4.有交往的并发进程可能会同时使用共享资源,如果对这种情况不加控制,由于进程占用处理器的时
间、执行的速度和外界的影响等, 就会引起与时间有关的错误。只要使若干并发进程的相关临界区互斥执行,就可避免造成这类错误。
5.为了便于说明,不妨设系统中有m类资源,n个进程,分别用Rl, R2,…,Rm (1, 2,…,m可看作资源编号)和P1, P2,…Pn表示。根据有序资源分配法可知,进程申请资源时必须按照资源编号的升序进行,即任何进程在占有了Ri 类资源后,再申请的资源
Rj的编号j 一定大于i。因此在任一时刻,系统中至少存在一个进程Pk,它占有了较高编号
的资源Rh,且它继续请求的资源必然是空闲的,因而Pk可以一直向前推进直至完成,当
Pk运行完成后即会释放它占有的所有资源;在Pk完成之后,剩下的进程集合中同样会存在
一个进程,它占有了较高编号的资源,且它继续请求的资源必然是空闲的,因而它可以一直
向前推进直至完成;以此类推,所有进程均可运行完成,故不会发生死锁。
四、应用题
1解:
(1)定义二个信号量S1 S2,初值均为1,即:S1=1, S2=1 (共2分)
(2)从[1]到[8]分别为:P(S1), V(S1) , P(S2), V(S2) , P(S1) , V(S1) , P(S2),
V(S2)
2、解:
①系统可设三个进程来完成这个任务:R进程负责从卡片输入机上读入卡片信息,输入
到缓冲区B1中;C进程负责从缓冲区B1中取出信息,进行加工处理,之后将结果送到缓冲区B2中;P进程负责从缓冲区B2中取出信息,并在打印机上印出。
②R进程受C进程影响,B1放满信息后R进程要等待一一等C进程将其中信息全部取走,
才能继续读入信息;C进程受R进程和P进程的约束:B1中信息放满后C进程才可从中取出它们,且B2被取空后C进程才可将加工结果送入其中;P进程受C进程的约束:B2中信息放满
后P进程才可从中取出它们,进行打印。
③信号量含义及初值:
B1full ―― 缓冲区B1满,初值为0;
B1empty――缓冲区B1空,初值为0;
B2full ―― 缓冲区B2满,初值为0;
B2empty――缓冲区B2空,初值为0;
P进程
P(B2full);
从B2中取出信息进行打印;
V(B2empty);
3?答:
(1)full表示放有产品的缓冲区数,初值为0;empty表示可供使用的缓冲区数,初值为
N ;
mutex为互斥信号量,初值为1,表示互斥进入临界区。
(2)P (empty) ,P (mutex) ,V (mutex) ,V (full)
R进程C进程