答:
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|個進程等待訪問公共變量