信号量机制与进程同步 — 计算机选择题
题目
某打印室有一个可存放 8 份文件的输出缓冲区,两名文员(生产者)与三名学生(消费者)并发使用。信号量 mutex=1、empty=8、full=0。某消费者进程的同步代码如下:
wait(mutex);
wait(full);
取文件并打印;
signal(empty);
signal(mutex);
若多个消费者并发执行该段代码,最可能发生的后果是:
A. 正常同步,仅可能出现消费者间互斥失效
B. 系统不会死锁,但 empty 信号量初值应改为 0
C. 可能死锁:持有 mutex 的消费者在 full=0 时阻塞,生产者因无法通过 wait(mutex) 而被阻塞
D. 只要缓冲区非空就一定不会死锁