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

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

[24]2年前 (2025-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://www.pythonopen.com/?id=7096

相关文章

[24][1][单选]批处理操作系统的主要特征是

系统资源利用率高用户能够直接与计算机交互可以满足严格的时间要求具有很强的健壮性和稳定性答案系统资源利...

[24][2][单选]处理器通过执行指令实现程序的功能,特权指令是指

只能由操作系统使用的指令只能由用户程序使用的指令操作系统和用户均可以使用的指令操作系统和用户均不可以...

[24][3][单选]中断是打断处理器的当前工作并要求其去处理某一事件的一种常用手段,那些引起中断的设备或事件称为

中断请求中断源中断断点中断响应答案中断源解析中断是所有要打断处理器的正常工作次序,并要求其去处理某一...

[24][4][单选]系统调用是操作系统支持的供用户使用的一些子功能代码,当用户使用这些功能代码时

必须首先改变用户的身份为管理员无须任何其他操作可以直接转换到被调用程序必须首先执行访管指令必须首先提...

[24][6][单选]假设有2个程序A和B同时到达,且都要执行。

A程序的执行顺序为:在CPU上执行10秒,在设备DEV1上执行5秒,又在CPU上执行5秒,在设备DE...

[24][7][单选]计算机系统中的进程通常处于不同的状态。当进程处于运行状态时,表示

进程占用处理器资源进程已获得除处理器外的所有资源进程已获得内存资源进程已获得除内存外的所有资源答案进...