計算機操作系統(tǒng) 第三版 第三章處理機調(diào)度_第1頁
計算機操作系統(tǒng) 第三版 第三章處理機調(diào)度_第2頁
計算機操作系統(tǒng) 第三版 第三章處理機調(diào)度_第3頁
計算機操作系統(tǒng) 第三版 第三章處理機調(diào)度_第4頁
計算機操作系統(tǒng) 第三版 第三章處理機調(diào)度_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第三章處理機調(diào)度與死鎖處理機管理的工作是對CPU資源進行合理的分配使用,以提高處理機利用率,并使各用戶公平地得到處理機資源。要解決的問題WHAT:按什么原則分配CPU

—進程調(diào)度算法WHEN:何時分配CPU

—進程調(diào)度的時機HOW:如何分配CPU

—CPU調(diào)度過程(進程的上下文切換)作業(yè)是任務實體,進程是完成任務的執(zhí)行實體;沒有作業(yè)任務,進程無事可干,沒有進程,作業(yè)任務沒法完成。一個作業(yè)可由多個進程組成,且必須至少有一個進程,但反過來不成立。作業(yè)概念更多地用在批處理操作系統(tǒng),而進程則可以用在各種多道程序設計系統(tǒng)。作業(yè)是用戶向計算機提交任務的任務實體。進程是計算機為完成用戶任務而設置的執(zhí)行實體,是系統(tǒng)分配資源的基本單位。一個作業(yè)可由多個進程組成,且必須至少有一個進程,但反過來不成立。作業(yè)和進程的關系

處理機三級調(diào)度1.高級(Long-term)調(diào)度——作業(yè)調(diào)度

作業(yè)調(diào)度用于決定把外存井上處于作業(yè)后備隊列上的哪些作業(yè)調(diào)入內(nèi)存,并為它們創(chuàng)建進程、分配必要的資源,然后再將新創(chuàng)建的進程排在就緒隊列上,準備執(zhí)行。在批處理系統(tǒng)中,作業(yè)是先駐留在外存的輸入井上的,因此需要有作業(yè)調(diào)度;在分時系統(tǒng)中,通過鍵盤輸入的命令和數(shù)據(jù)直接進入內(nèi)存,無需作業(yè)調(diào)度。2.低級(Short-term)調(diào)度——進程調(diào)度

進程調(diào)度決定就緒隊列中哪個進程將獲得處理機,然后由分派程序執(zhí)行把處理機分配給該進程的操作。進程調(diào)度是最基本的調(diào)度,任何操作系統(tǒng)都有進程調(diào)度。低級調(diào)度:最基本。各類0S必須具有的功能。中級調(diào)度:較完善的OS中,引入其來改善內(nèi)存的利用率和提高作業(yè)的吞吐量。高級調(diào)度:批處理OS必須配置,純粹的分時或?qū)崟rOS中,通常無須配置。提交狀態(tài)收容狀態(tài)完成狀態(tài)外存內(nèi)存分級調(diào)度作業(yè)的狀態(tài)及其轉(zhuǎn)換就緒等待就緒等待執(zhí)行輸入管理系統(tǒng)交換調(diào)度線程調(diào)度進程調(diào)度作業(yè)調(diào)度提交狀態(tài):作業(yè)處于從輸入設備進入外存的過程;收容狀態(tài):作業(yè)的全部信息被輸入到輸入井,尚未被調(diào)度執(zhí)行;完成狀態(tài):作業(yè)運行完畢,所占資源尚未被收回。作業(yè)狀態(tài)一個作業(yè)從提交給計算機系統(tǒng)到執(zhí)行結(jié)束退出系統(tǒng),一般都要經(jīng)歷提交、后備、執(zhí)行和完成等4個狀態(tài)。提交狀態(tài):一個作業(yè)在其處于從輸入設備進入外部存儲設備的過程稱為提交狀態(tài)。后備狀態(tài):也稱為收容狀態(tài)。若一個作業(yè)的全部信息已全部被輸入進輸入井,則在它還未被調(diào)度去執(zhí)行之前,該作業(yè)處于后備狀態(tài)。執(zhí)行狀態(tài):作業(yè)調(diào)度程序從后備作業(yè)中選取若干個作業(yè)到內(nèi)存投入運行。它為被選中作業(yè)建立進程并分配必要的資源,這時,這些被選中的作業(yè)處于執(zhí)行狀態(tài)。完成狀態(tài):當作業(yè)運行完畢,但它所占用的資源尚未全部被系統(tǒng)回收時,該作業(yè)處于完成狀態(tài)。調(diào)度的層次提交狀態(tài)收容狀態(tài)完成狀態(tài)外存內(nèi)存就緒等待就緒等待執(zhí)行輸入管理系統(tǒng)交換調(diào)度線程調(diào)度進程調(diào)度作業(yè)調(diào)度第1級:作業(yè)調(diào)度、宏觀調(diào)度、高級調(diào)度對外存輸入井上的大量作業(yè)進行選擇,對選擇的作業(yè)分配資源,建立相應進程。作業(yè)執(zhí)行完畢時,回收資源。分級調(diào)度調(diào)度的層次提交狀態(tài)收容狀態(tài)完成狀態(tài)外存內(nèi)存就緒等待就緒等待執(zhí)行輸入管理系統(tǒng)交換調(diào)度線程調(diào)度進程調(diào)度作業(yè)調(diào)度第2級:交換調(diào)度、中級調(diào)度將處于外存交換區(qū)中的就緒狀態(tài)或等待狀態(tài)的進程調(diào)入內(nèi)存,或把處于內(nèi)存就緒狀態(tài)或內(nèi)存等待狀態(tài)的進程交換導外存交換區(qū)。分級調(diào)度調(diào)度的層次提交狀態(tài)收容狀態(tài)完成狀態(tài)外存內(nèi)存就緒等待就緒等待執(zhí)行輸入管理系統(tǒng)交換調(diào)度線程調(diào)度進程調(diào)度作業(yè)調(diào)度第3級:進程調(diào)度、微觀調(diào)度、低級調(diào)度選取一個處于就緒狀態(tài)的進程占用處理機,之后,進行上下文切換以便建立與占用處理機進程相適應的執(zhí)行環(huán)境。分級調(diào)度調(diào)度的層次提交狀態(tài)收容狀態(tài)完成狀態(tài)外存內(nèi)存就緒等待就緒等待執(zhí)行輸入管理系統(tǒng)交換調(diào)度線程調(diào)度進程調(diào)度作業(yè)調(diào)度第4級:線程調(diào)度選取一個處于就緒狀態(tài)的線程進入執(zhí)行狀態(tài)。分級調(diào)度3.1.3處理機調(diào)度模型分時間片完完成CPU交互型作業(yè)等待事件活動就緒隊列靜止就緒隊列靜止阻塞隊列活動阻塞隊列事件發(fā)生作業(yè)調(diào)度后備作業(yè)隊列批量作業(yè)中級調(diào)度調(diào)入中級調(diào)度調(diào)出磁盤進程調(diào)度中級調(diào)度調(diào)出事件發(fā)生具有三級級調(diào)度的調(diào)度隊列模型作業(yè)后備狀態(tài)執(zhí)行狀態(tài)完成狀態(tài)4.2.1作業(yè)調(diào)度的功能記錄系統(tǒng)中各作業(yè)的狀況系統(tǒng)為每個作業(yè)建立一個JCB記錄作業(yè)信息,系統(tǒng)通過JCB感知作業(yè)的存在。作業(yè)名作業(yè)類型資源要求資源使用情況優(yōu)先級(數(shù))當前狀態(tài)其它作業(yè)進入后備狀態(tài)時,系統(tǒng)為其建立JCB;作業(yè)進入完成狀態(tài)后,系統(tǒng)撤銷其JCB。作業(yè)調(diào)度1作業(yè)調(diào)度的功能記錄系統(tǒng)中各作業(yè)的狀況從后備隊列中選擇一部分作業(yè)投入運行(涉及調(diào)度算法)為被選中的作業(yè)做好執(zhí)行前的準備(建立進程、為進程們分配系統(tǒng)資源)作業(yè)執(zhí)行結(jié)束時的后處理作業(yè)調(diào)度2作業(yè)調(diào)度目標目標公平性:對所有作業(yè)應該是公平的利用率:應使設備有高的利用率作業(yè)量:每天執(zhí)行盡可能多的作業(yè)響應時間:有快的響應時間作業(yè)調(diào)度3作業(yè)調(diào)度性能衡量面向用戶的調(diào)度性能準則周轉(zhuǎn)時間:作業(yè)從提交到完成(得到結(jié)果)所經(jīng)歷的時間。周轉(zhuǎn)時間Ti=作業(yè)完成時刻(Tei)-作業(yè)提交時刻(Tsi)=作業(yè)等待時間(Twi)+作業(yè)執(zhí)行時間(Tri)平均周轉(zhuǎn)時間作業(yè)調(diào)度3作業(yè)調(diào)度性能衡量面向用戶的調(diào)度性能準則帶權(quán)周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間Wi=Ti/Tri平均帶權(quán)周轉(zhuǎn)時間響應時間:用戶輸入一個請求(如擊鍵)到系統(tǒng)給出首次響應(如屏幕顯示)的時間——分時系統(tǒng)作業(yè)調(diào)度3作業(yè)調(diào)度性能衡量面向系統(tǒng)的調(diào)度性能準則吞吐量:單位時間內(nèi)所完成的作業(yè)數(shù),跟作業(yè)本身特性和調(diào)度算法都有關系——批處理系統(tǒng)處理機利用率:——大中型主機各種設備的均衡利用:如CPU繁忙的作業(yè)和I/O繁忙(指次數(shù)多,每次時間短)的作業(yè)搭配——大中型主機作業(yè)調(diào)度1先來先服務按照作業(yè)到達后備作業(yè)隊列(或進程進入就緒隊列)的先后次序來選擇作業(yè)(或進程)。

FCFS算法當前作業(yè)或進程占用CPU,直到執(zhí)行完或阻塞,才出讓CPU(非搶占方式)最簡單的算法

FCFS特點比較有利于長作業(yè),而不利于短作業(yè)有利于CPU繁忙的作業(yè),而不利于I/O繁忙的作業(yè)調(diào)度算法2短作業(yè)/進程優(yōu)先(SJF/SPF)調(diào)度算法

(SJF,ShortestJobFirst)

SJF算法對預計執(zhí)行時間短的作業(yè)(進程)優(yōu)先分派處理機。通常后來的短作業(yè)不搶先正在執(zhí)行的作業(yè)

SJF優(yōu)點比FCFS改善平均周轉(zhuǎn)時間和平均帶權(quán)周轉(zhuǎn)時間,縮短作業(yè)的等待時間提高系統(tǒng)的吞吐量調(diào)度算法2短作業(yè)優(yōu)先

(SJF,ShortestJobFirst)

SJF缺點對長作業(yè)非常不利,可能長時間得不到執(zhí)行未能依據(jù)作業(yè)的緊迫程度來劃分執(zhí)行的優(yōu)先級難以準確估計作業(yè)(進程)的執(zhí)行時間,從而影響調(diào)度性能調(diào)度算法先來先服務調(diào)度算法和短作業(yè)優(yōu)先調(diào)度算法作業(yè)提交時間運行時間開始時間完成時間周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間執(zhí)行順序18.002.0028.500.5039.000.1049.500.208.0010.0012110.0010.5022410.5010.6031.61610.6010.8041.36.58.0010.0012110.0010.1021.11110.1010.3030.8410.3010.8042.34.6先來先服務算法平均周轉(zhuǎn)時間t=1.725帶權(quán)平均周轉(zhuǎn)時間w=6.875短作業(yè)優(yōu)先算法平均周轉(zhuǎn)時間t=1.55帶權(quán)平均周轉(zhuǎn)時間w=5.154時間片輪轉(zhuǎn)算法

(RoundRobin)

說明前兩種算法主要用于宏觀調(diào)度,說明怎樣選擇一個進程或作業(yè)開始運行,開始運行后的作法都相同,即運行到結(jié)束或阻塞,阻塞結(jié)束時等待當前進程放棄CPU本算法主要用于微觀調(diào)度,說明怎樣并發(fā)運行,即切換的方式;設計目標是提高資源利用率其基本思路是通過時間片輪轉(zhuǎn),提高進程并發(fā)性和響應時間特性,從而提高資源利用率調(diào)度算法4時間片輪轉(zhuǎn)算法

(RoundRobin)RoundRobin算法將系統(tǒng)中所有的就緒進程按照FCFS原則,排成一個隊列當執(zhí)行的時間片用完時,調(diào)度程序便停止該進程的執(zhí)行,并將它送就緒隊列的末尾,等待分配下一時間片再執(zhí)行。然后把處理機分配給就緒隊列中新的隊首進程,同時也讓它執(zhí)行一個時間片保證就緒隊列中的所有進程,在一給定的時間內(nèi),均能獲得一個時間片的處理機執(zhí)行時間進程可以未使用完一個時間片,就出讓CPU(如阻塞)F…DCBACPU阻塞完成超時調(diào)度算法4時間片輪轉(zhuǎn)算法

(RoundRobin)

時間片長度的確定(時間片的長度從幾個ms到幾百ms)時間片長度變化的影響過長退化為FCFS算法,進程在一個時間片內(nèi)都執(zhí)行完,響應時間長過短用戶的一次請求需要多個時間片才能處理完,上下文切換次數(shù)增加,響應時間長調(diào)度算法7多級反饋隊列算法(RoundRobinwithMultipleFeedback)多級反饋隊列算法(目前公認的較好的一種進程調(diào)度算法)設置多個就緒隊列,分別賦予不同的優(yōu)先級,如逐級降低,隊列1的優(yōu)先級最高。每個隊列執(zhí)行時間片的長度也不同,規(guī)定優(yōu)先級越低則時間片越長。新進程進入內(nèi)存后,先投入隊列1的末尾,按FCFS算法調(diào)度;若按隊列1一個時間片未能執(zhí)行完,則降低投入到隊列2的末尾,同樣按FCFS算法調(diào)度;如此下去,降低到最后的隊列,則按“時間片輪轉(zhuǎn)”算法調(diào)度直到完成;僅當較高優(yōu)先級的隊列為空,才調(diào)度較低優(yōu)先級的隊列中的進程執(zhí)行。如果有新進程進入優(yōu)先級較高的隊列,則此時新進程將搶占正在運行進程的處理機,并把被搶先的進程投入原隊列的末尾。(搶占式調(diào)度方式)調(diào)度算法多級反饋隊列

在兩道環(huán)境下有四個作業(yè),已知它們進入系統(tǒng)的時間、估計運行時間,系統(tǒng)采用短作業(yè)優(yōu)先作業(yè)調(diào)度算法,作業(yè)被調(diào)度運行后不再退出內(nèi)存,當一新作業(yè)投入運行后,可按照作業(yè)運行時間長短調(diào)整作業(yè)執(zhí)行的次序(可搶占式調(diào)度占用CPU)請給出這四個作業(yè)的執(zhí)行時間序列,并計算出平均周轉(zhuǎn)時間及帶權(quán)平均周轉(zhuǎn)時間調(diào)度算法應用舉例最短作業(yè)優(yōu)先算法執(zhí)行結(jié)果最短作業(yè)優(yōu)先算法執(zhí)行分析過程10:00,JOB1進入,只有一作業(yè),JOB1被調(diào)入執(zhí)行,10:05,JOB2到達,最多允許兩作業(yè)同時進入,所以JOB2也被調(diào)入內(nèi)存中有兩作業(yè),哪一個執(zhí)行?題目規(guī)定當一新作業(yè)運行后,可按作業(yè)運行時間長短調(diào)整執(zhí)行次序即基于優(yōu)先數(shù)可搶占式調(diào)度策略,優(yōu)先數(shù)是根據(jù)作業(yè)估計運行時間大小來決定的,由于JOB2運行時間(20分)比JOB1少(到10:05,JOB1還需25分鐘),所以JOB2運行,而JOB1等待調(diào)度算法應用舉例最短作業(yè)優(yōu)先算法執(zhí)行分析過程10:10,JOB3到達輸入井,內(nèi)存已有兩作業(yè),JOB3不能馬上進入內(nèi)存;10:20,JOB4也不能進入內(nèi)存,10:25,JOB2運行結(jié)束,退出,內(nèi)存中剩下JOB1,輸入井中有兩作業(yè)JOB3和JOB4,如何調(diào)度?作業(yè)調(diào)度算法:最短作業(yè)優(yōu)先,因此JOB3進入內(nèi)存,比較JOB1和JOB3運行時間,JOB3運行時間短,故JOB3運行,同樣,JOB3退出后,下一個是JOB4,JOB4結(jié)束后,JOB1才能繼續(xù)運行。調(diào)度算法應用舉例1.死瑣概念死鎖是指多個并發(fā)執(zhí)行的進程因爭奪資源而出現(xiàn)的一種彼此都不能繼續(xù)推進的僵持局面。死鎖(Deadlock)產(chǎn)生死鎖的原因和必要條件2.產(chǎn)生死鎖的原因競爭資源進程間推進順序非法2.產(chǎn)生死鎖的原因競爭資源資源分為可重用資源和臨時性資源重用資源又分為可剝奪資源和非剝奪資源。可剝奪資源:CPU,存儲器非剝奪資源:打印機競爭重用資源,且數(shù)量不能滿足進程運行需要,就會陷入僵局。又如:200K的可用內(nèi)存,

P1,P2都進行到第二步時,死鎖發(fā)生。P1......Request80Kbytes;Request60Kbytes;P2......Request70Kbytes;Request80Kbytes;產(chǎn)生死鎖的原因和必要條件2.產(chǎn)生死鎖的原因進程間推進順序非法(進程的異步性特征)

進程P進程QGetA GetB…… ……GetB GetA…… ……ReleaseAReleaseB…… ……ReleaseBReleaseA37正確模式

進程P進程QGetA GetB…………ReleaseAReleaseB…… ……GetB GetA…… ……ReleaseBReleaseA

進程在申請資源時,用完一個資源釋放后再申請下一個資源。3.5產(chǎn)生死鎖的原因和必要條件38正確模式

進程P進程QGetA GetA…… ……GetB GetB…… ……ReleaseAReleaseA…… ……ReleaseBReleaseB兩個進程按照相同的順序申請使用資源3.5產(chǎn)生死鎖的原因和必要條件39產(chǎn)生死鎖的原因和必要條件3.產(chǎn)生死鎖的必要條件互斥條件Mutualexclusion一段時間內(nèi),某資源只能由一個進程占用。是臨界資源本身的固有屬性。請求和保持條件Hold-and-wait保持已經(jīng)獲得資源不放,繼續(xù)提出新的資源需求。不剝奪條件Nopreemption進程已獲得資源在未使用完前不能被剝奪。環(huán)路等待條件系統(tǒng)一定有兩個或兩個以上的進程組成的一條環(huán)路,該環(huán)路中的每個進程都在等待著相鄰進程正占用著的資源產(chǎn)生死鎖的原因和必要條件處理死鎖的四種策略預防死鎖通過破除死鎖的四個必要條件之一,來防止死鎖產(chǎn)生。避免死鎖仔細地對資源進行動態(tài)分配,以避免死鎖發(fā)生。檢測與解除死鎖檢測系統(tǒng)中是否出現(xiàn)死鎖,若出現(xiàn)則解除掉。忽略該問題允許系統(tǒng)發(fā)生死鎖,然后解除假裝死鎖永不發(fā)生保證系統(tǒng)永遠不會發(fā)生死鎖預防和避免死鎖的方法預防死鎖如果能夠保證四個必要條件中至少有一個不成立,那么死鎖將不會產(chǎn)生。(Havender,1968)但其中的“互斥”條件不能破除。預防和避免死鎖的方法摒棄“請求和保持”條件方法規(guī)定進程在執(zhí)行前要一次性地申請運行所需全部資源。只有資源全部到手,進程方可運行,否則進程等待。優(yōu)點簡單、易于實現(xiàn)缺點資源利用率低進程運行被延遲預防和避免死鎖的方法摒棄“不剝奪”條件方法保持資源的進程申請新資源失敗時,在轉(zhuǎn)為阻塞狀態(tài)之前,必須釋放其占用的全部資源。而該進程自身則必須等到重新獲得原有資源及新資源后,才能重新運行。缺點實現(xiàn)復雜,代價大3.6預防和避免死鎖的方法摒棄“環(huán)路等待”條件方法1保證每個進程在任何時候只能占用一個資源。要用第二個,必須先釋放第一個。方法2對資源按類型線性排隊編號,進程對資源的請求必須按照資源序號遞增提出。缺點:1.找不出一種人人滿意的編號順序。

2.仍存在資源浪費。

3.用戶編程受到限制。4.限制新類型設備增加預防和避免死鎖的方法避免死鎖思路允許進程動態(tài)的申請資源將系統(tǒng)狀態(tài)分為安全狀態(tài):不會發(fā)生死鎖不安全狀態(tài):可能發(fā)生死鎖避免系統(tǒng)進入不安全狀態(tài)!做法每次進行資源分配時,首先檢測一下資源分配后系統(tǒng)處于何種狀態(tài),若處于安全狀態(tài),則正式實施本次分配;若處于不安全狀態(tài),則不予分配,申請資源的進程阻塞。46預防死鎖的方法系統(tǒng)安全狀態(tài)(用于避免死鎖)安全狀態(tài):系統(tǒng)能按某種進程順序(P1,P2,…,Pn),來為每個進程Pi分配其所需資源,直至滿足每個進程對資源的最大需求,使每個進程都可順利地完成。稱(P1,P2,…,Pn)序列為安全序列預防和避免死鎖的方法例,系統(tǒng)有三個進程P1、P2和P3,共用12臺磁帶機。在T0和T1時刻,系統(tǒng)的資源分配情況分別如下表a和b。進程最大需求已分配可用

P11053

P242P392進程最大需求已分配可用

P11052

P242P393ab預防和避免死鎖的方法結(jié)果:T0時刻系統(tǒng)處于安全狀態(tài)。(安全序列<P2

,P1,P3

>)P1P2P3可用5(5)2(2)2(7)35(5)4(0)2(7)15(5)2(7)510(0)2(7)02(7)109(0)312結(jié)果:T1時刻系統(tǒng)處于不安全狀態(tài)。P1P2P3可用5(5)2(2)3(6)25(5)4(0)3(6)05(5)3(6)449利用銀行家算法避免死鎖避免死鎖策略1.當前狀態(tài)下,某進程申請資源;2.系統(tǒng)假設將資源分給該進程,滿足它的需求;3.檢查分配后的系統(tǒng)狀態(tài)是否是安全的,如果是安全,就確認本次分配;如果系統(tǒng)是不安全的,就取消本次分配并阻塞該進程。(第三步又稱安全算法)避免死鎖策略也稱作銀行家算法。避免死鎖實質(zhì):在進程資源分配時,如何使系統(tǒng)不進入不安全狀態(tài)。預防和避免死鎖的方法預防和避免死鎖的方法利用銀行家算法避免死鎖數(shù)據(jù)結(jié)構(gòu)—n個進程(P1,…,Pn),m類資源(R1,…,Rm)可利用資源向量Available(m)Available[j]表示Rj

類資源的可用數(shù)目。最大需求矩陣Max(n×m)Max[i,j]表示進程Pi

對Rj

類資源的最大需求量。分配矩陣Allocation(n×m)Allocation[i,j]表示已分配給進程Pi

的Rj

類資源的數(shù)目。需求矩陣Need(n×m)Need[i,j]表示進程Pi

對Rj

類資源的剩余需求量Requesti

:進程Pi

的請求向量預防和避免死鎖的方法銀行家算法:進程Pi

發(fā)出資源請求RequestiRequestiNeedi?

執(zhí)行安全性算法,檢查分配后的系統(tǒng)狀態(tài)正式分配安全狀態(tài)Requesti

Available?是

試分配:Available:=AvailableRequestiAllocationi:=Allocationi+RequestiNeedi:=Needi

Requesti是將試分配作廢;恢復原資源分配狀態(tài);進程Pi阻塞。不安全狀態(tài)錯誤否否進程Pi阻塞3.6預防和避免死鎖的方法安全性算法Work:=Available;Finish[i]:=false(i=1,2,…,n);找一滿足下列條件的進程:Finish[i]=false且Needi

WorkWork:=Work+Allocationi;

Finish[i]:=true;找到

所有進程的Finish[i]=true?找不到是系統(tǒng)狀態(tài)安全不是系統(tǒng)狀態(tài)不安全預防和避免死鎖的方法例:系統(tǒng)中有五個進程{P0,P1,P2,P3,P4}和三類資源{A,B,C},每類資源的數(shù)量分別為10、5、7,在T0時刻的資源分配情況如下表。問:P1發(fā)出請求向量Request1(1,0,2),能否分配?ProcessMaxAllocationNeedAvailableABCABCABCABCP0753010743332P1 322200122P2 902302600P3222211011P4433002431ProcessMaxAllocationNeedAvailableP0753010743332P1 322200122P2 902302600P3222211011

P4433002431230020302結(jié)論:可以找到一個安全序列<p1,p3,p4,p2,p0>,所以安全,可以將P1申請的資源分配給它。Request1(1

,0

,2)試分配(結(jié)果見紅字)安全性算法:Work={230}Finish=

falsefalsefalsefalsefalsetrue532743true745true1047true1057true死鎖的檢測與解除死鎖的檢測資源分配圖RAG(ResourceAllo

溫馨提示

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

評論

0/150

提交評論