国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

計(jì)算機(jī)操作系統(tǒng)中死鎖問(wèn)題研究

2016-08-19 19:07黃正鵬
電腦知識(shí)與技術(shù) 2016年20期
關(guān)鍵詞:操作系統(tǒng)計(jì)算機(jī)問(wèn)題

黃正鵬

摘要:死鎖問(wèn)題是計(jì)算機(jī)操作系統(tǒng)中重要的內(nèi)容,本文從死鎖概念、產(chǎn)生的原因以及死鎖的預(yù)防、檢測(cè)、處理等幾個(gè)方面分別進(jìn)行討論,較為全面的探討了常見(jiàn)的操作系統(tǒng)中死鎖問(wèn)題。

關(guān)鍵詞:計(jì)算機(jī);操作系統(tǒng);死鎖;問(wèn)題

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)20-0034-02

1 計(jì)算機(jī)操作系統(tǒng)中死鎖簡(jiǎn)介

計(jì)算機(jī)操作系統(tǒng)是管理計(jì)算機(jī)各種軟硬件資源的軟件系統(tǒng),其中死鎖問(wèn)題是操作系統(tǒng)必須處理的一種資源分配問(wèn)題。通常而言計(jì)算機(jī)操作系統(tǒng)死鎖指的是,由于可分配資源的有限性或者彼此進(jìn)程通信而引起的一種在多個(gè)進(jìn)程之間產(chǎn)生的阻塞現(xiàn)象。計(jì)算機(jī)操作系統(tǒng)如果不對(duì)其進(jìn)行強(qiáng)制性的資源回收或者資源重新分配,這種阻塞現(xiàn)象將一直存在下去,影響操作系統(tǒng)進(jìn)行正常的資源管理。由此可見(jiàn),計(jì)算機(jī)操作系統(tǒng)中的死鎖問(wèn)題必須發(fā)生多個(gè)進(jìn)程之間,在單進(jìn)程系統(tǒng)中必然不會(huì)產(chǎn)生死鎖問(wèn)題。簡(jiǎn)言之,死鎖問(wèn)題,就是一種資源等待與資源釋放之間產(chǎn)生的矛盾,由于存在系統(tǒng)資源的持續(xù)占用必然引起資源空間嚴(yán)重浪費(fèi),常見(jiàn)的用戶等待以及死機(jī)現(xiàn)象都可能是由于死鎖問(wèn)題導(dǎo)致的,因此處理好死鎖問(wèn)題無(wú)論從計(jì)算操作系統(tǒng)資源有序合理分配方面還是良好用戶體驗(yàn)方面都是必須解決重要問(wèn)題。下文則具體從死鎖產(chǎn)生原因、產(chǎn)生條件、死鎖避免手段以及死鎖解決措施等方面進(jìn)行探討。

2 計(jì)算機(jī)操作系統(tǒng)死鎖產(chǎn)生原因分析

計(jì)算機(jī)操作系統(tǒng)產(chǎn)生死鎖的原因主要體現(xiàn)在兩個(gè)方面,首先,是由于計(jì)算機(jī)系統(tǒng)資源數(shù)量有限性的原因造成的,如果任何進(jìn)程所需的資源都能得到滿足,那么肯定不會(huì)出現(xiàn)死鎖的現(xiàn)象,當(dāng)然讓計(jì)算機(jī)系統(tǒng)資源無(wú)限制供給是不現(xiàn)實(shí)的;其次,產(chǎn)生死鎖的原因則是由于系統(tǒng)資源在分配策略上出現(xiàn)問(wèn)題,而引發(fā)的死鎖問(wèn)題,由于分配環(huán)節(jié)以及進(jìn)程推進(jìn)過(guò)程中產(chǎn)生了進(jìn)程間的循環(huán)等待,不同進(jìn)程之間都占據(jù)了其他進(jìn)程所需要的系統(tǒng)資源,而所占用的資源又不進(jìn)行釋放,必然引起死鎖現(xiàn)象的出現(xiàn)。

通過(guò)分析計(jì)算機(jī)死鎖產(chǎn)生原因可以看出發(fā)生死鎖必然產(chǎn)生四個(gè)方面的必要條件,概括如下:第一是資源的互斥性(Mutual exclusion),即資源在任意時(shí)刻只能由一個(gè)進(jìn)程所占用,而不能被多個(gè)進(jìn)程所共享;第二是請(qǐng)求與保持條件(Hold and wait),進(jìn)程因請(qǐng)求資源而被陷入阻塞狀況時(shí),可以不釋放已獲得的資源;第三是不剝奪條件(No pre-emption),進(jìn)程已經(jīng)獲得的資源在使用完成之前不可以被剝奪;第四是循環(huán)等待條件(Circular wait),若干個(gè)進(jìn)程之間形成了一個(gè)資源等待環(huán)。上述四個(gè)條件是操作系統(tǒng)產(chǎn)生死鎖的必要條件,只要其中一個(gè)條件不被滿足,就不會(huì)發(fā)生死鎖。

通過(guò)對(duì)計(jì)算機(jī)操作系統(tǒng)死鎖產(chǎn)生原因進(jìn)行分析,那么在操作系統(tǒng)設(shè)計(jì)、進(jìn)程調(diào)度、資源分配時(shí),如何有效的破壞其產(chǎn)生條件或者在資源分配時(shí)進(jìn)行有效的規(guī)避,就能盡可能地減少死鎖現(xiàn)象的發(fā)生;除此之外,通過(guò)一定的死鎖檢測(cè)手段,在操作系統(tǒng)進(jìn)行實(shí)時(shí)分析資源分配時(shí)可以進(jìn)行動(dòng)態(tài)的判斷,對(duì)于有可能發(fā)生死鎖的資源分配不予以分配。

3 計(jì)算機(jī)操作系統(tǒng)中死鎖預(yù)防手段

1) 計(jì)算機(jī)操作系統(tǒng)中死鎖預(yù)防處理分析

正如上文所述,死鎖產(chǎn)生有四個(gè)必要條件,除去第一個(gè)互斥性條件,只要破壞任意其他三個(gè)產(chǎn)生條件即可避免死鎖現(xiàn)象的出現(xiàn)。因此,常見(jiàn)的預(yù)防手段也是按照這樣的思路進(jìn)行預(yù)防處理的,具體而言:首先,即破壞其請(qǐng)求和保持條件,可以一次性的將進(jìn)程所需要資源進(jìn)行分配,來(lái)避免死鎖情況的出現(xiàn),這種做法最大的缺點(diǎn)在于其系統(tǒng)資源浪費(fèi)情況比較嚴(yán)重;其次,是破壞資源“不剝奪條件”,通過(guò)一定的設(shè)計(jì)(如優(yōu)先級(jí)手段),使得占有資源的進(jìn)程可以釋放其已經(jīng)占有的資源,先供其他進(jìn)程使用,在其使用完成以后,原資源占有進(jìn)程可以再通過(guò)向CPU重新申請(qǐng)來(lái)獲得資源,這種預(yù)防處理方式在系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)時(shí)復(fù)雜度較高;再次,即通過(guò)破壞“環(huán)路等待條件”實(shí)現(xiàn)死鎖避免,通過(guò)對(duì)系統(tǒng)資源進(jìn)行編號(hào)標(biāo)識(shí),各個(gè)進(jìn)程對(duì)資源申請(qǐng)按照一定的次序進(jìn)行,通過(guò)這樣的動(dòng)態(tài)資源分配來(lái)破除環(huán)路的形成,以此達(dá)到死鎖情況的避免,相對(duì)而言這是一種較為高效的死鎖預(yù)防處理手段。

2)預(yù)防死鎖代表性的算法——銀行家算法

Dijkstra E.W(中文名艾茲格·迪杰斯特拉)于1965年提出來(lái)的銀行家算法是經(jīng)典的死鎖避免算法。該算法是基于銀行貸款業(yè)務(wù)產(chǎn)生的,具體思路是認(rèn)為銀行可供貸款的總錢數(shù)是有限的,任何一個(gè)客戶申請(qǐng)貸款時(shí)需要提供其最大貸款額度,并且應(yīng)保障按時(shí)歸還,銀行家在貸出欠款時(shí)不能超過(guò)自身最大的錢數(shù),并且盡量滿足更多客戶的貸款需求。這里的銀行家與計(jì)算機(jī)操作系統(tǒng)對(duì)于資源的掌握是一致的,而每個(gè)進(jìn)程對(duì)于資源的請(qǐng)求情況則與客戶貸款的情況較為類似,當(dāng)某個(gè)進(jìn)程向操作系統(tǒng)申請(qǐng)資源時(shí),操作系統(tǒng)需要分析該進(jìn)程最大的資源需求量,當(dāng)滿足其要求時(shí)進(jìn)行分配,否則將延遲分配;當(dāng)進(jìn)程再次向操作系統(tǒng)申請(qǐng)資源分配時(shí),系統(tǒng)會(huì)對(duì)資源的申請(qǐng)量與該類資源的剩余量的關(guān)系,一旦超出則繼續(xù)延遲分配。很顯然的,銀行家算法能夠?qū)崿F(xiàn)系統(tǒng)的資源分配時(shí)出現(xiàn)進(jìn)程間的死鎖現(xiàn)象。銀行家算法是經(jīng)典的死鎖預(yù)防算法,是計(jì)算機(jī)操作系統(tǒng)內(nèi)容學(xué)習(xí)過(guò)程中,必然會(huì)遇到的內(nèi)容。

4 解決計(jì)算機(jī)操作系統(tǒng)中死鎖問(wèn)題的措施

當(dāng)系統(tǒng)中出現(xiàn)了死鎖,一般通過(guò)死鎖檢測(cè)以及死鎖排除兩個(gè)步驟進(jìn)行死鎖問(wèn)題的解決。死鎖檢測(cè)思路主要是通過(guò)兩個(gè)容器完成的,其中一個(gè)是用來(lái)一個(gè)容器是用來(lái)保存各個(gè)進(jìn)程正在請(qǐng)求的資源,另一個(gè)容器則是保存各個(gè)進(jìn)程中已經(jīng)占有的資源,具體的檢測(cè)手段是通過(guò)遍歷正在請(qǐng)求資源的進(jìn)程的請(qǐng)求資源是否已經(jīng)被其他進(jìn)程所占有,反方向再遍歷一次,即可發(fā)現(xiàn)系統(tǒng)中是否出現(xiàn)了死鎖問(wèn)題。除了這種直接的進(jìn)程資源方式的檢測(cè)以外,還可以通過(guò)側(cè)面的系統(tǒng)效率檢測(cè)、進(jìn)程等待時(shí)檢測(cè)等手段來(lái)實(shí)現(xiàn)死鎖問(wèn)題的發(fā)現(xiàn)。相對(duì)而言,計(jì)算機(jī)操作系統(tǒng)對(duì)于進(jìn)程死鎖檢測(cè)的手段實(shí)現(xiàn)起來(lái)還是相對(duì)比較容易的。

一旦發(fā)現(xiàn)了操作系統(tǒng)中出現(xiàn)了死鎖的現(xiàn)象,那么處理死鎖問(wèn)題則成為了下一步應(yīng)當(dāng)解決的問(wèn)題。處理死鎖問(wèn)題的方法,主要有四種方式,其一,通過(guò)撤銷所有死鎖進(jìn)程來(lái)實(shí)現(xiàn);其二通過(guò)依次撤銷死鎖進(jìn)程,每撤銷一個(gè)后進(jìn)行死鎖檢測(cè),直至死鎖不存在為止;其三,通過(guò)釋放死鎖程序所占資源,來(lái)實(shí)現(xiàn)死鎖問(wèn)題的解決;最后,則是通過(guò)強(qiáng)制性滿足被等待進(jìn)程的一方資源請(qǐng)求來(lái)解除死鎖??傊?,死鎖處理方式是圍繞資源滿足或者資源剝奪的方式進(jìn)行的。

除了上述,操作系統(tǒng)中資源分配的死鎖問(wèn)題以外,計(jì)算機(jī)網(wǎng)絡(luò)中也存在死鎖情況,最為常見(jiàn)的就是“存儲(chǔ)轉(zhuǎn)發(fā)死鎖”,另外數(shù)據(jù)庫(kù)系統(tǒng)中也存在死鎖的情況,其解決措施是通過(guò)事務(wù)的手段來(lái)進(jìn)行的,在此就不具體討論了。

5 小結(jié)

計(jì)算機(jī)操作系統(tǒng)中死鎖問(wèn)題究其本質(zhì)是由于資源有限性以及資源分配策略問(wèn)題引發(fā)的一種存在于多個(gè)進(jìn)程之間無(wú)限阻塞的現(xiàn)象。本文以死鎖的概念為切入點(diǎn),分析了操作系統(tǒng)中死鎖產(chǎn)生的原因以及必要條件,并以此給出了解決死鎖問(wèn)題的常見(jiàn)思路,即通過(guò)“死鎖避免——死鎖檢測(cè)——死鎖處理”這種死鎖處理流程來(lái)有效解決死鎖問(wèn)題。

參考文獻(xiàn):

[1] 張偉杰. 計(jì)算機(jī)操作系統(tǒng)中死鎖問(wèn)題研究[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2014(18):81+83.

[2] 齊鵬. 基于未來(lái)鎖集的死鎖規(guī)避技術(shù)研究[D].哈爾濱工業(yè)大學(xué),2015.

[3] 徐本勝. 智能空間中的沖突問(wèn)題和死鎖問(wèn)題研究[D].北京工業(yè)大學(xué),2015.

[4] 周南鳳. 探究計(jì)算機(jī)操作系統(tǒng)中死鎖問(wèn)題[J].信息與電腦(理論版),2015(13):69-70.

猜你喜歡
操作系統(tǒng)計(jì)算機(jī)問(wèn)題
計(jì)算機(jī)操作系統(tǒng)
基于計(jì)算機(jī)自然語(yǔ)言處理的機(jī)器翻譯技術(shù)應(yīng)用與簡(jiǎn)介
信息系統(tǒng)審計(jì)中計(jì)算機(jī)審計(jì)的應(yīng)用
演員出“問(wèn)題”,電影怎么辦(聊天室)
韓媒稱中俄冷對(duì)朝鮮“問(wèn)題”貨船
“問(wèn)題”干部“回爐”再造
Fresnel衍射的計(jì)算機(jī)模擬演示