Linux concurrency - 3: architecture atomic instruction
我們透過變數來維護程式的狀態及流程,SMP 下同時多個 core 共同存取 share data 時 ,程式設計上除了重入性以及可能被亂序執行的考量外,另一個就是存取時需確保操作是 atomic:表示說我們對於某個共享記憶體的操作,相對於系統的其他部分來說是完整完成 不可中斷的 [10][11] 。包含 load/store atomic 與 Read-Modify-Write(RMW) atomic。 我們可以從 [11] 的例子對於 64-bit share memory 的處理很明顯的了解這個概念,以及 可能發生的問題(race condition)。