死鎖:
兩個或兩個以上併發程序,如果每個程序持有某種資源,而又等待著別的程序釋放它或它們現在保持著的資源,否則就不能向前推進。此時,每個程序都占用了一定的資源,但又都不能向前推進。這種現象稱為死鎖(所有程序的申請都未得到滿足,都在等待別的程序釋放)
死鎖產生的必要條件:
必須具備四個必要條件才會發生死鎖
1)互斥條件:乙個資源每次只能給乙個程序使用。
2)不可剝奪條件:資源申請者不能強行的從資源佔有者手中奪取資源,資源只能由佔有者自願釋放。
3)請求和保持條件:在申請新的資源的同時保持對原有資源的占有。
4)迴圈等待條件:存在乙個程序-等待資源環形鏈
,其中p1等待p2占有的資源,p2等待p3占有的資源,…,pn等待p1占有的資源
處理死鎖的辦法:
1)鴕鳥策略:
採用不理睬策略
2)預防策略:
破壞產生死鎖的四個必要條件。
3)避免策略:
精心的分配資源,動態的迴避死鎖。
4)檢測和解除:
發生死鎖後及時能檢測出,並還能採取措施解除。
預防死鎖的辦法:
預防死鎖的方法是破壞產生死鎖的四個必要條件之一。
1)破壞互斥條件
互斥使用是資源本身特徵所決定的。使用硬軟體結合可改變資源本身特性,例如採用spooling技術可將 「獨享」 印表機改變為「共享」的印表機。
2)破壞不可剝奪條件
乙個程序在申請新的資源不能立即滿足而變為阻塞狀態之前,必須釋放已占有的全部資源
3)破壞請求和保持條件——資源靜態預分配
在執行前,一次性將其所需要的所有資源分配給該程序。
4)迴圈等待條件 ——有序資源使用法把系統中的全部資源分別分給乙個特定的 序號,並且要求每個程序均應嚴格地按照序號遞增的次序請求資源,否則作業系統不予分配。
死鎖的避免:
該方法允許程序動態地申請資源,系統在進行資源分配之前,先計算資源分配的安全性。避免死鎖的實質是使系統不進入不安全狀態
如
----大題:銀行家演算法!!!
死鎖的檢測:
系統的狀態可以用資源分配圖來描述,可用資源分配圖簡化來判斷系統是否處於死鎖狀態
----- 選擇題:資源分配圖化簡!!!
死鎖定理(死鎖狀態的充分條件)當且僅當系統某狀態s所對應的資源分配圖是不可化簡的,則s是死鎖狀態。
死鎖的解除:
1)撤消程序:強制性地從系統中撤消程序並剝奪它們的資源給剩下的程序使用:
a.程序的優先數;
b.重新啟動它並執行到當前撤消點所需的代價;
2)剝奪資源:掛起和解掛機構:
從被掛起程序那裡強佔資源以解除死鎖
little tips:
安全狀態/不安全狀態:是否有安全串行使每個程序都能順利完成,安全狀態是會有安全序列號的
產生死鎖的基本原因是資源分配不當和程序推進順序非法
死鎖是一種與時間有關的錯誤
同步互斥、臨界區、經典問題
大題:pv操作前驅後繼,同步互斥問題
前驅圖只要有環就是死鎖
程序之間的關係—同步與互斥:
1直接相互制約–相互功能合作關係、同步關係 「程序-程序」關係 如司機與售票員
程序必須通過相互協作共同完成任務
2間接相互制約–資源共享關係、互斥關係 「程序-資源-程序」 如印表機
因共享資源而使併發執行的各程序之間產生的關係
互斥:指多個程序不能同時使用同乙個資源;
死鎖:指多個程序互不相讓,都得不到足夠的資源;
飢餓:指乙個程序一直得不到資源(其他程序可能輪流占用資源
臨界區與臨界資源
程序的互斥是由於共享資源而引起的。系統中一次只允許乙個程序訪問的資源。
併發執行的程序中, 訪問臨界資源的必須互斥執行的程式段叫臨界區。
多個相關程序在執行次序上的協調稱為程序同步。用於保證多個程序在執行次序上的協調關係的相應機制稱為程序同步機制。
程序同步機制應該遵守的準則:
空閒讓進:若臨界區空閒,則如果有程序發出請求,則讓其進入自己的臨界區
忙則等待:若已有程序進入臨街區,則如果有別的程序發出請求,必須等待,以保證互斥訪問。
有限等待:保證程序在有限時間內能在有限時間內訪問。
讓權等待:若程序不能進入臨界區,應釋放處理機,以免陷入忙等狀態。
進入自己的臨界區
2.忙則等待:若已有程序進入臨街區,則如果有別的程序發出請求,必須等待,以保證互斥訪問。
3.有限等待:保證程序在有限時間內能在有限時間內訪問。
4.讓權等待:若程序不能進入臨界區,應釋放處理機,以免陷入忙等狀態。
作業系統(1)
共享 共享和併發是作業系統的兩個最基本的特徵,二者互為存在條件 虛擬 虛擬是指把乙個物理上的實體變為若干個邏輯上的對應物。物理實體是實際存在的,而邏輯上對應物是使用者感受到的。例如 時分復用技術 非同步 在多道程式環境下,允許多個程式併發執行,單由於資源有限,程序的執行不是一貫到底的,而是走走停停,...
作業系統(1)
1 顯示主頁的過程 2 狀態碼 3 各種協議與http之間的關係 4 http長連線 短連線 1 周一至周五晚上 7 點 晚上10點 2 週六上午 9 點 上午 11 點 3 週日下午 3 點 下午 6 點 作業系統 operating system,簡稱 os 是管理計算機硬體與軟體資源的程式,是...
作業系統1
作業系統定義 作業系統是一組控制和管理計算機硬體和軟體資源,合理地對各類作業進行排程,以及方便使用者使用計算機的程式的集合。作業系統的目標 方便性 使計算機系統更易於使用。有效性 利用率和吞吐量。可擴充性 能方便地增加新的功能和模組,並能修改老的模組。開放性 使其與其他的系統之間能彼此相容 方便地實...