進程在并發執行時為了保證結果的可再現性,各進程執行序列必須加以限制以保證互斥地使用臨界資源,相互合作完成任務。多個相關進程在執行次序上的協調稱為進程同步。用于保證多個進程在執行次序上的協調關系的相應機制稱為進程同步機制。
所有的進程同步機制應遵循下述四條準則:
-
空閑讓進
當無進程進入臨界區時,相應的臨界資源處于空閑狀態,因而允許一個請求進入臨界區的進程立即進入自己的臨界區。
-
忙則等待
當已有進程進入自己的臨界區時,即相應的臨界資源正被訪問,因而其它試圖進入臨界區的進程必須等待,以保證進程互斥地訪問臨界資源。
-
有限等待
對要求訪問臨界資源的進程,應保證進程能在有限時間進入臨界區,以免陷入“饑餓”狀態。
-
讓權等待
? ? 當進程不能進入自己的臨界區時,應立即釋放處理機,以免進程陷入忙等