程序同步的基本概念 臨界資源 同步和互斥

2022-02-20 10:21:11 字數 703 閱讀 4341

在多道程式環境下,程序是併發執行的,不同程序之間存在著不同的相互制約關係。為了協調程序之間的相互制約關係,引入了程序同步的概念。

雖然多個程序可以共享系統中的各種資源,但其中許多資源一次只能為乙個程序所使用,我們把一次僅允許乙個程序使用的資源稱為臨界資源。許多物理裝置都屬於臨界資源,如印表機等。此外,還有許多變數、資料等都可以被若干程序共享,也屬於臨界資源。

對臨界資源的訪問,必須互斥地進行,在每個程序中,訪問臨界資源的那段**稱為臨界區。為了保證臨界資源的正確使用,可以把臨界資源的訪問過程分成四個部分:

do while (true)

同步亦稱直接制約關係,它是指為完成某種任務而建立的兩個或多個程序,這些程序因為需要在某些位置上協調它們的工作次序而等待、傳遞資訊所產生的制約關係。程序間的直接制約關係就是源於它們之間的相互合作。

例如,輸入程序a通過單緩衝向程序b提供資料。當該緩衝區空時,程序b不能獲得所需資料而阻塞,一旦程序a將資料送入緩衝區,程序b被喚醒。反之,當緩衝區滿時,程序a被阻塞,僅當程序b取走緩衝資料時,才喚醒程序a。

互斥亦稱間接制約關係。當乙個程序進入臨界區使用臨界資源時,另乙個程序必須等待, 當占用臨界資源的程序退出臨界區後,另一程序才允許去訪問此臨界資源。

例如,在僅有一台印表機的系統中,有兩個程序a和程序b,如果程序a需要列印時,系統已將印表機分配給程序b,則程序a必須阻塞。一旦程序b將印表機釋放,系統便將程序a喚醒,並將其由阻塞狀態變為就緒狀態。

程序同步和互斥概念,臨界資源

制約關係的型別 根據共享資源性質的不同,可分為 同步 指兩個或兩個以上的程序由於某種時序上的限制而形成的相互合作的制約關係。直接制約關係 互斥 指兩個或兩個以上的程序由於競爭資源而形成的制約關係。間接制約關係 下列活動分別屬於哪種制約關係?同步 直接制約 互斥 間接制約 程序 程序 程序 資源 程序...

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

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

OS筆記 14 程序同步篇 基本概念

程序同步要解決什麼問題?在os中引入程序後,如果不進行妥善的管理,必然會因為這些程序對系統資源的無序爭奪而給系統造成混亂。致使每次處理的結果存在不確定性,即程式執行結果的不可再現性。為保證多個程序能有條不紊地執行,在多道程式系統中,必須引入程序同步機制。程序同步機制的主要任務,是對多個相關程序在執行...