【正确答案】可以将上述进程分解成以下6个程序段:
[*]
并将它们的并发执行关系用前驱图(见图)描述出来。根据Bernstein条件(见[解释]),程序PS1和PS4的确是能并发执行的,程序段PS2与PS5也能并发执行,而程序段PS3和PS6则不能并发执行,或者说它们的并发执行具有不可再现性。若先执行PS3,再执行PS6,则最后x,y,z的值分别为6,7,10;若先执行PS6,再执行PS3,则最后x,y,z的值分别为6,13,10。
[*]
[解释] Bernstein条件是讲两个过程如果有数据冲突(Data Hazard),那么就没法并行执行。比如过程A生成数据d,而过程B需要输入数据d,那么B就需要A的输入,它们就没法并行执行(写后读问题,RAW)。如果二者会影响后续过程需要的数据,尤其是该数据和它们执行的顺序很有关系,那么它们同样也不能并行执行(写后写问题,WAW)。