這是問題所在。 我希望兩個進程交替發生,完整的問題在這裏。使用信號量進行同步
問:系統中有兩個進程叫做A和B.當系統啓動時,進程A執行兩次,進程B執行一次。進程B不能執行,直到進程A執行兩次。一旦進程A執行完成,在進程B執行之前它不能再次執行。上述限制允許過程A和B以下列方式執行。
AABAABAAB ...
寫出僞代碼用於過程A和B的使用計數信號量以實現所需的同步。
這是我的嘗試。
解決方案:
進程A
var a=1,b=0,i;
begin
repeat
wait(a);
for(i=0;i<2;i++)
printf("A"); // conidering this is what process a does.
signal(b);
forever
end
進程B
begin
repeat
wait(b);
printf("B"); //considering this is what process B does.
signal(a);
forever
end
這是正確的嗎?