问答题 另一个经典同步问题:吸烟者问题(patil,1971)。三个吸烟者在一个房间内,还有一个香烟供应者。为了制造并抽掉香烟,每个吸烟者需要三样东西:烟草、纸和火柴,供应者有丰富货物提供。三个吸烟者中,第一个有自己的烟草,第二个有自己的纸和第三个有自己的火柴。供应者随机地将两样东西放在桌子上,允许一个吸烟者进行对健康不利的吸烟。当吸烟者完成吸烟后唤醒供应者,供应者再把两样东西放在桌子上,唤醒另一个吸烟者。试采用:(1)信号量和P、V操作,(2)管程编写他们同步工作的程序。
问答题 (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又并发执行了一个循环,写出可能的打印值,指出与时间有关的错误。
问答题 在信号量S上作P、V操作时,S的值发生变化,当S>0、S=0、S<0时,它们的物理意义是什么?