当前位置:首页 > 操作系统概论(02323) > 正文内容

两个并发进程的程序如下:
begin
N:integer;
N:=3
cobegin
processA
begin
L1:N:=N+5;
gotoL1
end;
processB
begin
L2:print(N);
N:=0;
gotoL2
end;
coend;
end;
若pr

高老师2年前 (2024-03-26)操作系统概论(02323)11

两个并发进程的程序如下:
begin
N:integer;
N:=3
cobegin
processA
begin
L1:N:=N+5;
gotoL1
end;
processB
begin
L2:print(N);
N:=0;
gotoL2
end;
coend;
end;
若processA先执行了三个循环,然后processA和processB又并发执行了一个循环,写出可能出现的打印值。什么情况下会出现与时间有关的错误?请用PV操作实现同步,使两并发进程能正确执行。

可能的值是 18或 23。这是因为 process A执行三个循环后,N=18,之后 A和 B并发执行,可能先执行A中的N:=N+5,再执行B中的print(N);这样就会得到23,也可能先执行B中的pint(N);这就会得到18。

扫描二维码免费使用微信小程序搜题/刷题/查看解析。

版权声明:本文由翰林刷题小程序授权发布,如需转载请注明出处。

本文链接:https://doc.20230611.cn/post/229673.html

分享给朋友: