进程A和进程B共享某个资源。它们并发执行的程序如下:
begin
busy∶Boolean;
busy∶=true;
cobegin
processA
begin
L∶ifbusythenbegin
使用资源;
busy∶=false;
end;
gotoL;
end:
processB
begin
K∶ifnotbusythenbegin
使用资源;
busy∶=true;
end;
gotoK;
end;
coend;
end:
回答下面问题:
(1)进程A和进程B按什么规律在使用资源?
(2)若程序中不使用布尔变量busy,而改用PV操作来管理,则应采用同步方式还是互斥方式?
(3)在保持原来的资源使用规律情况下,把上述程序改用PV操作来管理。
(1)交替使用的规律(进程A最先使用)
(2)同步方式
(3)程序修改如下:
begin
S1,S2:semaphore;
S1:=1;S2:= 0;
cobegin
process A
begin
L:P(S1);
使用资源;
V(S2);
goto L;
end;
process B
begin
K:P(S2);
使用资源:V(S1);
goto K;
end;
coend;
end;