1

我知道Dekker算法和Peterson算法之類的互斥算法需要一個基本的順序一致的內存模型來工作(或使用內存障礙),但我不清楚他們是否需要原子加載和存儲。在wikipedia entry對彼得森的算法是這樣說:互斥算法是否需要原子加載和存儲?

算法滿足三個基本標準,以解決關鍵的部分問題,只要改變變量轉向,標誌[0],和國旗1立即並自動傳播。

我不清楚上面引用的位以及是否意味着該算法需要原子加載和存儲才能工作。看看彼得森的算法,我不明白爲什麼需要原子加載和存儲。我在Dekker's algorithm wikipedia entry中沒有看到這種原子性要求的提及。那麼Peterson的算法是否需要原子加載和存儲,這是否擴展到所有互斥算法?

回答

0

是的,它確實需要它們是原子的。 Dekker的算法也是如此。

假設轉彎和標誌不是原子的。這意味着P0可以設置turnflag[0],但是P1仍然可以將它們視爲未設置的時間間隔,並且可以進入其臨界區域。對稱地,P0也可以進入CS。

相關問題