2017年自考工學(xué)類“操作系統(tǒng)原理”復(fù)習(xí)資料(9)

字號:

本章考核知識點 :1、死鎖的產(chǎn)生 2、死鎖的防止 3、死鎖的避免4、死鎖的檢測
    本章自學(xué)要求 :理解“死鎖”影響系統(tǒng)的可靠性。死鎖的產(chǎn)生與進程對資源的需求、進程的執(zhí)行速度、資源的分配策略有關(guān)。系統(tǒng)應(yīng)采用一定的策略實現(xiàn)資源分配以保證系統(tǒng)的安全。
    本章重點是 :死鎖的 防止 和 避免 .
    一、死鎖的產(chǎn)生( 領(lǐng)會 )
    話說狼GG和狼MM面對面走上一根獨木橋。
    狼GG說:呵呵,小MM,我已經(jīng)占領(lǐng)了這座橋的一半,你不如退出去讓我先過去吧。
    狼MM說,哼哼,老兄,我也占了這座橋的一半,你咋不讓給我?
    狼GG和狼MM互不相讓,都在等對方先讓步。結(jié)果兩個都過不了河。等著獵人來處理后事了。
    1、什么叫 死鎖 : 若系統(tǒng)中存在一組進程(兩個或多個進程),它們中的每一個進程都占用了某種資源而又都在等待其中另一個進程所占用的資源,這種等待永遠不能結(jié)束,則說系統(tǒng)出現(xiàn)了“死鎖”?;蛘f這組進程處于“死鎖”狀態(tài)。
    2、引起死鎖的因素:死鎖的出現(xiàn)除了與資源的分配策略有關(guān)外,也與并發(fā)進程的執(zhí)行速度有關(guān),即操作系統(tǒng)對資源管理不得當(dāng)或沒有顧及進程并發(fā)執(zhí)行時可能出現(xiàn)的情況,則就可能形成死鎖。
    二、死鎖的防止( 簡單應(yīng)用 )   我們把橋的一半看作一個資源的話,那么,當(dāng)狼MM占用了其中一個資源后,狼GG就只好等待了。
    狼GG狼MM各自占有了一段資源又在等另外的資源,又不肯放棄自己占有的資源。
    他們又不能把對方踢下河去,把另一段資源搶過來自己用。
    只好互相等待了。
    這4個條件是必要條件而不是充分條件,意思是,只要發(fā)生死鎖,那么這四個條件必然都成立。反之則不然,有時候即使四個條件都滿足,那也不一定發(fā)生死鎖。(從資源分配圖中可以分析得到,即使形成循環(huán)等待資源,也不一定形成死鎖。)
    1、系統(tǒng)出現(xiàn)死鎖必然同時保持的四個必要條件:
    1)互斥使用資源
    2)占有并等待資源
    3)不可搶奪資源
    4)循環(huán)等待資源
    2、死鎖的 防止策略 :要防止死鎖形成,只要采用的資源分配策略能使上述4個條件中有一個條件不成立就可以了。
    1)破壞互斥使用資源的條件經(jīng)常是行不通的。因為資源本身特性就是互斥使用的。
    2)要破壞“占有并等待條件”則可以采取兩種辦法: 靜態(tài)分配 和 釋放已占資源 .
    靜態(tài)分配 也稱為 預(yù)分配資源 ,要求每一個進程在開始執(zhí)行前就申請它所需要的全部資源,僅當(dāng)系統(tǒng)能滿足進程的資源申請要求且把資源分配給進程后,該進程才能開始執(zhí)行。
    釋放已占資源 就是指進程申請資源時必須沒有占用資源,如果已經(jīng)占用了資源就要先歸還所占的資源再申請。
    3)實現(xiàn) 可搶奪式分配 :如果一個進程已經(jīng)占有了某些資源又要申請新資源,而新資源不能滿足(已被其它進程占用)必須等待時,系統(tǒng)可以搶奪該進程已占有的資源。
    4)實現(xiàn) 按序分配 :把系統(tǒng)中所有資源排一個順序,對每一個資源給一個確定的編號,規(guī)定任何一個進程申請兩個以上的資源時,總是先申請編號小的資源,再申請編號大的資源。