(1)两个并发进程并发执行,其中,A、B、C、D、E是原语,试给出可能的并发执行路径。 Process P Process Q begin begin A; D; B; E; C; end; end; (2) 两个并发进程P1和P2并发执行,它们的程序分别如下: P1 P2 repeat repeat k:=k×2; print k; k:=k+1; k:=0; until false; until false; 若令k的初值为5,让P1先执行两个循环,然后,P1和P2又并发执行了一个循环,写出可能的打印值,指出与时间有关的错误。
正确答案:
(1) 共有10种交错执行的路径:
A、B、C、D、E;A、B、D、E、C;A、B、D、C、E;
A、D、B、E、C;A、D、B、C、E;A、D、E、B、C;
D、A、B、E、C;D、A、B、C、E;D、A、E、B、C;D、E、A、B、C。
(2) 把语句编号,以便于描述:
P1 P2
repeat repeat
K:=k×2; ① print k; ③
K:=k+1; ② k:=0; ④
until false; until false;
1)K的初值为5,故P1执行两个循环后,K=23。
2)语句并发执行有以下情况:
①、②、③、④,这时的打印值为:47
③、④、①、②,这时的打印值为:23
①、③、②、④,这时的打印值为:46
①、③、④、②,这时的打印值为:46
③、①、②、④,这时的打印值为:23
③、①、④、②,这时的打印值为:23
由于进程P1和P2并发执行,共享了变量K,故产生了‘结果不唯一’。
A、B、C、D、E;A、B、D、E、C;A、B、D、C、E;
A、D、B、E、C;A、D、B、C、E;A、D、E、B、C;
D、A、B、E、C;D、A、B、C、E;D、A、E、B、C;D、E、A、B、C。
(2) 把语句编号,以便于描述:
P1 P2
repeat repeat
K:=k×2; ① print k; ③
K:=k+1; ② k:=0; ④
until false; until false;
1)K的初值为5,故P1执行两个循环后,K=23。
2)语句并发执行有以下情况:
①、②、③、④,这时的打印值为:47
③、④、①、②,这时的打印值为:23
①、③、②、④,这时的打印值为:46
①、③、④、②,这时的打印值为:46
③、①、②、④,这时的打印值为:23
③、①、④、②,这时的打印值为:23
由于进程P1和P2并发执行,共享了变量K,故产生了‘结果不唯一’。
答案解析:有

微信扫一扫手机做题