臨界區是指並發進程中存取共享變數的程式段。臨界區指的是存取共用資源的程式片段,而這些共用資源無法同時被多個執行緒存取的特性。每次只準許一個行程進入臨界區,進入後不允許其他行程進入。
本教學操作環境:windows7系統、Dell G3電腦。
臨界區是指並發程序中存取共享變數的程式段。
臨界區介紹
臨界區指的是存取共用資源(例如:共用裝置或是共用記憶體)的程式片段,而這些共用資源又無法同時被多個執行緒存取的特性。當有執行緒進入臨界區段時,其他執行緒或是行程必須等待(例如:bounded waiting 等待法),有一些同步的機制必須在臨界區段的進入點與離開點實現,以確保這些共用資源被互斥獲得使用,例如:semaphore。只能被單一執行緒存取的設備,例如:印表機。
每個行程中存取臨界資源的那段程式碼稱為臨界區(Critical Section)(臨界資源是一次只允許一個行程使用的共用資源)。每次只準許一個行程進入臨界區,進入後不允許其他行程進入。不論是硬體臨界資源,還是軟體臨界資源,多個進程必須互斥地對它進行存取。
多個行程中涉及到同一個臨界資源的臨界區稱為相關臨界區。 .
進程進入臨界區的調度原則是:
#1、如果有若干進程要求進入空閒的臨界區,一次只允許一個進程進入。
2、任何時候,處於臨界區內的進程不可多於一個。如已有進程進入自己的臨界區,則其它所有試圖進入臨界區的進程必須等待。
3、進入臨界區的進程要在有限時間內退出,以便其它進程能及時進入自己的臨界區。
4、如果行程無法進入自己的臨界區,則應讓出CPU,避免進程出現「忙等」現象。
相關推薦:《程式設計影片》
以上是臨界區是指並發進程中存取共享變數的什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!