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

[24][30][单选]有 n 个生产者进程 P1、P2、…、Pn,其伪代码如下:

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

i = 0; while (true {    生产产品;    P(empty; //empty 初值为 C,C > 0,整数    P(mutex; //mutex 初值为 1    往 Buffer[i]中放产品;    i = (i + 1 mod K; //K 为缓冲区大小    V(mutex;    V(full;  //full 初值为 0 } 这些生产者进程在执行过程中,可能出现下列哪一种现象?

正常运行

可能死锁

出现活锁

产生饥饿


答案

正常运行


解析

当进程进行 n 次循环后或 n 个生产者,每人都生产一个产品,当缓冲区为空的时候,生产者可以向缓冲区生产产品。执行 P(empty取产品此时 mutex = 1,然后判断缓冲区大小,如果缓冲区不为空,则执行 V(mutex放入产品。所以这个过程不会发生死锁,能正常运行,因为过程中会判断缓冲区的大小,不会让生产者向已满的缓冲区里生产产品。涉及考点为第 8 章 死锁。


转载请注明出处。

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

相关文章

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

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

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

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

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

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