当前位置:首页 > 4444临时 > 正文内容

[27][30][单选]有 n 个消费者进程 Q1、Q2、…、Qn,其伪码如下:

4444临时3个月前 (02-02)

j = 0; while (true)    P (mutex);    //mutex 初值为 1    if (fullness == 0)    {        //fullness 初值为 0        V (mutex);        //从 Buffer[j]取产品        j = (j + 1) mod k;        //k 为缓冲区大小        V (emptiness);        //emptiness 初值为 C,C > 0,整数        V (mutex);        //消费产品;    } 这些消费者进程在执行过程中,可能会出现下列哪一种现象

正常运行

可能死锁

出现活锁

产生饥饿


答案

可能死锁


解析

在消费者与生产者的问题中,信号量 mutex 用于实现临界区(环形缓冲区)的互斥,信号量 fullness 用于指示环形缓冲区中满缓冲区数目,信号量 emptiness 用于指示环形缓冲区中空缓冲区数目。根据题意,在这些消费者进程中,若先执行 P (mutex)进入到临界区中,再执行 P (fullness)从满缓冲区中取产品,假设当消费者进入临界区,而满缓冲区数目为 0,那么此刻需要等待生产者向缓冲区投入产品,而消费者又占用了临界区,生产者会等着消费者退出临界区,消费者又等待生产者向缓冲区投入产品,那么可能会发生死锁。


转载请注明出处。

本文链接:http://pythonopen.com/?id=7336

相关文章

[12][1][单选]操作系统作为系统软件,位于软件系统的哪一个层面

硬件之上,支撑软件之下支撑软件之上,应用软件之下应用软件之上,支撑软件之下硬件之上,软件系统之下答案...

[12][2][单选]系统调用与一般过程调用是不同的,下列对它们的调用程序和被调用程序的描述中,哪一个是正确的

过程调用和系统调用的调用程序和被调用程序均位于核心态过程调用和系统调用的调用程序和被调用程序均位于用...

[12][3][单选]处理器中对用户可见的存储器是

程序状态字寄存器数据寄存器程序计数器指令寄存器答案数据寄存器解析处理器一般包括两类寄存器:一类称为用...

[12][5][单选]进程有三种基本状态,在允许抢占并采用高优先级优先调度算法的系统中,一个进程从就绪状态转换为运行状态的可能事件是

该进程创建完成进入就绪队列并具有最高优先级该进程等待从键盘上读取用户数据该进程的优先级由于某种原因被...

[12][7][单选]某4核处理器的计算机系统中共有50个进程,那么,处于运行状态的进程最多有几个

45010答案4解析由题目可知计算机系统中处理器是4核心的,也就是意味着同时可以执行4个进程的指令,...

[12][9][单选]对于如下C语言程序

int main({pid_t pid;int a = 1;pid = fork(;if(pid =...