二、併發的原理
在單處理器多道程式設計系統中,程序被交替執行,表現出一種併發執行的外部特徵。即使不能實現真正的並行處理,並且在程序間來回切換也需要一定的開銷,交替執行在處理效率和程式結構上還是帶來了重要的好處。在多處理器系統中,不僅可以交替執行程序,而且可以重疊執行程序。
三、程序的互動
我們可以根據程序相互之間知道對方是否存在的程度,對程序的互動方式進行分類:
四、互斥
互斥的要求:
必須強制實施互斥:在與相同資源或共享物件的臨界區有關的所有程序中,一次只允許乙個程序進入臨界區
乙個在非臨界區停止的程序不能干涉其他程序
決不允許出現需要訪問臨界區的程序被無限延遲的情況,即不會死鎖或飢餓
當沒有程序在臨界區時,任何需要進入臨界區的程序必須能夠立即進入
對相關程序耳朵執行速度和數目沒有任何要求和限制
乙個程序駐留在臨界區中的時間必須是有限的
實現互斥的幾種方法:中斷禁用;專用機器指令;訊號量;管程;訊息傳遞
五、死鎖
資源通常可以分為兩類:可重用資源和可消耗資源。
可重用資源:指一次只能供乙個程序安全地使用,並且不會由於使用而耗盡的資源。
可消耗資源:可以被建立和銷毀的資源。通常對某種型別可消耗資源的數目沒有限制,乙個無阻塞的生產程序可以建立任意數目的這類資源。當消費程序得到乙個資源時,該資源就不再存在了。
死鎖的原因:競爭資源,程序推進順序不當。
死鎖的條件:
互斥(必要條件):一次只有乙個程序可以使用乙個資源
占有且等待(必要條件):當乙個程序等待其他程序時,繼續占有已經分配的資源
不可搶占(必要條件):不能搶占程序已經占有的資源
死鎖預防:試圖設計一種系統來排除發生死鎖的可能性。
間接的死鎖預防方法:防止三個必要條件的任何乙個發生。
直接的死鎖預防方法:防止迴圈等待的發生
死鎖避免:兩種死鎖避免方法。
優點:不需要死鎖預防中的搶占和回滾程序,比死鎖預防限制少
缺點:必須事先宣告每個程序請求的最大資源
執行順序不能有任何同步限制
分配資源數目必須固定
在占有資源時,程序不能退出
死鎖檢測:檢測時機:
檢測時機處決於:死鎖發生的頻率,死鎖影響的程序數量。
併發 死鎖和飢餓
死鎖原理 一組相互競爭系統資源或進行通訊的程序間的 永久 阻塞。當一組程序中的每個程序都在等待某個事件,而只有這組程序中的其他被阻塞程序才可以觸發該事件,這時就稱這組程序發生死鎖。所有死鎖都涉及兩個或多個程序之間對資源需求的衝突。可重用資源是指一次只能供乙個程序安全地使用,並且不會由於使用而耗盡的資...
併發 死鎖和飢餓
死鎖的原理 當一組程序中的每個程序都在等待某個事件 如等待所請求的資源釋放 而只有在這組程序中的其他被阻塞的程序才可以觸發該事件,這是就稱這組程序發生死鎖。因為沒有事件能夠被觸發,故死鎖是永久性的。可重用資源 指一次只能供乙個程序安全地使用,並且不會由於使用而耗盡的資源。如處理器 i o通道 記憶體...
第五章 併發性 互斥和同步
一 併發 1 定義 併發 在作業系統中,是指乙個時間段中有幾個程式都處於已啟動執行到執行完畢之間,且這幾個程式都是在同乙個處理機上執行,但任乙個時刻點上只有乙個程式在處理機上執行。2 特點 作業系統併發程式執行的特點 併發環境下,由於程式的封閉性被打破,出現了新的特點 程式與計算不再一一對應,乙個程...