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

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

4444临时5个月前 (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][20][单选]下列关于文件系统中文件的描述中,哪一个是正确的

构成文件内容的基本单位为信息项文件的内容没有顺序关系文件内容都是由操作系统程序并使用的用户需要关注文...

[12][21][单选]下列哪一项是执行打开文件操作时由操作系统返回的

文件名文件号文件描述符文件物理位置答案文件描述符解析执行打开文件操作时由操作系统返回的信息是文件描述...

[12][22][单选]下列关于实现创建文件操作的描述中,哪一个是错误的

创建文件操作完成后,该文件得到一个新的文件控制块FCB创建文件操作完成后,操作系统给该文件分配一定的...