当前位置:首页 > 四级网络工程师 > [1] > 正文内容

[1][34][多选]在有 N 个缓冲区的生产者 - 消费者问题中,下列叙述中哪些是错误的

[1]10个月前 (01-18)
producer()
{
    int item;
    while (TRUE) {
        item = produce_item();
        P(empty);
        P(mutex);
        insert_item(item);
        V(mutex);
        V(full);
    }
}

consumer()
{
    int item;
    while (TRUE) {
        P(full);
        P(mutex);
        item = remove_item();
        V(mutex);
        V(empty);
        consume_item(item);
    }
}

信号量 empty 的初始值为 N

信号量 full 的初始值为 0

信号量 mutex 的初始值为 0

P(full)和 P(mutex)两条语句可以颠倒顺序

V(full)和 V(mutex)两条语句可以颠倒顺序


答案


信号量 mutex 的初始值为 0

P(full)和 P(mutex)两条语句可以颠倒顺序


解析


empty 信号量是表示的是空缓冲区数目,这里为 N,所以其初始值为 N;full 信号量是表示的是满缓冲区数目,这里为 0,即其初始值为 0;mutex 信号量是用于实现互斥访问,初始值为 1。P(full和 P(mutex两条语句若颠倒顺序,可能导致死锁;V(full和 V(mutex两条语句若颠倒顺序,可能导致错误。故本题答案选 CD。涉及考点为第 4 章 并发与同步。


转载请注明出处。

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

相关文章

[1][6][单选]下列各种数据对象中,与进程具有——对应关系的是

程序进程控制块动态库堆栈答案进程控制块解析进程由指令、数据和进程控制块PCB3 部分组成。PCB 是...

[1][9][单选]在 Pthread 线程包中,线程操作 pthread_join 的含意是

创建一个新的线程撤销一个线程等待一个特定的线程退出参加一个新的线程答案等待一个特定的线程退出解析线程...

[1][18][单选]在采用虚拟存储管理方案的系统中,发生“抖动”现象是由以下哪一个原因引起的

页面尺寸过大页面尺寸过小程序编制不合理页面置换算法不合理答案页面置换算法不合理解析在采用虚拟存储管理...

[1][27][单选]当一个低速的 I/O 设备连接到高速的计算机系统中时,下列哪种技术可以提高低速设备的使用效率

SPOOLing 技术I/O 重定向技术设备共享技术设备缓冲技术答案设备缓冲技术解析缓冲技术是计算机...

[1][36][多选]下列关于快表的叙述中,哪些是正确的

快表的另一个名称是 TLB快表的内容是页表的全集当切换进程时,要刷新快表快表存放在高速缓存中对快表的...

[1][47][单选]如果交换机的总带宽为14.4Gbps,它具有12个百兆的全双工端口,则其干兆的全双工端口数量最多为

6个5个4个3个答案6个解析全双工交换机的带宽计算方法是:端口数×端口速率×2。12个百兆的全双工端...