答:
var mutex: semaphore:=1;
begin
cobegin
process i : begin // i = 1,2,……,n
repeat
P(mutex);
对公共变量Q的访问;
V(mutex);
reminder section
until false;
end
coend
信号量mutex的取值范围为mutex.value∈[1,-(n-1)]
1、 值为1时表示没有进程访问公共变量
2、 值为2时表示有一个进程正在访问公共变量
3、 值为3时表示有一个进程正在访问公共变量,同时又|mutex.value|个进程等待访问公共变量