题49
题目
Q:哲学家就餐问题的解决方案如下:
semaphore *chopstick[5];
semaphore *seat;
哲学家 i :
...
P(seat);
P(chopStick[i]);
P(chopStick[(i+1)%5]);
吃饭
V(chopStick[i]);
V(chopStick[(i+1)%5]);
V(seat);其中,信号量 seat 的初值为 ( )。
A. 0
B. 1
C. 4
D. 5
分析
A:信号量 seat 表示桌子上可以坐下的位置数, 由于只有五个位置, 所以每次只能有四位哲学家同时拿起左边的餐叉, 才能保证不会发生死锁, 所以 seat 的初值应该为 4 。
解
C