不論是硬體臨界資源,還是軟體臨界資源,多個進程必須互斥地對它進行訪問。每個進程中訪問臨界資源的那段代碼稱為臨界區(Critical Section)。
每個進程中訪問臨界資源的那段程式稱為臨界區(Critical Section)(臨界資源是一次僅允許一個進程使用的共享資源)。每次只準許一個進程進入臨界區,進入後不允許其他進程進入。不論是硬體臨界資源,還是軟體臨界資源,多個進程必須互斥地對它進行訪問。
多個進程中涉及到同一個臨界資源的臨界區稱為相關臨界區。
進程進入臨界區的調度原則是:
①如果有若干進程要求進入空閒的臨界區,一次僅允許一個進程進入。
②任何時候,處於臨界區內的進程不可多於一個。如已有進程進入自己的臨界區,則其它所有試圖進入臨界區的進程必須等待。
③進入臨界區的進程要在有限時間內退出,以便其它進程能及時進入自己的臨界區。
④如果進程不能進入自己的臨界區,則應讓出CPU,避免進程出現“忙等”現象。
如果有多個執行緒試圖同時訪問臨界區,那么在有一個執行緒進入後其他所有試圖訪問此臨界區的執行緒將被掛起,並一直持續到進入臨界區的執行緒離開。臨界區在被釋放後,其他執行緒可以繼續搶占,並以此達到用原子方式操作共享資源的目的。
臨界區在使用時以CRITICAL_SECTION結構對象保護共享資源,並分別用EnterCriticalSection()和LeaveCriticalSection()函式去標識和釋放一個臨界區。所用到的CRITICAL_SECTION結構對象必須經過InitializeCriticalSection()的初始化後才能使用,而且必須確保所有執行緒中的任何試圖訪問此共享資源的代碼都處在此臨界區的保護之下。否則臨界區將不會起到應有的作用,共享資源依然有被破壞的可能。
相關詞條
-
臨界
臨界是指由某一種狀態或物理量轉變為另一種狀態或物理量的最低轉化條件;或者由一種狀態或物理量轉變為另一種狀態或物理量。
詞語概念 詳細解釋 相關含義 臨界動漫協會 書籍名稱 -
臨界區
臨界區 指的是一個訪問共用資源(例如:共用設備或是共用存儲器)的程式片段,而這些共用資源又無法同時被多個執行緒訪問的特性。當有執行緒進入臨界區段時,其他執行緒...
簡介 程式調度法則 執行緒同步問題 臨界區存在的幾個問題 -
臨界資源
多道程式系統中存在許多進程,它們共享各種資源,然而有很多資源一次只能供一個進程使用。一次僅允許一個進程使用的資源稱為臨界資源。許多物理設備都屬於臨界資源...
簡介 事例 -
臨界[低轉化條件]
臨界是指由某一種狀態或物理量轉變為另一種狀態或物理量的最低轉化條件;或者由一種狀態或物理量轉變為另一種狀態或物理量。 ①每種物質都有一個特定的溫度,在這...
概念 詳細解釋 相關含義 -
臨界段
使用Windows提供的其它的某些特性,臨界段就是其中之一。 臨界段也稱作關鍵代碼段,它是指一個個小代碼段,在它能夠執行前,它必須...臨界段 當必須以原子操作方式來修改單個值時,互鎖函式...
-
critical section
訪問。每個執行緒中訪問臨界資源的那段代碼稱為臨界區(Critical...執行緒中的任何試圖訪問此共享資源的代碼都處在此臨界區的保護之下。否則臨界區將...,使他們依次執行或者加兩種鎖,兩個方式同時執行實例下面通過一段代碼展示了臨界區...
簡介 實例 -
計算機並發性
,直到其所申請的臨界資源被釋放。而進程內訪問臨界資源的代碼被成為臨界區...區:清除臨界區被占用的標誌4.剩餘區:進程與臨界區不相關部分的代碼互斥...臨界區使用臨界資源時,另一個進程必須等待。只有當使用臨界資源的進程退出...
環境 進程同步互斥 基本方法 問題 -
執行緒編程
進入到臨界區,則該函式就會一直等到那個執行緒執行完臨界區代碼。 3.離開臨界區。當執行完臨界區代碼後,需要調用...多個不同的代碼模組。 在一般情況下,創建一個執行緒是不能提高程式的執行...
執行緒 多執行緒 CreateThread函式說明 多執行緒與執行緒同步的C++具體實現代碼: -
Peterson算法
完成退出臨界區的代碼,即該進程當前的狀態與臨界區關係不大。• 有限等待...真,表示ID號為n的進程希望進入該臨界區.,變數 turn保存有權訪問...[0]=true,則P1不能進入臨界區。如果P1已經進入臨界區,那么...
算法概要 實現方法 說明 三個標準