實作 System V Semaphore in Linux User Space

System V Semaphore

在撰寫 Linux AP 時,System V semaphore 經常作為保護關鍵區域(critical section)或在不同 process 之間的同步(synchronization)之用。所謂 critical section 是指某程式碼段落對特定資源(可能是任何變數、檔案、驅動等等)做操作,而該資源若同時被不同程式(process)讀寫可能會有風險導致系統崩潰。好比 A process 正在寫入某 flash sector,此時 B process 正巧要讀取也要讀取同一個 flash sector,此時讀寫可能都會失敗,而導致系統不穩定。此類問題在多工作業系統中可能經常發生,因此需要使用一個機制來限制特定區域的存取。 繼續閱讀