Bernstein条件

王朝百科·作者佚名  2010-09-02
窄屏简体版  字體: |||超大  

Bernstein条件就是讲两个过程如果有数据冲突(Data hazard),那么就没法并行执行。比如过程A生成数据d,而过程B需要输入数据d,那么B就需要A的输入,他们就没法并行执行(写后读问题,RAW)。如果二者会影响后续过程需要的数据,尤其是该数据和他们执行的顺序很有关系,那么他们同样也不能并行执行(写后写问题, WAW)。

例如:p1:y=z+y;p2: z=x+z,假设x=1,y=2,z=3

如果先运行p1,则最后的结果是x=1,y=5,z=4;如果先运行p2,则x=1,y=6,z=4。两次的结果不一样,即程序不可再现,所以p1,p2不能并行的执行。

借用上面的例子,p1:y=z+y,那么p1的读集为 R(p1)={z,y},p1的写集为 W(p1)={y}。

对进程S1、S2,Bernstein条件要求R(S1)∩W(S2)∪W(S1)∩R(S2)∪W(S1)∩W(S2)={}。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航