一、程序同步的基本概念
1.臨界資源。一次僅允許乙個程序使用的資源稱為臨界資源。對臨界資源的訪問,必須互斥地進行,
在每個程序中,訪問臨界資源的那段**稱為臨界區,為了保證臨界資源的正確使用,可把臨界資源的
訪問過程分為四個部分:
進入區。為了進入臨界區使用臨界資源,在進入去要檢查可否進入臨界區,若能進入臨界區,則
應設定正在訪問臨界區的標誌,以組織其他程序同時進入臨界區。
臨界區。程序中訪問臨界資源的那段**,又稱臨界段,
退出區。將正在訪問臨界區的標誌清除。
剩餘區。**中的其餘部分。
2.同步。同步亦稱直接制約關係,是指未完成某種任務而建立的兩個或多個就程序,這些程序因為
需要在某些位置上協調它們的工作次序而等待、傳遞資訊所產生的制約關係。程序間的直接制約
關係源於它們之間的相互合作。
3.互斥。互斥也稱間接制約關係。當乙個程序進入臨界區使用臨界資源時,另乙個程序必須等待。
當占用臨界資源的進出臨界區後,另一程序才允許去訪問此臨界資源。
為禁止兩個程序同時進入臨界區,同步機制應遵循以下準則:
空閒讓進、忙則等待、有限等待、讓權等待(當程序不能進入臨界區時,應立即釋放處理器)
二、實現臨界區互斥的基本方法
1.軟體實現方法。在進入區設定並檢查一些標誌來標明是否有程序在臨界區,若已有程序在臨界
區,則在進入區通過迴圈檢查進行等待,程序離開臨界區後則在退出區修改標誌。
2.硬體實現方法。計算機提供了特殊的硬體指令,允許對乙個字中的內容進行檢測和修正,或對兩
個字的內容進行交換等。通過硬體支援實現臨界段問題的方法稱為低階方法,或稱元方法。(1
)中斷遮蔽方法。
程序同步(一) 程序同步相關概念
在os中引入程序後,雖然提高了資源的利用率和系統吞吐量,但是由於程序的非同步性將會給系統造成混亂,尤其是他們在爭搶臨界資源時。當多個程序去爭用共享變數 鍊錶時,可能導致資料處理出錯。程序同步的任務就是對多個相關程序在執行次序上進行協調,使得併發執行的程序之間能有效地共享資源和相互合作,從而使程式的執...
Linux程序同步
linux程序同步 概述 程序間通訊 ipc 方法主要有以下幾種 管道 fifo 共享記憶體 訊息佇列 訊號量 1.管道中還有命名管道和非命名管道 即匿名管道 之分,非命名管道 即匿名管道 只能用於父子程序通訊,命名管道可用於非父子程序,命名管道就是fifo,管道是先進先出的通訊方式 2.訊息佇列是...
程序同步問題
有讀者和寫者兩組併發程序,共享乙個檔案,當兩個或以上的讀程序同時訪問共享資料時不會產生 但若某個寫程序和其他程序 讀程序或寫程序 同時訪問共享資料時則可能導致資料不一致的錯誤。因此要求 允許多個讀者可以同時對檔案執行讀操作 只允許乙個寫者往檔案中寫資訊 任一寫者在完成寫操作之前不允許其他讀者或寫者工...