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

题目类型: 问答题

题目内容

进程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;

题目纠错