併發性 互斥和同步 死鎖和飢餓

2021-07-02 04:55:04 字數 1229 閱讀 3432

二、併發的原理

在單處理器多道程式設計系統中,程序被交替執行,表現出一種併發執行的外部特徵。即使不能實現真正的並行處理,並且在程序間來回切換也需要一定的開銷,交替執行在處理效率和程式結構上還是帶來了重要的好處。在多處理器系統中,不僅可以交替執行程序,而且可以重疊執行程序。

三、程序的互動

我們可以根據程序相互之間知道對方是否存在的程度,對程序的互動方式進行分類:

四、互斥

互斥的要求:

必須強制實施互斥:在與相同資源或共享物件的臨界區有關的所有程序中,一次只允許乙個程序進入臨界區

乙個在非臨界區停止的程序不能干涉其他程序

決不允許出現需要訪問臨界區的程序被無限延遲的情況,即不會死鎖或飢餓

當沒有程序在臨界區時,任何需要進入臨界區的程序必須能夠立即進入

對相關程序耳朵執行速度和數目沒有任何要求和限制

乙個程序駐留在臨界區中的時間必須是有限的

實現互斥的幾種方法:中斷禁用;專用機器指令;訊號量;管程;訊息傳遞

五、死鎖

資源通常可以分為兩類:可重用資源和可消耗資源。

可重用資源:指一次只能供乙個程序安全地使用,並且不會由於使用而耗盡的資源。

可消耗資源:可以被建立和銷毀的資源。通常對某種型別可消耗資源的數目沒有限制,乙個無阻塞的生產程序可以建立任意數目的這類資源。當消費程序得到乙個資源時,該資源就不再存在了。

死鎖的原因:競爭資源,程序推進順序不當。

死鎖的條件:

互斥(必要條件):一次只有乙個程序可以使用乙個資源

占有且等待(必要條件):當乙個程序等待其他程序時,繼續占有已經分配的資源

不可搶占(必要條件):不能搶占程序已經占有的資源

死鎖預防:試圖設計一種系統來排除發生死鎖的可能性。

間接的死鎖預防方法:防止三個必要條件的任何乙個發生。

直接的死鎖預防方法:防止迴圈等待的發生

死鎖避免:兩種死鎖避免方法。

優點:不需要死鎖預防中的搶占和回滾程序,比死鎖預防限制少

缺點:必須事先宣告每個程序請求的最大資源

執行順序不能有任何同步限制

分配資源數目必須固定

在占有資源時,程序不能退出

死鎖檢測:檢測時機:

檢測時機處決於:死鎖發生的頻率,死鎖影響的程序數量。

併發 死鎖和飢餓

死鎖原理 一組相互競爭系統資源或進行通訊的程序間的 永久 阻塞。當一組程序中的每個程序都在等待某個事件,而只有這組程序中的其他被阻塞程序才可以觸發該事件,這時就稱這組程序發生死鎖。所有死鎖都涉及兩個或多個程序之間對資源需求的衝突。可重用資源是指一次只能供乙個程序安全地使用,並且不會由於使用而耗盡的資...

併發 死鎖和飢餓

死鎖的原理 當一組程序中的每個程序都在等待某個事件 如等待所請求的資源釋放 而只有在這組程序中的其他被阻塞的程序才可以觸發該事件,這是就稱這組程序發生死鎖。因為沒有事件能夠被觸發,故死鎖是永久性的。可重用資源 指一次只能供乙個程序安全地使用,並且不會由於使用而耗盡的資源。如處理器 i o通道 記憶體...

第五章 併發性 互斥和同步

一 併發 1 定義 併發 在作業系統中,是指乙個時間段中有幾個程式都處於已啟動執行到執行完畢之間,且這幾個程式都是在同乙個處理機上執行,但任乙個時刻點上只有乙個程式在處理機上執行。2 特點 作業系統併發程式執行的特點 併發環境下,由於程式的封閉性被打破,出現了新的特點 程式與計算不再一一對應,乙個程...