計算機操作系統(tǒng)畢業(yè)論文(2)
計算機操作系統(tǒng)畢業(yè)論文
計算機操作系統(tǒng)畢業(yè)論文篇2
淺析計算機操作系統(tǒng)中死鎖問題
摘 要:死鎖問題是計算機操作系統(tǒng)故障中一個十分重要的組成部分,其在對計算機資源使用最優(yōu)化的實現(xiàn)面前無疑是個亟待解決的問題,當然,就這種計算機操作系統(tǒng)中的死鎖問題而言,其絕不是憑空產(chǎn)生的,相反的,其有著自身的一系列必要條件,而這些必要條件和產(chǎn)生原因?qū)嶋H上又可以為相應應對措施的采取指明突破口。本文主要圍繞著計算機操作系統(tǒng)中的死鎖問題這一中心主題,從死鎖問題的具體內(nèi)涵出發(fā),通過對其產(chǎn)生原因、必要條件的論述和揭示,最后給出可行的死鎖解決策略。
關(guān)鍵詞:計算機操作系統(tǒng);死鎖問題;原因;對策
死鎖,顧名思義,就是一個不通的狀態(tài),而當期具體到計算機操作系統(tǒng)之中時,其則表示在一把包括多個進程在內(nèi)的進程集合體中,每個進程都在等待相應事件的促發(fā),而這些事件卻又在等待另一類進程的完成,因此,這樣一來進程之間一直處于一種等待的狀態(tài)之中,無法得到順利地執(zhí)行。當然,這種不同的狀態(tài)也就必然導致了資源空間的極大浪費,不需要占用的資源無法放出,需要的資源又無法得到利用,這對于計算機操作系統(tǒng)的運行來說,無疑是個不好的消息。因此,我們在進行實際的計算機操作系統(tǒng)設(shè)計和運行時,總是需要將其產(chǎn)生原因及形成機制有一個完整的認識,并及時地采用相關(guān)措施加以應對。
1 計算機操作系統(tǒng)死鎖問題
我們知道,操作系統(tǒng)是一臺計算機的靈魂,沒有操作系統(tǒng)計算機只能是一副空殼,什么功能也無法實現(xiàn)。然而,也正是在這種操作系統(tǒng)重要性的要求之下,人們已經(jīng)對其越來越為依賴了。當然,這種依賴性如果碰到計算機運行不暢或者死機的情況,用戶則會變得異常煩躁,而這種死機以及卡殼現(xiàn)象的發(fā)生實際上在很大層面上都是死鎖問題導致的。我們都可以清晰認識到的是,就一個計算機系統(tǒng)而言,其所具有的系統(tǒng)資源是相對有限的,而這種資源在多數(shù)情況下又表現(xiàn)出一種獨占性的特點,即許多資源無論在什么時刻都只能供一個進程使用,而這一個進程所占用的系統(tǒng)資源又是多方面的。雖然如今的計算機操作系統(tǒng)大部分采用的都是并發(fā)處理以及資源共享,但是其在中央處理器上的執(zhí)行時間是不確定的,這樣就必然導致進程在具體執(zhí)行的之后呈現(xiàn)出一定的不確定性。
另外,這些進程實際上又存在著一種競爭的關(guān)系,而這樣一來就必然導進程發(fā)生死鎖的現(xiàn)象。事實上,就計算機操作系統(tǒng)的死鎖問題而演變,其實際上就是指一個不通的狀態(tài),而當期具體到計算機操作系統(tǒng)之中時,其則表示在一把包括多個進程在內(nèi)的進程集合體中,每個進程都在等待相應的促發(fā),而這些事件卻又在等待另一類進程的完成,因此,這樣一來進程之間一直處于一種等待的狀態(tài)之中,無法得到順利地執(zhí)行。當然,這種不同的狀態(tài)也就必然導致了資源空間的極大浪費,不需要占用的資源無法放出,需要的資源又無法得到利用。因此,我們可以發(fā)現(xiàn),單個進程是不會發(fā)生死鎖問題的,只有兩個或者兩個以上的進程出現(xiàn)時,死鎖才能夠產(chǎn)生。
2 計算機操作系統(tǒng)死鎖問題的形成機制
事實上,就計算機操作系統(tǒng)的死鎖問題而言,其雖然是如今給人類操作系統(tǒng)以及各個操作系統(tǒng)版本在實際的使用過程中經(jīng)常出現(xiàn)的一類問題,并對用戶的實際運用造成了一定的影響,而這種影響是不能憑空產(chǎn)生的,因為這種操作系統(tǒng)死鎖問題有著一定的的形成機制。一般來說,造成計算機操作系統(tǒng)死鎖的原因主要包括有兩個方面,一方面是多個進程在系統(tǒng)資源使用上的競爭,即系統(tǒng)中所具有的共享資源并不能滿足相關(guān)進程的需要,從而出現(xiàn)爭奪的現(xiàn)象,而這種資源又可以具體分為硬件資源以及包括數(shù)據(jù)在內(nèi)的軟件資源。另一方面則是進程在進行順序的安排上是非法的,這樣一種非法的順序也就必然導致計算操作系統(tǒng)出現(xiàn)混亂以及卡殼的現(xiàn)象。
一般來說,計算機操作系統(tǒng)中的資源可以大致分為可剝奪性資源以及不可剝奪性資源,而就前者而言,當某一進程向系統(tǒng)請求要占用這一資源時,其完全可以為代替原先占用的那個進程,但是這種進程實際上又需要依賴相應的進程優(yōu)先實現(xiàn)。即優(yōu)先級高的可以剝奪優(yōu)先級低的,反之則不成立。而包括打印機以及磁帶機在內(nèi)的后者則不可能實現(xiàn)這一剝奪行為,而且也正是這種不可剝奪性,使得其死鎖發(fā)生的概率大大增加。當然,包括信號量使用不當以及程序設(shè)計不合理等在內(nèi)的因素也會直接導致計算機操作系統(tǒng)死鎖問題的發(fā)生。例如,進程與進程之間都在互相等待雙方傳來的消息,而這種消息如果使用不當則會使得相關(guān)進程不能順利地向前推進,從而陷入一種死鎖狀態(tài)。不過,死鎖若要產(chǎn)生,其就必須就要符合多個條件,即每一個資源只能被一個進程使用、進程在取得資源后不能強行剝奪以及兩個或兩個以上進程之間形成一種循環(huán)式的等待資源關(guān)系。
3 計算機操作系統(tǒng)死鎖問題的解決策略
當然,當我們意識到計算機操作系統(tǒng)中死鎖問題重要性之時,我們總不能聽之任之,讓其一直持續(xù)下去,相反的,我們總會在充分發(fā)現(xiàn)其具體內(nèi)涵及形成機制之后,對其發(fā)生的構(gòu)成要素進行破壞和抑制,干擾其具體形成過程,才能真正意義上將這種死鎖問題的發(fā)生概率以及發(fā)生率及其所造成的影響控制在最小范圍之內(nèi)。筆者在總結(jié)自身工作經(jīng)驗的過程中發(fā)現(xiàn),常用的死鎖問題解決策略主要表現(xiàn)在以下幾個方面:
3.1 死鎖預防
通常的處理方式有以下三種:(1)打破"不剝奪"條件:強迫那些請求新資源而沒有立即得到滿足的進程暫時釋放它已保持的其它資源。這種方法實現(xiàn)起來非常復雜,通常適用于CPU和主存,缺點是反復地申請和釋放資源,降低了整個系統(tǒng)的吞吐量;(2)打破"部分分配"條件:對某進程所要求的資源一次性地分配完畢缺點是致使系統(tǒng)資源的嚴重浪費,可能有進程已占有的資源而很少使用;(3)打破"環(huán)路等待"條件:為系統(tǒng)中每類資源規(guī)定一個唯一的序號,而且要求每個進程都要嚴格按照遞增的順序請求資源。它基于動態(tài)分配的思想,所以資源利用率比前面一種方法要高。但同時也有其缺點:一是各資源的序號不宜經(jīng)常變動,二是如果進程實際需要的資源順序與排定的資源序號不同時,也會造成資源的浪費。
3.2 死鎖檢測與恢復
死鎖檢測與恢復與死鎖預防相比,具有積極主動的一面。死鎖預防是通過一定的限制約束策略,來防止造成死鎖產(chǎn)生的四個沖要條件中的任一個的出現(xiàn)來實現(xiàn)避免死鎖的。而死鎖的檢測是:只要有可能,就向申請資源的進程進行分配資源。操作系統(tǒng)會周期性的去檢測是否存在“環(huán)鏈等待”的出現(xiàn)。如果發(fā)現(xiàn)存在“環(huán)鏈等待”,即出現(xiàn)了死鎖,則會采取一定的措施來消除死鎖。常用的實施方法是撤消或掛起一些進程,以便回收一些資源,再將這些資源分配給已處于阻塞狀態(tài)的進程,使之轉(zhuǎn)為就緒狀態(tài)以繼續(xù)運行。需要特別說明的是:死鎖檢測與恢復并不能防止死鎖的發(fā)生,它只是確定系統(tǒng)中是否存在死鎖,然后再予以恢復。
4 結(jié)束語
經(jīng)過上文的分析和介紹,我們對計算機操作系統(tǒng)死鎖問題的內(nèi)涵、形成機制、產(chǎn)生條件以及常用的解決策略等幾個方面的內(nèi)容有了一定的了解,從中我們可以深刻地認識到,就這種極大浪費系統(tǒng)資源并降低系統(tǒng)整體運行效率的死鎖問題來說,其能否在計算機操作系統(tǒng)的實際運行中得到完善的解決顯得尤為重要和必要。當然,正如我們在上文中說的那樣,由于計算機操作系統(tǒng)自身、因素以及外在的人為操作因素等方面因素的影響,計算機操作系統(tǒng)的死鎖問題經(jīng)常發(fā)生,而這種發(fā)生實際上又是在多個必要條件均出現(xiàn)時才會出現(xiàn),這樣一來,我們便能夠及時地把握這種形成機制,及時地采用相關(guān)的解決策略,從而完善地解決這一問題。
參考文獻:
[1]毛布,謝汶.一種基于博弈論的死鎖檢測機制研究[J].成都電子機械高等??茖W校學報,2010(04).