• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      操作系統(tǒng)中的死鎖問題

      2019-10-23 14:09:14秦桂云
      中國新技術(shù)新產(chǎn)品 2019年16期
      關(guān)鍵詞:產(chǎn)生原因處理方法

      秦桂云

      摘? 要:操作系統(tǒng)的核心是進(jìn)程管理,在管理進(jìn)程的時(shí)候,如果設(shè)計(jì)不當(dāng)就會出現(xiàn)進(jìn)程堵塞的現(xiàn)象——死鎖。進(jìn)程中的死鎖問題是如今計(jì)算機(jī)發(fā)展過程中仍需解決的重要問題,許多研究者都在致力于解決該問題。但迄今為止仍舊沒有一個(gè)通行的解決方法。該文針對死鎖問題進(jìn)行了探討,論述了死鎖概念、產(chǎn)生原因、必要條件以及處理辦法。

      關(guān)鍵詞:死鎖;產(chǎn)生原因;必要條件;處理方法

      中圖分類號:TP311? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)志碼:A

      0 引言

      隨著科學(xué)技術(shù)的不斷發(fā)展,計(jì)算機(jī)類型復(fù)雜多樣,進(jìn)程、資源種類也各不相同。在操作系統(tǒng)中存在很多在任意時(shí)刻都只能被一個(gè)進(jìn)程占用的資源。該類資源屬于獨(dú)占性資源,不能同時(shí)被2個(gè)或2個(gè)以上的進(jìn)程使用,否則會導(dǎo)致進(jìn)程堵塞,從而使計(jì)算機(jī)系統(tǒng)崩潰。另外,一個(gè)進(jìn)程常常需要訪問各種排他性的資源(磁帶機(jī)、打印機(jī)等),因此死鎖在系統(tǒng)中出現(xiàn)的次數(shù)更會大大增加。死鎖現(xiàn)象的出現(xiàn)給人們工作生活帶來了很大困擾。

      1 死鎖的概念

      死鎖,顧名思義是一把沒有鑰匙的鎖,指計(jì)算機(jī)系統(tǒng)、進(jìn)程陷入一種死循環(huán)的狀態(tài),常常定義為在系統(tǒng)進(jìn)程集合中的每個(gè)進(jìn)程都在請求并等待其他進(jìn)程所占有的資源,導(dǎo)致所有進(jìn)程都處于等待狀態(tài)不能運(yùn)行,形成死循環(huán)。在該狀態(tài)中,沒有終止條件能使陷入死循環(huán)的進(jìn)程得以解脫,從而也不能解開環(huán)路使其他進(jìn)程得以釋放。由此引發(fā)了所有進(jìn)程都陷入想得到資源卻又都得不到資源的局面。如果長期無法改變這種等待狀態(tài),那么這種現(xiàn)象被稱為“饑餓”。

      2 產(chǎn)生死鎖的原因

      2.1 資源有限,引發(fā)資源競爭

      系統(tǒng)資源有限,而進(jìn)程運(yùn)行又要求占用足夠多的資源。當(dāng)進(jìn)程所需資源被另一進(jìn)程所占,另一進(jìn)程所需資源被其他進(jìn)程所占,循環(huán)往復(fù),這就導(dǎo)致了所有進(jìn)程都處于一個(gè)不能繼續(xù)執(zhí)行的狀態(tài),此時(shí)系統(tǒng)處于死鎖狀態(tài)。

      2.2 并發(fā)進(jìn)程的執(zhí)行次序非法

      借助例子闡明,山谷內(nèi)有僅容一人通過的洞口,大家順序通過,則可保持通暢,當(dāng)發(fā)生混亂,一群人涌向洞口,則此時(shí)就會造成洞口堵塞,導(dǎo)致誰也不能通過,進(jìn)程也是如此,當(dāng)其執(zhí)行順序不合理時(shí),進(jìn)程進(jìn)入死鎖區(qū),在死鎖點(diǎn)產(chǎn)生死鎖。

      3 死鎖的必要條件

      對于可再使用的永久資源來說:1)互斥條件,又稱獨(dú)占條件。有些資源只能同時(shí)被一個(gè)進(jìn)程所占用,而其他進(jìn)程不能訪問這些已被占用了的資源。2)請求并保持,也稱部分分配條件。當(dāng)進(jìn)程等待其他資源時(shí),仍然繼續(xù)占有已經(jīng)得到的資源。3)非搶占條件。進(jìn)程獲得的資源未使用完之前,其他進(jìn)程不能強(qiáng)占,資源只能被占有它的進(jìn)程自主釋放。4)循環(huán)環(huán)路等待。死鎖發(fā)生時(shí),系統(tǒng)中存在著一條由至少2個(gè)進(jìn)程組成的環(huán)路,在這條環(huán)路中的每一個(gè)進(jìn)程都在等待后一個(gè)進(jìn)程所占資源的釋放,因此導(dǎo)致環(huán)路堵塞,使進(jìn)程不能再繼續(xù)運(yùn)行。

      4 處理死鎖的辦法

      死鎖會影響計(jì)算機(jī)的使用效果,必須對其加以解決,來使系統(tǒng)進(jìn)程可以正常運(yùn)行。死鎖有以下幾種處理方法。

      4.1 死鎖的預(yù)防

      想要預(yù)先防止死鎖發(fā)生,可以從產(chǎn)生死鎖的必要條件入手。

      (1)摒棄互斥條件。首先使用虛擬設(shè)備技術(shù),破壞了死鎖形成的必要條件中的互斥條件。該技術(shù)可將一臺獨(dú)占設(shè)備虛擬成多臺邏輯設(shè)備,能夠提供給多個(gè)進(jìn)程來使用,提高了系統(tǒng)資源利用效率。虛擬設(shè)備技術(shù)就用共享設(shè)備的空間模擬了獨(dú)占設(shè)備的功能,將獨(dú)占改為共享。

      (2)預(yù)分配所有共享資源。進(jìn)程運(yùn)行時(shí)所需的所有資源一次性申請,并且在所需資源未得到滿足之前,不運(yùn)行該進(jìn)程,一直等到所需資源均空閑時(shí),再運(yùn)行該進(jìn)程。其存在以下不足:進(jìn)程可能會等待很長的時(shí)間,才能滿足所請求的資源,但實(shí)際上,有的進(jìn)程僅需要部分資源就可以繼續(xù)執(zhí)行下去。其次,被分配的資源可能等候較長時(shí)間都不會被進(jìn)程使用,也不能為其他進(jìn)程所運(yùn)行使用,因此就造成了資源浪費(fèi)。

      (3)預(yù)防占有保持。針對資源不能被其他進(jìn)程搶占的條件,可從以下方面解決。等待時(shí)釋放,當(dāng)已經(jīng)占有部分資源的進(jìn)程再次申請資源時(shí),如果被拒絕則要求其必須釋放原先占有的資源。強(qiáng)制剝奪,當(dāng)進(jìn)程請求當(dāng)前正被其他進(jìn)程占有的資源時(shí),系統(tǒng)可以主動搶占另一個(gè)進(jìn)程的資源幫助該進(jìn)程運(yùn)行下去,因此進(jìn)程在運(yùn)行過程中,所占有的資源是能夠被系統(tǒng)所剝奪的。不過第2種方法只有在2個(gè)進(jìn)程優(yōu)先級不同時(shí)才有效。此外,被剝奪了資源的進(jìn)程在此之前所完成的工作全部失效,同時(shí),進(jìn)行的這一系列操作也加大了系統(tǒng)開銷,造成了不必要的浪費(fèi)

      (4)預(yù)防形成環(huán)路??梢圆捎冒葱?qū)Y源進(jìn)行分配,給資源分級編號。這就要求所有進(jìn)程在申請資源時(shí),必須按遞增順序來申請,并且相同級別資源要一次申請完,這就阻止了環(huán)路的產(chǎn)生,從而避免了死鎖的產(chǎn)生。這種預(yù)防方法是低效的,因?yàn)樗鼤惯M(jìn)程的執(zhí)行速度變慢,增加了進(jìn)程占用資源的時(shí)間,并且給系統(tǒng)資源進(jìn)行分級編號也是很困難的。

      4.2 死鎖避免

      死鎖避免也稱動態(tài)監(jiān)測。該方法與死鎖預(yù)防差別較小,死鎖預(yù)防約束申請資源請求,從而破壞4個(gè)必要條件中的一個(gè),但這同時(shí)使資源利用率和進(jìn)程執(zhí)行率大大降低。而死鎖避免則相反,在分配資源的過程中,系統(tǒng)對于申請資源的命令提前進(jìn)行檢測,依據(jù)所進(jìn)行的檢查結(jié)果選擇是否分配其資源。它允許互斥、請求和保持,不可剝奪3個(gè)條件,但卻保證永遠(yuǎn)不會到達(dá)死鎖點(diǎn),能夠執(zhí)行多個(gè)并發(fā)程序。

      4.3 死鎖檢測

      預(yù)防和避免死鎖要求代價(jià)太高,為提高資源的利用率,我們一般不阻止死鎖的產(chǎn)生。而是采用系統(tǒng)定時(shí)檢測的方式,當(dāng)檢測到發(fā)生死鎖時(shí),再采取某種措施來解除死鎖

      (1)檢測死鎖的時(shí)機(jī):進(jìn)程發(fā)生等待時(shí)檢測、定時(shí)進(jìn)行檢測、系統(tǒng)資源利用率下降時(shí)檢測。

      (2)利用資源分配圖檢測:借助資源分配圖,如果發(fā)現(xiàn)其中不存在環(huán)路,則未出現(xiàn)死鎖,如果存在環(huán)路,則有可能出現(xiàn)死鎖(存在不確定性)

      (3)死鎖定理:當(dāng)某個(gè)狀態(tài)的資源分配圖不能再繼續(xù)化簡時(shí),該狀態(tài)為死鎖。資源分配圖簡化原則是進(jìn)程申請的資源如果空閑,則可將請求邊改為分配邊,并將資源分配給該進(jìn)程。當(dāng)進(jìn)程僅有分配邊沒有申請邊時(shí),可看作該進(jìn)程在規(guī)定時(shí)間內(nèi)完成并釋放所占用的資源,可將指向該進(jìn)程結(jié)點(diǎn)的邊抹去,從而簡化過程。

      4.4 死鎖復(fù)原

      一旦檢測出死鎖就要采取一些措施來使系統(tǒng)重新恢復(fù)運(yùn)行。1)強(qiáng)制搶占,臨時(shí)將資源從它當(dāng)前所有者中人工干預(yù)轉(zhuǎn)移到需要該資源的另一進(jìn)程,使另一進(jìn)程可以運(yùn)行。當(dāng)另一進(jìn)程完成時(shí),原進(jìn)程可再申請可用資源繼續(xù)完成工作,由此解決死鎖問題。該方法的可行度不強(qiáng),實(shí)行起來較為困難,選擇搶奪某個(gè)進(jìn)程的資源時(shí),很大程度上要考慮該進(jìn)程所擁有的資源是否容易回收。2)死鎖進(jìn)程回退,使其回到還未產(chǎn)生死鎖的時(shí)候。借助檢查點(diǎn),當(dāng)系統(tǒng)死鎖時(shí),檢測所需資源,從較早的檢查點(diǎn)開始,使其回到還未產(chǎn)生死鎖的狀態(tài),并使該進(jìn)程獲得所需資源。其中檢查點(diǎn)包括資源狀態(tài)和存儲映像,即那些資源分配給了那個(gè)進(jìn)程,不過該方法可能使系統(tǒng)再次進(jìn)入死鎖。3)終止所有進(jìn)程??梢韵冉K止死鎖環(huán)路中的一個(gè)進(jìn)程,如果死鎖還未解除,繼續(xù)撤銷其他的進(jìn)程,直至進(jìn)程全部撤銷或者死鎖恢復(fù)至系統(tǒng)正常運(yùn)行。也可選擇對環(huán)路外的進(jìn)程進(jìn)行撤銷,使其釋放所占有的資源。不過該方法要求所撤銷的進(jìn)程中正好擁有環(huán)路中堵塞進(jìn)程所需要的資源,且最好撤銷的是不會有其他影響的進(jìn)程。

      5 結(jié)語

      死鎖問題是任何操作系統(tǒng)中都存在的潛在問題,資源死鎖也并不是唯一的死鎖??紤]到系統(tǒng)復(fù)雜多樣和效率代價(jià)問題,很難只靠死鎖的預(yù)防和避免去解決它,大多還是要依靠死鎖的恢復(fù)和檢測,不過,這些都要靠增加計(jì)算機(jī)工作效率來實(shí)現(xiàn)。因此,在未來還需要我們繼續(xù)對死鎖問題進(jìn)行深入研究,爭取早日攻克這一大難題。

      參考文獻(xiàn)

      [1]湯子贏.計(jì)算機(jī)操作系統(tǒng)[M].西安:西安電子科技大學(xué)出版社,1999.

      [2]張堯?qū)W,史美林.計(jì)算機(jī)操作系統(tǒng)教程[M].北京:清華大學(xué)出版社,2000.

      [3]張堯?qū)W,宋虹,張高.計(jì)算機(jī)操作系統(tǒng)教程[M].北京:清華大學(xué)出版社,2013.

      [4]申雪琴.計(jì)算機(jī)操作系統(tǒng)中死鎖問題的研究[J].計(jì)算機(jī)與數(shù)字工程,2008(7):203-206.

      [5]Andrew.S.Tanenbaum著,陳向群,馬洪兵等譯.現(xiàn)代操作系統(tǒng)[M].北京:機(jī)械工業(yè)出版社.

      [6]孔憲君,王亞東.操作系統(tǒng)的原理與應(yīng)用[M].北京:高等教育出版社,2008.

      猜你喜歡
      產(chǎn)生原因處理方法
      系列犯罪的地域化問題研究
      犯罪研究(2016年5期)2016-12-01 18:25:19
      軟土地基基礎(chǔ)上水利施工處理方法
      淺談野外駐訓(xùn)常見涉法問題的處理
      淺析企業(yè)勞資糾紛產(chǎn)生原因及化解對策
      企業(yè)應(yīng)收賬款創(chuàng)新管理分析
      陪讀現(xiàn)象產(chǎn)生原因及其利弊分析*
      新一代(2016年15期)2016-11-16 16:49:42
      初中數(shù)學(xué)學(xué)困生產(chǎn)生的原因及應(yīng)對策略研究
      南北橋(2016年10期)2016-11-10 16:26:44
      城市垃圾無害化處理研究
      橋梁裂縫產(chǎn)生原因
      煤礦采掘工作面頂板管理問題的處理方法
      依兰县| 乾安县| 林州市| 玉溪市| 旬邑县| 沧源| 太原市| 伊春市| 青阳县| 沂源县| 随州市| 聊城市| 巢湖市| 西丰县| 城市| 湾仔区| 威远县| 莒南县| 阿鲁科尔沁旗| 侯马市| 甘孜| 和平县| 乌兰浩特市| 达州市| 天长市| 东台市| 咸阳市| 镇巴县| 江口县| 玉门市| 佛冈县| 河间市| 监利县| 隆德县| 大石桥市| 肥城市| 温泉县| 和龙市| 孝感市| 大竹县| 蒙山县|