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