計算機操作系統(tǒng)中死鎖問題研究_第1頁
計算機操作系統(tǒng)中死鎖問題研究_第2頁
計算機操作系統(tǒng)中死鎖問題研究_第3頁
計算機操作系統(tǒng)中死鎖問題研究_第4頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、    計算機操作系統(tǒng)中死鎖問題研究    黃正鵬摘要:死鎖問題是計算機操作系統(tǒng)中重要的內容,本文從死鎖概念、產(chǎn)生的原因以及死鎖的預防、檢測、處理等幾個方面分別進行討論,較為全面的探討了常見的操作系統(tǒng)中死鎖問題。關鍵詞:計算機;操作系統(tǒng);死鎖;問題:tp311 :a :1009-3044(2016)20-0034-021 計算機操作系統(tǒng)中死鎖簡介計算機操作系統(tǒng)是管理計算機各種軟硬件資源的軟件系統(tǒng),其中死鎖問題是操作系統(tǒng)必須處理的一種資源分配問題。通常而言計算機操作系統(tǒng)死鎖指的是,由于可分配資源的有限性或者彼此進程通信而引起的一種在多個進程之間產(chǎn)生的阻塞現(xiàn)

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

3、算機操作系統(tǒng)產(chǎn)生死鎖的原因主要體現(xiàn)在兩個方面,首先,是由于計算機系統(tǒng)資源數(shù)量有限性的原因造成的,如果任何進程所需的資源都能得到滿足,那么肯定不會出現(xiàn)死鎖的現(xiàn)象,當然讓計算機系統(tǒng)資源無限制供給是不現(xiàn)實的;其次,產(chǎn)生死鎖的原因則是由于系統(tǒng)資源在分配策略上出現(xiàn)問題,而引發(fā)的死鎖問題,由于分配環(huán)節(jié)以及進程推進過程中產(chǎn)生了進程間的循環(huán)等待,不同進程之間都占據(jù)了其他進程所需要的系統(tǒng)資源,而所占用的資源又不進行釋放,必然引起死鎖現(xiàn)象的出現(xiàn)。通過分析計算機死鎖產(chǎn)生原因可以看出發(fā)生死鎖必然產(chǎn)生四個方面的必要條件,概括如下:第一是資源的互斥性(mutual exclusion),即資源在任意時刻只能由一個進程所占

4、用,而不能被多個進程所共享;第二是請求與保持條件(hold and wait),進程因請求資源而被陷入阻塞狀況時,可以不釋放已獲得的資源;第三是不剝奪條件(no pre-emption),進程已經(jīng)獲得的資源在使用完成之前不可以被剝奪;第四是循環(huán)等待條件(circular wait),若干個進程之間形成了一個資源等待環(huán)。上述四個條件是操作系統(tǒng)產(chǎn)生死鎖的必要條件,只要其中一個條件不被滿足,就不會發(fā)生死鎖。通過對計算機操作系統(tǒng)死鎖產(chǎn)生原因進行分析,那么在操作系統(tǒng)設計、進程調度、資源分配時,如何有效的破壞其產(chǎn)生條件或者在資源分配時進行有效的規(guī)避,就能盡可能地減少死鎖現(xiàn)象的發(fā)生;除此之外,通過一定的死鎖

5、檢測手段,在操作系統(tǒng)進行實時分析資源分配時可以進行動態(tài)的判斷,對于有可能發(fā)生死鎖的資源分配不予以分配。3 計算機操作系統(tǒng)中死鎖預防手段1) 計算機操作系統(tǒng)中死鎖預防處理分析正如上文所述,死鎖產(chǎn)生有四個必要條件,除去第一個互斥性條件,只要破壞任意其他三個產(chǎn)生條件即可避免死鎖現(xiàn)象的出現(xiàn)。因此,常見的預防手段也是按照這樣的思路進行預防處理的,具體而言:首先,即破壞其請求和保持條件,可以一次性的將進程所需要資源進行分配,來避免死鎖情況的出現(xiàn),這種做法最大的缺點在于其系統(tǒng)資源浪費情況比較嚴重;其次,是破壞資源“不剝奪條件”,通過一定的設計(如優(yōu)先級手段),使得占有資源的進程可以釋放其已經(jīng)占有的資源,先供

6、其他進程使用,在其使用完成以后,原資源占有進程可以再通過向cpu重新申請來獲得資源,這種預防處理方式在系統(tǒng)設計實現(xiàn)時復雜度較高;再次,即通過破壞“環(huán)路等待條件”實現(xiàn)死鎖避免,通過對系統(tǒng)資源進行編號標識,各個進程對資源申請按照一定的次序進行,通過這樣的動態(tài)資源分配來破除環(huán)路的形成,以此達到死鎖情況的避免,相對而言這是一種較為高效的死鎖預防處理手段。2)預防死鎖代表性的算法銀行家算法dijkstra e.w(中文名艾茲格·迪杰斯特拉)于1965年提出來的銀行家算法是經(jīng)典的死鎖避免算法。該算法是基于銀行貸款業(yè)務產(chǎn)生的,具體思路是認為銀行可供貸款的總錢數(shù)是有限的,任何一個客戶申請貸款時需要提

7、供其最大貸款額度,并且應保障按時歸還,銀行家在貸出欠款時不能超過自身最大的錢數(shù),并且盡量滿足更多客戶的貸款需求。這里的銀行家與計算機操作系統(tǒng)對于資源的掌握是一致的,而每個進程對于資源的請求情況則與客戶貸款的情況較為類似,當某個進程向操作系統(tǒng)申請資源時,操作系統(tǒng)需要分析該進程最大的資源需求量,當滿足其要求時進行分配,否則將延遲分配;當進程再次向操作系統(tǒng)申請資源分配時,系統(tǒng)會對資源的申請量與該類資源的剩余量的關系,一旦超出則繼續(xù)延遲分配。很顯然的,銀行家算法能夠實現(xiàn)系統(tǒng)的資源分配時出現(xiàn)進程間的死鎖現(xiàn)象。銀行家算法是經(jīng)典的死鎖預防算法,是計算機操作系統(tǒng)內容學習過程中,必然會遇到的內容。4 解決計算機

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

9、鎖問題則成為了下一步應當解決的問題。處理死鎖問題的方法,主要有四種方式,其一,通過撤銷所有死鎖進程來實現(xiàn);其二通過依次撤銷死鎖進程,每撤銷一個后進行死鎖檢測,直至死鎖不存在為止;其三,通過釋放死鎖程序所占資源,來實現(xiàn)死鎖問題的解決;最后,則是通過強制性滿足被等待進程的一方資源請求來解除死鎖??傊?,死鎖處理方式是圍繞資源滿足或者資源剝奪的方式進行的。除了上述,操作系統(tǒng)中資源分配的死鎖問題以外,計算機網(wǎng)絡中也存在死鎖情況,最為常見的就是“存儲轉發(fā)死鎖”,另外數(shù)據(jù)庫系統(tǒng)中也存在死鎖的情況,其解決措施是通過事務的手段來進行的,在此就不具體討論了。5 小結計算機操作系統(tǒng)中死鎖問題究其本質是由于資源有限性以及資源分配策略問題引發(fā)的一種存在于多個進程之間無限阻塞的現(xiàn)象。本文以死鎖的概念為切入點,分析了操作系統(tǒng)中死鎖產(chǎn)生的原因以及必要條件,并以此給出了解決死鎖問題的常見思路,即通過“死鎖避免死鎖檢測死鎖處理”這種死鎖處理流程來有效解決死鎖問題。參考文獻:1 張偉杰. 計算機操作系統(tǒng)中死鎖問題研究j.計算機光盤軟件與應用,2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論