📜  伯恩斯坦的操作系统条件

📅  最后修改于: 2021-08-24 08:20:27             🧑  作者: Mango

Bernstein条件是应用于将在处理器中执行的两个语句S1和S2的条件。它指出,要同时执行两个连续的语句S1和S2,必须满足以下说明的三个条件,并且仍然会产生相同的结果。

S1和S2的读写集,读写集和读写集之间的交集必须为空。

上面的语句可以用以下表达式形式表示:

1. R(S1) ∩ W(S2) = { }
2. W(S1) ∩ R(S2) = { }
3. W(S1) ∩ W(S2) = { } 

语句c = a – b的读写集;

R(c=a-b) = {a, b}
W(c=a-b) = {c} 

语句的读写集w = c + 1;

R(w=c+1) = {c}
W(w=c+1) = {w} 

语句x = x + 2的读写集;

R(x=x+2) = {x}
W(x=x+2) = {x} 

示例1:
让,

S1 : a = x + y 
S2 : b = z + 1 

检查两个语句S1和S2是否满足Bernstein的条件。
解决方案:

R(S1) = {x, y}
W(S1) = {a}
R(S2) = {z}
W(S2) = {b}

1. R(S1) ∩ W(S2) = {x, y} ∩ {b} = { }
2. W(S1) ∩ R(S2) = {a} ∩ {z} = { }
3. W(S1) ∩ W(S2) = {a} ∩ {b} = { } 

因此,可以同时执行S1和S2,即满足伯恩斯坦条件。

示例2:
让,

S1 : a = x + y 
S2 : b = z + 1 
S3 : c = a - b 

检查两个语句S2和S3是否满足Bernstein的条件。

解决方案:

R(S2) = {z}
W(S2) = {b}
R(S3) = {a, b}
W(S3) = {c}

1. R(S2) ∩ W(S3) = {z} ∩ {c} = { }
2. W(S2) ∩ R(S3) = {b} ∩ {a, b} = {b}
3. W(S2) ∩ W(S3) = {b} ∩ {c} = { } 

因此,不能同时执行S2和S3,即不满足伯恩斯坦的条件。