首頁  >  文章  >  臨界區是指並發進程中存取共享變數的什麼

臨界區是指並發進程中存取共享變數的什麼

青灯夜游
青灯夜游原創
2021-01-14 17:17:2914100瀏覽

臨界區是指並發進程中存取共享變數的程式段。臨界區指的是存取共用資源的程式片段,而這些共用資源無法同時被多個執行緒存取的特性。每次只準許一個行程進入臨界區,進入後不允許其他行程進入。

臨界區是指並發進程中存取共享變數的什麼

本教學操作環境:windows7系統、Dell G3電腦。

臨界區是指並發程序中存取共享變數的程式段。

臨界區介紹

臨界區指的是存取共用資源(例如:共用裝置或是共用記憶體)的程式片段,而這些共用資源又無法同時被多個執行緒存取的特性。當有執行緒進入臨界區段時,其他執行緒或是行程必須等待(例如:bounded waiting 等待法),有一些同步的機制必須在臨界區段的進入點與離開點實現,以確保這些共用資源被互斥獲得使用,例如:semaphore。只能被單一執行緒存取的設備,例如:印表機。

每個行程中存取臨界資源的那段程式碼稱為臨界區(Critical Section)(臨界資源是一次只允許一個行程使用的共用資源)。每次只準許一個行程進入臨界區,進入後不允許其他行程進入。不論是硬體臨界資源,還是軟體臨界資源,多個進程必須互斥地對它進行存取。

多個行程中涉及到同一個臨界資源的臨界區稱為相關臨界區。 .

進程進入臨界區的調度原則是:

#1、如果有若干進程要求進入空閒的臨界區,一次只允許一個進程進入。

2、任何時候,處於臨界區內的進程不可多於一個。如已有進程進入自己的臨界區,則其它所有試圖進入臨界區的進程必須等待。

3、進入臨界區的進程要在有限時間內退出,以便其它進程能及時進入自己的臨界區。

4、如果行程無法進入自己的臨界區,則應讓出CPU,避免進程出現「忙等」現象。

相關推薦:《程式設計影片

以上是臨界區是指並發進程中存取共享變數的什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn