P1 和 P2 是集群中的进程或节点。f1 和 f2 是他们的标志。假设强大的内存模型,并且两个进程都可能在任何时候重新启动,并且重新启动一个进程会清除它的标志,这是我想出的一个算法,但还不能破坏,但这让我很困扰,因为它在理论上没有得到证明并且与彼得森的相比,看起来太简单了。
P1 start:
set f1
if f2 set then clear f1, wait some, goto start
else enter critical section
do whatever
clear f1
P2 start:
set f2
if f1 set then clear f2, wait some, goto start
else enter critical section
do whatever
clear f2
有人能看到流量吗?除了其中一个进程可能会通过快速重新进入该部分而使另一个进程挨饿吗?