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

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

[1]1年前 (2025-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][19][单选]在一个采用虚拟页式存储管理方案的系统中

页面大小为 50 个整型变量,假设某一个进程分配有 3 个页面,其中程序占用 2 个页面并常驻内存。...

[1][22][单选]使用文件前要先打开文件。在成功执行打开文件系统调用后,系统会返回给用户一个

文件长度内存地址文件描述符文件打开方式答案文件描述符解析打开文件系统调用的一般格式为:fd = op...

[1][28][单选]死锁产生的原因之一是资源分配不当,另一个原因是

存在共享资源使用 P、V 操作过多系统中没有采用 SPOOLing 技术进程推进顺序不当答案进程推进...

[1][33][多选]在抢占式调度系统中,进程从运行状态转换为就绪状态的可能原因是

被调度程序抢占处理机等待某一事件等待的事件已经发生进程创建完成时间片用完答案被调度程序抢占处理机进程...