2 3 程序同步

2021-10-13 10:06:07 字數 868 閱讀 3492

一、程序同步的基本概念

1.臨界資源。一次僅允許乙個程序使用的資源稱為臨界資源。對臨界資源的訪問,必須互斥地進行,

在每個程序中,訪問臨界資源的那段**稱為臨界區,為了保證臨界資源的正確使用,可把臨界資源的

訪問過程分為四個部分:

進入區。為了進入臨界區使用臨界資源,在進入去要檢查可否進入臨界區,若能進入臨界區,則

應設定正在訪問臨界區的標誌,以組織其他程序同時進入臨界區。

臨界區。程序中訪問臨界資源的那段**,又稱臨界段,

退出區。將正在訪問臨界區的標誌清除。

剩餘區。**中的其餘部分。

2.同步。同步亦稱直接制約關係,是指未完成某種任務而建立的兩個或多個就程序,這些程序因為

需要在某些位置上協調它們的工作次序而等待、傳遞資訊所產生的制約關係。程序間的直接制約

關係源於它們之間的相互合作。

3.互斥。互斥也稱間接制約關係。當乙個程序進入臨界區使用臨界資源時,另乙個程序必須等待。

當占用臨界資源的進出臨界區後,另一程序才允許去訪問此臨界資源。

為禁止兩個程序同時進入臨界區,同步機制應遵循以下準則:

空閒讓進、忙則等待、有限等待、讓權等待(當程序不能進入臨界區時,應立即釋放處理器)

二、實現臨界區互斥的基本方法

1.軟體實現方法。在進入區設定並檢查一些標誌來標明是否有程序在臨界區,若已有程序在臨界

區,則在進入區通過迴圈檢查進行等待,程序離開臨界區後則在退出區修改標誌。

2.硬體實現方法。計算機提供了特殊的硬體指令,允許對乙個字中的內容進行檢測和修正,或對兩

個字的內容進行交換等。通過硬體支援實現臨界段問題的方法稱為低階方法,或稱元方法。(1

)中斷遮蔽方法。

程序同步(一) 程序同步相關概念

在os中引入程序後,雖然提高了資源的利用率和系統吞吐量,但是由於程序的非同步性將會給系統造成混亂,尤其是他們在爭搶臨界資源時。當多個程序去爭用共享變數 鍊錶時,可能導致資料處理出錯。程序同步的任務就是對多個相關程序在執行次序上進行協調,使得併發執行的程序之間能有效地共享資源和相互合作,從而使程式的執...

Linux程序同步

linux程序同步 概述 程序間通訊 ipc 方法主要有以下幾種 管道 fifo 共享記憶體 訊息佇列 訊號量 1.管道中還有命名管道和非命名管道 即匿名管道 之分,非命名管道 即匿名管道 只能用於父子程序通訊,命名管道可用於非父子程序,命名管道就是fifo,管道是先進先出的通訊方式 2.訊息佇列是...

程序同步問題

有讀者和寫者兩組併發程序,共享乙個檔案,當兩個或以上的讀程序同時訪問共享資料時不會產生 但若某個寫程序和其他程序 讀程序或寫程序 同時訪問共享資料時則可能導致資料不一致的錯誤。因此要求 允許多個讀者可以同時對檔案執行讀操作 只允許乙個寫者往檔案中寫資訊 任一寫者在完成寫操作之前不允許其他讀者或寫者工...