每個進程中訪問臨界資源的那段程序稱為臨界區,每次只准許一個進程進入臨界區,進入后不允許其他進程進入。
① 如果有若干進程要求進入空閑的臨界區,一次僅允許一個進程進入。(加鎖)
② 任何時候,處於臨界區內的進程不可多於一個。如已有進程進入自己的臨界區,則其它所有試圖進入臨界區的進程必須等待。
③ 進入臨界區的進程要在有限時間內退出,以便其它進程能及時進入自己的臨界區(一次只能進一個,不同的進程可能有相同的臨界區,不同用戶的不同任務之間的進程是有臨界區,比如打印機,如打印程序是可以由不同用戶的不同進程使用,但是只能有一個進程在某一時刻進入。)
④ 如果進程不能進入自己的臨界區,則應讓出 CPU,避免進程出現“忙等”現象。
總結:互斥使用、有空讓進 、忙則等待、有限等待