1、系统中有多个生产者进程和多个消费者进程,共享一个能存放500件产品的环形缓冲区(开始时为空)。当缓冲区未满时,生产者进程可以放入其生产的一件产品,否则等待;当缓冲区未空时,消费者进程可以从缓冲区取走一件产品,否则等待。当一个消费者进程获得取出产品的机会时,必须连续取出5件产品后,其他消费者才可以取产品。请回答以下问题: (1)说明问题中进程间的同步与互斥关系。 (2)说明信号量的设置、初值及含义。 (3)写出该问题的同步算法。
第1题:
阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
在并发系统设计中,通过对信号量S的P、V操作实现进程的同步与互斥控制。
P(S):S:=S-1,若S≥0,则执行P操作的进程继续执行:若S<0,则置该进程为阻塞状态,并将其插入阻塞队列。
V(S):S:=S+1,若S>0,则执行V操作的进程继续执行;若S≤0,则从阻塞队列唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续执行。
在某并发系统中,有一个发送进程A、一个接收进程B、一个环形缓冲区BUFFER、信号量S1和S2。发送进程不断地产生消息并写入缓冲区BUFFER,接收进程不断地从缓冲区BUFFER取消息。假设发送进程和接收进程可以并发地执行,那么,当缓冲区的容量为N时,如何使用P、V操作才能保证系统的正常工作。发送进程A和接收进程B的工作流程如图4-1所示。请在图4-1中的空(1)~(4)处填入正确的内容。
第2题:
A 田径场上的接力比赛
B 两个进程都要使用打印机
C 一个生产者和一个消费者通过一个缓冲区传递产品
D 公共汽车上司机和售票员的协作
第3题:
设有一缓冲池P,P中含有20个可用缓冲区,一个输入进程将外部数据读入P,另有一个输出进程将P中数据取出并输出。若讲程每次操作均以一个缓冲区为单位,试用记录型信号量写出两个进程的同步算法,要求写出信号量的初值。
第4题:
下列说法中,正确的是
A.进程之间同步,主要源于进程之间的资源竞争,是指对多个相关进程在执行次序上的协调
B.信号量机制是一种有效的实现进程同步与互斥的工具。信号量只能由P\V.操作来改变
C.V操作是对信号量执行加1操作,意味着释放一个单位资源,加1后如果信号量的值小于等于0,则从等待队列中唤醒一个进程,现进程变为等待状态;否则现进程继续进行
D.临界区是指每次仅允许一个进程访问的资源
第5题:
某系统中有一个缓冲区,进程P1不断地生产产品送入缓冲区,进程P2不断地从缓冲区中取出产品消费,用P、V操作实现进程间的同步模型如下图所示。假设信号量S1的初值为1,信号量S2的初值为0,那么a、b处应分别填(26),c、d处分别填(27)。
A.V(S2)、P(S1)
B.P(S1)、V(S2)
C.P(S2)、V(S1)
D.V(S1)、P(S2)
第6题:
假设系统采用PV操作实现进程同步与互斥,若有n个进程共享一台扫描仪,那么当信号量S的值为-3时,表示系统中有(23)个进程等待使用扫描仪。
A.0
B.n-3
C.3
D.n
第7题:
某系统中有一个缓冲区,进程P1不断地生产产品送入缓冲区,进程P2不断地从缓冲区取产品消费。假设该缓冲区只能容纳一个产品。进程P1与P2的同步模型如图2-2所示。
为此,应设信号量S1的初值为(1),信号量S2的初值为(2)。
A.-2
B.-1
C.0
D.1
第8题:
s=0表示满缓冲的数量、即多少缓冲区里有消息
m=1表示互斥信号量
A:P(m)B:V(m)C:P(s)D:P(m)
由题意,m用于实现进程互斥,初值应为1,并应成对出现,由接收者进程的V(m)操作可知,m用于实现消息链存、取缓冲区操作的互斥,故D为P(m)。相应的,A为P(m),B为V(m)。
由发送者进程可知,当发送者将一个消息放入消息链尾后,执行V(s)操作,故s表示接收者可取消息的数量,又因s用于实现进程同步,所以接收者接受消息前,应判断是否有消息可以取,需对s执行P操作,所以C为P(s),发送者发送消息前,接收者无消息可取,s的初值应为0。
第9题:
第10题:
系统中有2个并发进程,当一个进程在等待另一个进程向它发送消息时,它们之间的关系是()。
第11题:
试以生产者—消费者问题说明进程同步问题的实质。
第12题:
第13题:
若系统中有多个发送进程和接收进程,进程间的工作流程如图4-2所示,其中空 (1)~(4)的内容与图4-1相同。发送进程产生消息并顺序地写入环形缓冲区BUFFER,接收者进程顺序地从BUFFER中取消息,且每条消息只能读取一次。为了保证进程间的正常通信,增加了信号量SA和SB。
①请说明信号量SA和SB的物理意义,并在图4-2中的空(5)和空(6)处填入正确的内容。
②请从图4-2的(a)~(1)中选择四个位置正确地插入P(SA)、V(SA)、P(SB)、V(SB)。
第14题:
A.1
B.6
C.8
D.9
第15题:
“生产者—消费者”问题是一个经典的进程同步与互斥控制问题,若缓冲区可存放n件物品,要解决这个问题,通常需要使用______个信号量。
A.1
B.2
C.3
D.4
A.
B.
C.
D.
第16题:
● 某系统中有一个缓冲区,进程 P1 不断地生产产品送入缓冲区,进程 P2 不断地从冲区中取出产品消费,用P、V 操作实现进程间的同步模型如下图所示。假设信号量S1初值为1,信号量S2的初值为0,那么a、 b处应分别填 (26) , c、 d处分别填 (27) 。
(26)
A. V(S2)、P(S1)
B. P(S1)、V(S2)
C. P(S2)、V(S1)
D. V(S1)、P(S2)
(27)
A. V(S2)、P(S1)
B. P(S1)、V(S2)
C. P(S2)、V(S1)
D. V(S1)、P(S2)
第17题:
某系统中有一个缓冲区,进程P1不断地生产产品送入缓冲区,进程P2不断地从缓冲区中取产品消费。假设该缓存区只能容纳一个产品。进程P1与P2的同步模型如下图所示:
为此,应设信号量S1的初值为(18),信号量S2的初值为(19)。
A.-2
B.-1
C.0
D.1
第18题:
下列只包含进程互斥问题的是(16)。
A.田径场上的接力比赛
B.一个进程读文件,一个进程写文件
C.一个生产者和一个消费者通过一个缓冲区传递产品
D.公共汽车上司机和售票员的协作
第19题:
某系统有一个缓冲区,进程P1不断地生产产品送入缓冲区,进程P2不断地从缓冲区取产品消费。用PV操作实现进程间的同步模型如图2-3所示。假设信号量S1的初值为1,信号量S2的初值为0,那么,a、b处应当写别填(1),c、d处分别填(2)。
A.V(S2)、P(S1)
B.P(S1)、V(S2)
C.P(S2)、V(S1)
D.V(S1)、P(S2)
第20题:
第21题:
第22题:
有9个生产者,6个消费者,共享容量为8的缓冲区。在这个生产者-消费者问题中,互斥使用缓冲区的信号量mutex的初值应该为()。
第23题:
同步关系
互斥关系
调度关系
父子进程关系
第24题:
1
6
8
9