题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