Monitors(監視器)
備註
本系列文章內容參考自經典教材 Operating System Concepts, 10th Edition (Silberschatz, Galvin, Gagne)。本文對應章節:Section 6.7 Monitors。
前兩節介紹的 Mutex Lock 與 Semaphore,雖然能正確解決臨界區問題,但它們是非常低階的工具:正確性完全依賴程式設計師在每一個進入與離開臨界區的地方,都準確地呼叫正確的 wait()、signal()、acquire()、release()。一旦順序寫錯、漏寫,就可能引發難以重現的計時錯誤(Timing Error)。
這類錯誤極難除錯,因為它們只在特定的執行順序(Execution Sequence)下才會觸發,有時要跑上千次才會出現一次。本節正是為了解決這個根本問題而誕生。