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

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

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

j = 0; while (true {    wait (full;    //full 初始值为 0    P (mutex;    //mutex 初始值为 1    buffer[j] = produce item;    //生产产品    j = (j + 1 mod k;    //k 为缓冲区大小    V (mutex;    V (empty;    //empty 初始值为 C,C >= 0,整数 } 这些消费者进程在执行过程中,可能会出现下列哪一种现象?

可能死锁

正常运行

出现饥饿

产生饥饿

答案

正常运行

解析

当进程进行了 n 次消费后或每个消费者,每人都消费一个产品,当缓冲区为空时,消费者可以从缓冲区取出产品,执行 Vmutex操作此时 mutex = 1,然后判断缓冲区大小,如果缓冲区是满的,则执行 Vempty操作,所以该过程不会出现死锁,能正常运行,因为过程中会判断缓冲区的大小,不会让消费者从空的缓冲区里取产品,故选 B 选项。


转载请注明出处。

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

相关文章

[12][20][单选]下列关于文件系统中文件的描述中,哪一个是正确的

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

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

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

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

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