當(dāng)前位置: 首頁(yè) > 自學(xué)考試 > 自學(xué)考試備考資料 > 2012年自考工學(xué)類“操作系統(tǒng)原理”復(fù)習(xí)資料(8)

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

更新時(shí)間:2012-10-30 11:12:50 來(lái)源:|0 瀏覽0收藏0

自學(xué)考試報(bào)名、考試、查分時(shí)間 免費(fèi)短信提醒

地區(qū)

獲取驗(yàn)證 立即預(yù)約

請(qǐng)?zhí)顚?xiě)圖片驗(yàn)證碼后獲取短信驗(yàn)證碼

看不清楚,換張圖片

免費(fèi)獲取短信驗(yàn)證碼

  本章考核知識(shí)點(diǎn):1、死鎖的產(chǎn)生2、死鎖的防止3、死鎖的避免4、死鎖的檢測(cè)

  本章自學(xué)要求:理解“死鎖”影響系統(tǒng)的可靠性。死鎖的產(chǎn)生與進(jìn)程對(duì)資源的需求、進(jìn)程的執(zhí)行速度、資源的分配策略有關(guān)。系統(tǒng)應(yīng)采用一定的策略實(shí)現(xiàn)資源分配以保證系統(tǒng)的安全。

  本章重點(diǎn)是:死鎖的防止和避免。

  一、死鎖的產(chǎn)生(領(lǐng)會(huì))轉(zhuǎn)自環(huán) 球 網(wǎng) 校edu24ol.com

  話說(shuō)狼GG和狼MM面對(duì)面走上一根獨(dú)木橋。

  狼GG說(shuō):呵呵,小MM,我已經(jīng)占領(lǐng)了這座橋的一半,你不如退出去讓我先過(guò)去吧。

  狼MM說(shuō),哼哼,老兄,我也占了這座橋的一半,你咋不讓給我?

  狼GG和狼MM互不相讓,都在等對(duì)方先讓步。結(jié)果兩個(gè)都過(guò)不了河。等著獵人來(lái)處理后事了。

  1、什么叫死鎖:若系統(tǒng)中存在一組進(jìn)程(兩個(gè)或多個(gè)進(jìn)程),它們中的每一個(gè)進(jìn)程都占用了某種資源而又都在等待其中另一個(gè)進(jìn)程所占用的資源,這種等待永遠(yuǎn)不能結(jié)束,則說(shuō)系統(tǒng)出現(xiàn)了“死鎖”?;蛘f(shuō)這組進(jìn)程處于“死鎖”狀態(tài)。

  2、引起死鎖的因素:死鎖的出現(xiàn)除了與資源的分配策略有關(guān)外,也與并發(fā)進(jìn)程的執(zhí)行速度有關(guān),即操作系統(tǒng)對(duì)資源管理不得當(dāng)或沒(méi)有顧及進(jìn)程并發(fā)執(zhí)行時(shí)可能出現(xiàn)的情況,則就可能形成死鎖。

  二、死鎖的防止(簡(jiǎn)單應(yīng)用)  我們把橋的一半看作一個(gè)資源的話,那么,當(dāng)狼MM占用了其中一個(gè)資源后,狼GG就只好等待了。

  狼GG狼MM各自占有了一段資源又在等另外的資源,又不肯放棄自己占有的資源。

  他們又不能把對(duì)方踢下河去,把另一段資源搶過(guò)來(lái)自己用。

  只好互相等待了。

  這4個(gè)條件是必要條件而不是充分條件,意思是,只要發(fā)生死鎖,那么這四個(gè)條件必然都成立。反之則不然,有時(shí)候即使四個(gè)條件都滿足,那也不一定發(fā)生死鎖。(從資源分配圖中可以分析得到,即使形成循環(huán)等待資源,也不一定形成死鎖。)

  1、系統(tǒng)出現(xiàn)死鎖必然同時(shí)保持的四個(gè)必要條件:

  1)互斥使用資源

  2)占有并等待資源

  3)不可搶奪資源

  4)循環(huán)等待資源

  2、死鎖的防止策略:要防止死鎖形成,只要采用的資源分配策略能使上述4個(gè)條件中有一個(gè)條件不成立就可以了。

  1)破壞互斥使用資源的條件經(jīng)常是行不通的。因?yàn)橘Y源本身特性就是互斥使用的。

  2)要破壞“占有并等待條件”則可以采取兩種辦法:靜態(tài)分配和釋放已占資源。

  靜態(tài)分配也稱為預(yù)分配資源,要求每一個(gè)進(jìn)程在開(kāi)始執(zhí)行前就申請(qǐng)它所需要的全部資源,僅當(dāng)系統(tǒng)能滿足進(jìn)程的資源申請(qǐng)要求且把資源分配給進(jìn)程后,該進(jìn)程才能開(kāi)始執(zhí)行。

  釋放已占資源就是指進(jìn)程申請(qǐng)資源時(shí)必須沒(méi)有占用資源,如果已經(jīng)占用了資源就要先歸還所占的資源再申請(qǐng)。

  3)實(shí)現(xiàn)可搶奪式分配:如果一個(gè)進(jìn)程已經(jīng)占有了某些資源又要申請(qǐng)新資源,而新資源不能滿足(已被其它進(jìn)程占用)必須等待時(shí),系統(tǒng)可以搶奪該進(jìn)程已占有的資源。

  4)實(shí)現(xiàn)按序分配:把系統(tǒng)中所有資源排一個(gè)順序,對(duì)每一個(gè)資源給一個(gè)確定的編號(hào),規(guī)定任何一個(gè)進(jìn)程申請(qǐng)兩個(gè)以上的資源時(shí),總是先申請(qǐng)編號(hào)小的資源,再申請(qǐng)編號(hào)大的資源。

  三、死鎖的避免(簡(jiǎn)單應(yīng)用)  死鎖的避免不同于死鎖的防止,死鎖的防止是采用某種分配策略后,系統(tǒng)就不會(huì)產(chǎn)生死鎖,這好比是你打過(guò)了某種預(yù)防針,再也不會(huì)得那種病。而死鎖的避免是沒(méi)有打預(yù)防針,但是通過(guò)其他辦法,避免得病。因此有“安全狀態(tài)”的說(shuō)法,對(duì)應(yīng)的,當(dāng)然也有不安全狀態(tài)。就像人都有得病的可能,不必任何病都打預(yù)防針。只要注意防病,仍然可以安全健康的生活。

  1、安全狀態(tài):如果操作系統(tǒng)能保證所有的進(jìn)程在有限的時(shí)間內(nèi)得到需要的全部資源,則稱系統(tǒng)處于“安全狀態(tài)”。

  2、區(qū)分死鎖的避免與死鎖的防止:當(dāng)采用了防止死鎖的資源分配策略后,系統(tǒng)中就不會(huì)形成死鎖。但是可以防止死鎖的資源分配策略中,有的只適用于對(duì)某些資源的分配,有的會(huì)影響資源的使用效率。這時(shí)可用使用死鎖的避免。

  死鎖的避免是解決死鎖的另一種方法,它不同于死鎖的防止。在系統(tǒng)中不采用防止死鎖的資源分配策略,而是估計(jì)到可能有死鎖發(fā)生時(shí)避免死鎖的發(fā)生。

  3、銀行算法是怎樣避免死鎖的:

  銀行家算法是這樣的:

  1)當(dāng)一個(gè)用戶對(duì)資金的最大的需求量不超過(guò)銀行家現(xiàn)有的資金時(shí)就可以接納該用戶。

  2)用戶可以分期貸款,但貸款的總數(shù)不能超過(guò)最大需求量。

  3)當(dāng)銀行家現(xiàn)有的資金不能滿足用戶的尚需貸款時(shí),對(duì)用戶的貸款可推遲支付,但總能使用戶在有限的時(shí)間里得到貸款。

  4)當(dāng)用戶得到所需的全部資金后,一定能在有限的時(shí)間里歸還所有資金。

  我們把操作系統(tǒng)看作是銀行家,操作系統(tǒng)管理的資源相當(dāng)于是銀行家管理的資金,則銀行家算法就是:

  1)當(dāng)一個(gè)進(jìn)程首次申請(qǐng)資源時(shí),測(cè)試該進(jìn)程對(duì)資源的最大的需求量,如果不超過(guò)系統(tǒng)現(xiàn)存資源時(shí)就可以按他的當(dāng)前申請(qǐng)量為其分配資源。否則推遲分配。

  2)進(jìn)程執(zhí)行中繼續(xù)申請(qǐng)資源時(shí),測(cè)試該進(jìn)程占用資源和本次申請(qǐng)資源總數(shù)有沒(méi)有超過(guò)最大需求量。超過(guò)就不分配,沒(méi)超過(guò)則再測(cè)試現(xiàn)存資源是否滿足進(jìn)程還需要的最大資源量,滿足則按當(dāng)前申請(qǐng)量分配,否則也推遲分配。

  總之,銀行家算法要保證分配資源時(shí)系統(tǒng)現(xiàn)存資源一定能滿足至少一個(gè)進(jìn)程所需的全部資源。這樣就可以保證所有進(jìn)程都能在有限時(shí)間內(nèi)得到需要的全部資源。這就是安全狀態(tài)。

  (銀行家算法在操作系統(tǒng)的實(shí)踐考試中可能會(huì)用到)

  四、死鎖的檢測(cè)(領(lǐng)會(huì))死鎖的檢測(cè)

  就是既不打預(yù)防針,也不去避免得病,而是經(jīng)常去體檢,如果發(fā)現(xiàn)有病了就治療。這是一種事后解決的辦法,也算是解決死鎖問(wèn)題的一條途徑。但這畢竟要付出較大代價(jià)。

  1、什么是死鎖的檢測(cè):對(duì)資源的申請(qǐng)和分配不加限制,只要有剩余的資源就可把資源分配給申請(qǐng)者。這樣可能會(huì)出現(xiàn)死鎖,系統(tǒng)定時(shí)運(yùn)行一個(gè)“死鎖檢測(cè)程序”,如果檢測(cè)到死鎖發(fā)生,則必須先解除死鎖再繼續(xù)工作。

  2、怎樣實(shí)現(xiàn)死鎖的檢測(cè):1、每個(gè)資源當(dāng)用中只有一個(gè)資源2、資源類中含有若干個(gè)資源。

  3、死鎖的解除:一般采用兩種方式來(lái)解除死鎖,一種是終止一個(gè)或幾個(gè)進(jìn)程的執(zhí)行以破壞循環(huán)等待;另一種是從涉及死鎖的進(jìn)程中搶奪資源。

  檢測(cè)死鎖和解除死鎖都要付出很大代價(jià)。所以用死鎖檢測(cè)的方法解決死鎖問(wèn)題只適用于不經(jīng)常發(fā)生死鎖的系統(tǒng)中。

?2013年高教自考網(wǎng)絡(luò)輔導(dǎo)課程招生簡(jiǎn)章

?2013年1月自考報(bào)名 

更多信息請(qǐng)?jiān)L問(wèn):自學(xué)考試頻道    自學(xué)考試論壇

分享到: 編輯:環(huán)球網(wǎng)校

資料下載 精選課程 老師直播 真題練習(xí)

自學(xué)考試資格查詢

自學(xué)考試歷年真題下載 更多

自學(xué)考試每日一練 打卡日歷

0
累計(jì)打卡
0
打卡人數(shù)
去打卡

預(yù)計(jì)用時(shí)3分鐘

環(huán)球網(wǎng)校移動(dòng)課堂APP 直播、聽(tīng)課。職達(dá)未來(lái)!

安卓版

下載

iPhone版

下載

返回頂部