999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

關于操作系統進程的死鎖問題的研究

2007-01-01 00:00:00李弦曄
考試周刊 2007年4期

摘 要:本文旨在研究操作系統進程的死鎖問題,進程死鎖問題一直困擾著操作系統設計者,很多學者專家一直研究怎樣解決這個問題。本文首先提出了死鎖的概念,死鎖的起因及產生死鎖四個必要條件;然后深入研究探討解決死鎖問題,并給出可行方案。

關鍵詞:操作系統 進程 死鎖

一、死鎖的基本概念

1.死鎖的概念(產生死鎖的原因和必要條件)

在多道程序系統中,可借助于多個進程的并發執行來改善系統的資源利用率和提高系統的處理能力。但可能發生一種危險——死鎖。

死鎖,是指多個進程因競爭資源而造成的一種僵局,若無外力作這些進程都將永遠不能再向前推進。

產生死鎖的原因可歸結為以下兩點:

(1)競爭資源。為多個進程所共享的資源不足,引起它們對資源的競爭而產生死鎖;

(2)進程推進順序不當。進程運動過程中,請求和釋放資源的順序不當,而導致進程死鎖。

2.死鎖的起因

(1)競爭資源引起死鎖

二、死鎖的處理

1.預防死鎖

通過設置某些限制條件,以破壞產生死鎖的四個必要條件中的一個或幾個,來防止發生死鎖。預防死鎖是一種較易實現的方法,已被廣泛使用。但由于所施加的限制條件往往太嚴格,可能導致資源利用率很低。

我們可以通過使(2)、(3)、(4)三個必要條件不能成立的方法,來預防死鎖的產生,至于必要條件(1),由于是設備的固有特性,不僅不能改變,還應設法加以保證。

(1)摒棄“請求和保持”條件

為了摒棄這一條件,系統要求所有進程都一次性地申請其所需的全部資源,若系統擁有足夠的資源分配給進程時,便把進程所需資源分配給它,這樣,該進程在整個運行期間,便不會再提出資源請求,從而摒棄了請求條件,但只要有一種資源的要求不能滿足,則已有的其他資源也全部不分配給該進程,讓進程等待。由于在等待期間的進程不占有任何資源,因此摒棄了保持條件,從而可以避免發生死鎖。

這種方法的優點是簡單,易于實現,且很安全;但缺點也極其明顯:

資源嚴重浪費:一個進程一次獲得共所需的全部資源,嚴重地惡化了系統的資源利用率;

進程推遲運行:僅當進程獲得其所需全部資源后,方能開始運行,但可能有某些資源長期被其它進程占用,致使進程遲遲不能運行。

(2)摒棄“不剝奪”條件

該策略規定,一個已保持了某些資源的進程,若新的資源要求不能立即得到滿足,它必須釋放已保持的所有資源,以后需要時再重新申請。這意味著,進程已占有資源在運行過程中可被剝奪,從而摒棄了“不剝奪條件”。

這種策略實現起來比較復雜,且要付出很大代價。因為一個資源在使用一段時間后被釋放,可能會造成前階段工作的失效。此外,該策略還可能由于反復地申請和釋放資源,使進程的執行無限推遲。這不僅延長了進程的周轉時間,也增加了系統開銷。

(3)摒棄“環路等待”條件

該策略規定,系統將所有的資源按類型進行線性排隊,并賦予不同的序號。例如,令輸入機的序號為1,打印機的序號為2,穿孔機為3,磁帶機為4,磁盤為5。所有進程對資源請求,必須嚴格按資源序號遞增的順序提出,如果申請的資源號小于已占用的資源序號,則它必須釋放出序號小于申請序號的已占用資源。可以證明系統在任何情況下,不可能進入循環等待狀態(用反證法),因而摒棄了“環路等待”條件。在采用這種策略時,由于總有一個進程占據了較高序號的資源,它繼續請求的資源必然是空閑的,因此進程可以一直向前推進。

該策略較之前兩種策略,在資源利用率、系統吞吐量上都有顯蓍提高,但也存在不述嚴重問題:

(1)為系統中各種資源類型分配的序號,必須相對穩定,這就限制了新設備類型的增加;

(2)盡管在為資源分配序號時,已考慮到大多數作業實際使用這些資源的順序,但也經常會發生作業使用資源的順序與系統規定順序不同的情況,造成資源的浪費。

2.避免死鎖

不需事先采取各種限制措施去破壞產生死鎖的必要條件,而是在資源的動態分配過程中,用某種方法去防止系統進入不安全狀態,從而避免發生死鎖。這種方法只需在事先加以較弱的限制條件,便可獲得較高的資源利用率及系統吞吐量,但在實現上有一定的難度。在目前較完善的系統中,常用此方法來避免死鎖的發生。

在預防死鎖中所采取的幾種策略,都施加了較強的限制條件,因而嚴重地損害了系統性能。而避免死鎖方法所施加的限制條件較弱,可能獲得較為滿意的系統性能。

死鎖避免可被稱為動態預防,因為系統采用動態分配資源的方法,在分配過程中預測出死鎖發生的可能性并加以避免。這種方法中把運行中的系統歸為下述兩種狀態:

(1)安全與不安全狀態

3.檢測死鎖和解除死鎖

預防和避免死鎖的方法相對比較保守,且都是以犧牲機器的效率和浪費資源為代價的,檢測和解除死鎖預先并不采取任何限制性措施,也不檢查系統是否已進入不安全態,允許系統在運行過程中發生死鎖,但可通過系統設置的檢測機構,及時地檢測出死鎖的發生,并精確地確定與死鎖有關的進程和資源;然后,采取適當措施,以最小的代價從系統中將已發生的死鎖清除掉。

解除死鎖是與檢測死鎖相配套的一種措施,用于將進程從死鎖狀態下解脫出來。常用的實施方法是撤消或掛起一些進程,以便回收一些資源,再將這些資源分配給已處于阻塞狀態的進程,使之轉為就緒狀態以繼續運行。

(1)剝奪資源。從其它進程剝壓足夠數量的資源給死鎖進程,以解除死鎖狀態;

(2)撤消進程。最簡單的撤消進程的方法是使全部死鎖進程都夭折掉;稍為溫和一點的方法是按照某種順序逐個地撤消進程,直至有足夠的資源可用,死鎖狀態消除為止。

死鎖的檢測和解除,有可能使系統獲得較好的資源利用率和系統吞吐量,但在實現上難度也較大。

三、結束語

計算機的軟硬件不斷地更新換代,這使得計算機性能大幅度的提升,但是提升的同時,資源浪費這個問題也就越來越嚴重。在解決資源浪費的同時,操作系統進程的死鎖問題又困擾著程序設計者。本文針對這個問題作出的系統的研究并且提出了問題的解決方案,為計算機資源可以被充分的利用提供了一些理論基礎。相信隨著計算機的快速發展,操作系統進程的死鎖問題會得到很好的解決。

參考文獻:

[1]吳企淵.計算機操作系統.清華大學,2006.

[2]劉義常.操作系統原理.中國水電,2006.

[3]陸麗娜.分布式操作系統.電子工業,2005.

[4](美)Abraham Silberschatz Peter Baer Galvin Greg Gagne操作系統概念(第六版)高等教育出版社,2002—05.

[5]進程管理知識庫.http://www.acfile.com/.

主站蜘蛛池模板: 99久久免费精品特色大片| 亚洲成在线观看| 亚洲爱婷婷色69堂| 四虎永久免费地址在线网站| 91po国产在线精品免费观看| 国产永久无码观看在线| 精品国产亚洲人成在线| 日韩高清无码免费| 欧美一级夜夜爽www| 福利视频一区| 2021国产v亚洲v天堂无码| 精品久久久久久中文字幕女| 国产成人精品午夜视频'| 欧美日韩国产一级| 久久a级片| 久久6免费视频| 丰满少妇αⅴ无码区| 欧美成人h精品网站| 国产噜噜噜视频在线观看 | 成人福利在线视频| 白浆免费视频国产精品视频| 亚洲人成色77777在线观看| 日韩a级毛片| 无码AV动漫| 真实国产精品vr专区| 久久精品无码一区二区国产区| 久草视频中文| 婷婷六月在线| 亚洲AⅤ波多系列中文字幕| 国产精品视频a| 国产99免费视频| 国产三级韩国三级理| 久久免费视频6| 日韩国产亚洲一区二区在线观看| 欧美一区二区啪啪| 亚洲无码精品在线播放| 欧美精品在线观看视频| 国产成人综合亚洲欧美在| 国产专区综合另类日韩一区| 精品自窥自偷在线看| 亚洲二区视频| 国产微拍精品| 亚洲三级a| 视频二区中文无码| 国产精品专区第1页| 日本人妻一区二区三区不卡影院| 亚洲精品视频免费看| 国产成在线观看免费视频 | 怡红院美国分院一区二区| 无码高潮喷水专区久久| 内射人妻无套中出无码| 日韩精品一区二区三区大桥未久 | 国产又色又爽又黄| 亚洲精品第五页| 欧美综合区自拍亚洲综合天堂| 国产精品主播| 香蕉视频在线观看www| 国产99精品久久| 免费看黄片一区二区三区| 婷婷午夜天| 国产91在线|中文| 国产精品不卡永久免费| 国产在线观看一区精品| 婷婷午夜影院| 国产精品成人一区二区不卡 | 中文字幕av无码不卡免费 | 国产欧美在线观看精品一区污| 国产精品性| 日本午夜影院| 国产男女免费完整版视频| 亚洲午夜福利精品无码不卡| 99热国产在线精品99| 亚洲欧美不卡| 久热99这里只有精品视频6| 手机永久AV在线播放| 久久国产亚洲偷自| 国产一区二区在线视频观看| 国产制服丝袜91在线| 日本在线亚洲| 九九热视频精品在线| 亚洲精品麻豆| 国产情精品嫩草影院88av|