銀行家算法怎么是預(yù)防死鎖
【答案】:A、D 銀行家算法是避免死鎖的算法,故 B 選項錯誤;只要能使系統(tǒng)始終都處于安全狀態(tài),便可避免發(fā)生死鎖,故 C 選項錯誤。
在避免死鎖的方法中,所施加的限制條件較弱,有可能獲得令人滿意的系統(tǒng)性能。在該方法中把系統(tǒng)的狀態(tài)分為安全狀態(tài)和不安全狀態(tài),只要能使系統(tǒng)始終都處于安全狀態(tài),便可以避免發(fā)生死鎖。
什么是銀行家算法:銀行家算法是一種最有代表性的避免死鎖的算法。在避免死鎖方法中允許進(jìn)程動態(tài)地申請資源,但系統(tǒng)在進(jìn)行資源分配之前,應(yīng)先計算此次分配資源的安全性,若分配不會導(dǎo)致系統(tǒng)進(jìn)入不安全狀態(tài),則分配,否則等待。
銀行家算法是通過動態(tài)地檢測系統(tǒng)中資源分配情況和進(jìn)程對資源的需求情況來決定如何分配資源的,在能確保系統(tǒng)處于安全狀態(tài)時才能把資源分配給申請者,從而避免系統(tǒng)發(fā)生死鎖。
TDTD死鎖的避免不嚴(yán)格地限制死鎖的必要條件的存在,而是系統(tǒng)在系統(tǒng)運行過程中小心地避免死鎖的最終發(fā)生。最著名的死鎖避免算法是銀行家算法。死鎖避免算法需要很大的系統(tǒng)開銷。
打破循環(huán)等待條件:實現(xiàn)資源有序分配策略,對所有設(shè)備實現(xiàn)分類編號,所有進(jìn)程只能采用按序號遞增的形式申請資源。
產(chǎn)生死鎖的必要條件有哪些?如何預(yù)防死鎖?
1、產(chǎn)生死鎖的四個必要條件是:互斥條件、請求和保持條件、不剝奪條件、環(huán)路等待條件,只有這四個條件都滿足了才會發(fā)生死鎖的現(xiàn)象,只要打破其中一個便可以有效預(yù)防死鎖的發(fā)生。
2、設(shè)置死鎖超時參數(shù)為合理范圍,如:3分鐘-10分種;超過時間,自動放棄本次操作,避免進(jìn)程懸掛;3優(yōu)化程序,檢查并避免死鎖現(xiàn)象出現(xiàn);4對所有的腳本和SP都要仔細(xì)測試,在正是版本之前。
3、死鎖的四個條件是:互斥條件、請求與保持條件、不剝奪條件和循環(huán)等待條件?;コ鈼l件 互斥條件指的是,至少有一個資源必須以排他的方式被一個進(jìn)程使用,也就是說,在某一時刻只有一個進(jìn)程能夠使用該資源。
預(yù)防死鎖方法是破壞產(chǎn)生死鎖的必要條件?
1、預(yù)防死鎖:通過設(shè)置一些限制條件,去破壞產(chǎn)生死鎖的必要條件。避免死鎖:在資源分配過程中,使用某種方法避免系統(tǒng)進(jìn)入不安全的狀態(tài),從而避免發(fā)生死鎖。
2、產(chǎn)生死鎖的四個必要條件是:互斥條件、請求和保持條件、不剝奪條件、環(huán)路等待條件,只有這四個條件都滿足了才會發(fā)生死鎖的現(xiàn)象,只要打破其中一個便可以有效預(yù)防死鎖的發(fā)生。
3、死鎖預(yù)防:破壞死鎖的四個必要條件之一,如:避免一個進(jìn)程同時占有多個資源、讓進(jìn)程在開始時就申請所有所需資源等。死鎖避免:通過合理的資源分配策略確保系統(tǒng)始終處于安全狀態(tài),如:銀行家算法。
4、預(yù)防死鎖的根本辦法就是要使死鎖產(chǎn)生的4個必要條件之一不存在。下面來分析一下破壞這些條件的可能性。破壞互斥條件 破壞互斥條件即允許多個進(jìn)程同時訪問資源。
5、)預(yù)防死鎖。這是一種較為簡單和直觀的事先預(yù)防的方法。該方法是通過設(shè)置某些限制條件,去破壞產(chǎn)生死鎖的四個必要條件中的一個或幾個條件,來預(yù)防發(fā)生死鎖。預(yù)防死鎖是一種較易實現(xiàn)的方法,已被廣泛使用。
6、 死鎖是由于兩個或以上的線程互相持有對方需要的資源,導(dǎo)致這些線程處于等待狀態(tài),無法執(zhí)行。產(chǎn)生死鎖的四個必要條件互斥性:線程對資源的占有是排他性的,一個資源只能被一個線程占有,直到釋放。
避免死鎖的一個著名的算法是
銀行家算法是艾茲格迪杰斯特拉在1965年的時候為了T.H.E系統(tǒng)所研發(fā)設(shè)計出來的一種系統(tǒng)算法,是一個避免死鎖的著名算法。
避免死鎖的著名算法是銀行家算法。艾茲格·迪杰斯特拉在1965年為T.H.E系統(tǒng)設(shè)計的一種避免死鎖產(chǎn)生的算法。它以銀行借貸系統(tǒng)的分配策略為基礎(chǔ),判斷并保證系統(tǒng)的安全運行。
銀行家算法是死鎖避免的重要算法。銀行家算法:資源==錢;收回資源==收回貸款;收不回資源==不會放貸;例題:假設(shè)系統(tǒng)中有三類互斥資源R1,R2,R3。
死鎖的避免不嚴(yán)格地限制死鎖的必要條件的存在,而是系統(tǒng)在系統(tǒng)運行過程中小心地避免死鎖的最終發(fā)生。最著名的死鎖避免算法是銀行家算法。死鎖避免算法需要很大的系統(tǒng)開銷。
處理死鎖的思路如下:預(yù)防死鎖:破壞四個必要條件中的一個或多個來預(yù)防死鎖。避免死鎖:在資源動態(tài)分配的過程中,用某種方式防止系統(tǒng)進(jìn)入不安全的狀態(tài)。檢測死鎖:運行時產(chǎn)生死鎖,及時發(fā)現(xiàn)思索,將程序解脫出來。
銀行家算法
1、銀行家算法(Bankers Algorithm)是一個避免死鎖(Deadlock)的著名算法,是由艾茲格·迪杰斯特拉在1965年為T.H.E系統(tǒng)設(shè)計的一種避免死鎖產(chǎn)生的算法。它以銀行借貸系統(tǒng)的分配策略為基礎(chǔ),判斷并保證系統(tǒng)的安全運行。
2、銀行家算法是最有代表性的避免死鎖算法,是Dijkstra提出的銀行家算法。這是由于該算法能用于銀行系統(tǒng)現(xiàn)金貸款的發(fā)放而得名。
3、銀行家算法是一種最有代表性的避免死鎖的算法。要解釋銀行家算法,必須先解釋操作系統(tǒng)安全狀態(tài)和不安全狀態(tài)。安全狀態(tài)是若存在一個由系統(tǒng)中所有進(jìn)程構(gòu)成的安全序列P1,…,Pn,則系統(tǒng)處于安全狀態(tài),安全狀態(tài)一定是沒有死鎖發(fā)生。
4、銀行家算法中的數(shù)據(jù)結(jié)構(gòu)。為了實現(xiàn)銀行家算法,在系統(tǒng)中必須設(shè)置這樣四個數(shù)據(jù)結(jié)構(gòu),分別用來描述系統(tǒng)中可利用的資源,所有進(jìn)程對資源的最大需求,系統(tǒng)中的資源分配以及所有進(jìn)程還需要多少資源的情況。
5、銀行家算法問題是研究一個銀行家如何將其總數(shù)一定的現(xiàn)金安全地借給若干個顧客,使這些顧客既能滿足對資金的要求,又能完成其交易,也使銀行家可以收回自己的全部現(xiàn)金不致于破產(chǎn)。
操作系統(tǒng)(死鎖避免)---銀行家算法解題
死鎖的處理 銀行家算法是死鎖避免的重要算法。銀行家算法:資源==錢;收回資源==收回貸款;收不回資源==不會放貸;例題:假設(shè)系統(tǒng)中有三類互斥資源R1,R2,R3。
銀行家算法用于解決死鎖的避免。銀行家算法是一種最有代表性的避免死鎖的算法。要解釋銀行家算法,必須先解釋操作系統(tǒng)安全狀態(tài)和不安全狀態(tài)。
死鎖的避免是讓系統(tǒng)處于安全狀態(tài),來避免發(fā)生死鎖。安全狀態(tài):如果操作系統(tǒng)能保證所有的進(jìn)程在有限的時間內(nèi)得到需要的全部資源,則稱系統(tǒng)處于“安全狀態(tài)”。
②采用銀行家算法進(jìn)行計算分析可知:系統(tǒng)可以滿足P2進(jìn)程對資源的請求,將資源分配給P2之后,至少可以找到一個安全的執(zhí)行序列,如(P2, P1, P3, P4)使各進(jìn)程正常運行終結(jié)。
死鎖預(yù)防:破壞死鎖的四個必要條件之一,如:避免一個進(jìn)程同時占有多個資源、讓進(jìn)程在開始時就申請所有所需資源等。死鎖避免:通過合理的資源分配策略確保系統(tǒng)始終處于安全狀態(tài),如:銀行家算法。
銀行家算法是一種最有代表性的避免死鎖的算法。在避免死鎖方法中允許進(jìn)程動態(tài)地申請資源,但系 銀行家算法統(tǒng)在進(jìn)行資源分配之前,應(yīng)先計算此次分配資源的安全性,若分配不會導(dǎo)致系統(tǒng)進(jìn)入不安全狀態(tài),則分配,否則等待。