设有一个发送者进程和接收者进程,其流程图如图4-3所示。S是用于实现进程同步的信号量,mutex是用于实进程互斥的信号量。试问流程图中的A、B、C、D 4个框中应填写什么?假定缓冲区有无限多个且初始为空,S和mutex的初值应该是什么?( )

admin2019-12-10  26

问题 设有一个发送者进程和接收者进程,其流程图如图4-3所示。S是用于实现进程同步的信号量,mutex是用于实进程互斥的信号量。试问流程图中的A、B、C、D 4个框中应填写什么?假定缓冲区有无限多个且初始为空,S和mutex的初值应该是什么?(    )

选项 A、P(mutex)、V(mutex)、P(S)、P(mutex)    S=缓冲区的个数   mutex=1
B、P(S)、V(mutex)、P(Sg)、P(mutex)       S=0    mutex=1
C、P(mutex)、V(mutex)、P(S)、P(mutex)    S=0    mutex=1
D、P(S)、V(mutex)、P(Sg)、P(mutex)    S=缓冲区的个数  mutex=0

答案A

解析 流程图中的A、B、C、D 4个框中分别应该填写:P(mutex)、V(mutex)、P(S)、P(mutex)或者P(mutex)、V(murex)、P(mutex)、P(S)。首先应该明确这里的缓冲区是临界资源,所以“把缓冲区放到信息链尾”和“从缓冲区中取出消息”是互斥的。在操作前都要,P(mutex),成功的P操作后,进入临界区,退出时V(mutex),又mutex作为互斥信号量,初值应为1。
    S作为同步信号量,发送者进程发送完信息后进行V(S),表示信号链中信息的个数增加1,作为接收者进程必须有相应的表示取走信息的P(S)操作。S是资源信号量,是用来表示信号链中信息的个数,其初值要根据进程的初始状态确定,这里初始为空,所以其初值应设置为0。
转载请注明原文地址:https://kaotiyun.com/show/Es3i777K
0

相关试题推荐
最新回复(0)