銀行家算法中的安全狀態(tài)是一個(gè)什么樣的狀態(tài)?
1、如果存在一個(gè)由系統(tǒng)中所有進(jìn)程構(gòu)成的安全序列P1,…,Pn,則系統(tǒng)處于安全狀態(tài)。安全狀態(tài)一定是沒有死鎖發(fā)生。
2、這樣得到一個(gè)安全序列:P1-P3-P0-P2-P4,所以T0狀態(tài)是安全的。T0時(shí)刻P1請(qǐng)求(1,1,2)可用資源數(shù)(3,3,2),可以直接滿足。
3、所謂安全狀態(tài),是指系統(tǒng)能按某種進(jìn)程推進(jìn)順序?yàn)槊總€(gè)進(jìn)程分配其所需資源,直至滿足每個(gè)進(jìn)程對(duì)資源的最大需求,使每個(gè)進(jìn)程都可以順利地完成。
4、銀行家算法是一種最有代表性的避免死鎖的算法。要解釋銀行家算法,必須先解釋操作系統(tǒng)安全狀態(tài)和不安全狀態(tài)。
淺析銀行家算法
1、銀行家算法中的數(shù)據(jù)結(jié)構(gòu)。為了實(shí)現(xiàn)銀行家算法,在系統(tǒng)中必須設(shè)置這樣四個(gè)數(shù)據(jù)結(jié)構(gòu),分別用來描述系統(tǒng)中可利用的資源,所有進(jìn)程對(duì)資源的最大需求,系統(tǒng)中的資源分配以及所有進(jìn)程還需要多少資源的情況。(1)可利用資源向量Available。
銀行家算法安全序列怎么判斷
設(shè)進(jìn)程cusneed提出請(qǐng)求REQUEST [i],則銀行家算法按如下規(guī)則進(jìn)行判斷。(1)如果REQUEST [cusneed] [i]= NEED[cusneed][i],則轉(zhuǎn)(2);否則,出錯(cuò)。
)安全。安全序列 P1 P3 P4 P0 P2 (從第一個(gè)進(jìn)程開始,找所需資源數(shù)小于系統(tǒng)可用資源數(shù)的進(jìn)程(P1 Need(1 2 2) Availabe(3 3 2)),該進(jìn)程需求滿足后把其所有資源還給系統(tǒng)(Available(5 3 2),依此。
銀行家算法的基本思想是分配資源之前,判斷系統(tǒng)是否是安全的;若是,才分配。它是最具有代表性的避免死鎖的算法。 設(shè)進(jìn)程cusneed提出請(qǐng)求REQUEST [i],則銀行家算法按如下規(guī)則進(jìn)行判斷。
用銀行家算法判斷下述每個(gè)狀態(tài)是否安全。如果安全,說明所有進(jìn)程是如何能夠運(yùn)行完畢的。如果不安全,說明為什么可能出現(xiàn)死鎖。