版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
死鎖的處理1.死鎖的預(yù)防2.死鎖的檢測3.死鎖的恢復(fù)機(jī)制4.多粒度封鎖方法死鎖:是指兩個或兩個以上的進(jìn)程在執(zhí)行過程中,由于競爭資源或者由于彼此通信而造成的一種阻塞的現(xiàn)象,若無外力作用,它們都將無法推進(jìn)下去。產(chǎn)生條件1)互斥條件:指進(jìn)程對所分配到的資源進(jìn)行排它性使用,即在一段時間內(nèi)某資源只由一個進(jìn)程占用。如果此時還有其它進(jìn)程請求資源,則請求者只能等待,直至占有資源的進(jìn)程用畢釋放。2)請求和保持條件:指進(jìn)程已經(jīng)保持至少一個資源,但又提出了新的資源請求,而該資源已被其它進(jìn)程占有,此時請求進(jìn)程阻塞,但又對自己已獲得的其它資源保持不放。3)不剝奪條件:指進(jìn)程已獲得的資源,在未使用完之前,不能被剝奪,只能在使用完時由自己釋放。4)循環(huán)等待條件:指在發(fā)生死鎖時,必然存在一個進(jìn)程——資源的環(huán)形鏈,即進(jìn)程集合{P0,P1,P2,···,Pn}中的P0正在等待一個P1占用的資源;P1正在等待P2占用的資源,……,Pn正在等待已被P0占用的資源。死鎖的預(yù)防方法1.通過對加鎖請求進(jìn)行排序或同時獲得所有的鎖來保證不會發(fā)生循環(huán)等待。2.每當(dāng)?shù)却锌赡軐?dǎo)致死鎖時,進(jìn)行事務(wù)回滾而不是等待加鎖。1)要求每個事務(wù)在開始之前封鎖它的所有數(shù)據(jù)項
缺點:很難預(yù)知哪些數(shù)據(jù)需要封鎖;
數(shù)據(jù)項使用率很低,數(shù)據(jù)項可能很長時間卻用不到;2)對所有的數(shù)據(jù)項強(qiáng)加一個次序,同時要求事務(wù)只能按次序規(guī)定的順序封鎖數(shù)據(jù)項。
只要一個事務(wù)鎖住了某個特定的數(shù)據(jù)項,就不能申請順序中位于該數(shù)據(jù)項前面的鎖。
搶占與事務(wù)回滾
在搶占機(jī)制中,若事務(wù)Tj所申請的鎖已被事務(wù)Ti持有,則授予Ti的鎖可能通過回滾事務(wù)Ti被搶占,被授予Tj。為控制搶占給每一個事務(wù)賦予一個唯一的時間戳。系統(tǒng)僅用時間戳來決定事務(wù)應(yīng)當(dāng)?shù)却€是回滾。1)wait-die機(jī)制基于非搶占技術(shù),當(dāng)事務(wù)Ti申請數(shù)據(jù)項當(dāng)前被Tj持有,僅當(dāng)Ti的時間戳小于Tj時間戳?xí)r,允許Ti等待,否則回滾。2)wound-die機(jī)制基于搶占機(jī)制,當(dāng)事務(wù)Ti申請數(shù)據(jù)項當(dāng)前被Tj持有,僅當(dāng)Ti的時間戳大于Tj時間戳?xí)r,允許Ti等待,否則回滾。假設(shè)事務(wù)T1.T2.T3.時間戳分別為5.10.15。如果T1申請的數(shù)據(jù)項當(dāng)前被T2持有1)wait-die如果T1申請的數(shù)據(jù)項當(dāng)前被T2持有,T1等待,如果T3所申請的數(shù)據(jù)項被T2持有,則T3回滾。2)wound-wait如果T1申請的數(shù)據(jù)項當(dāng)前被T2持有,T1將從T2搶占該數(shù)據(jù)項,T2回滾。如果T3所申請的數(shù)據(jù)項被T2占有,則T3等待。死鎖的檢測死鎖的檢測算法:是當(dāng)進(jìn)程進(jìn)行資源請求時檢查并發(fā)進(jìn)程組是否構(gòu)成資源的請求和占用環(huán)路。如果不存在這一環(huán)路,則系統(tǒng)中一定沒有死鎖。1)無循環(huán)狀態(tài)2)有一個環(huán)的狀態(tài)T1T2T3T4T1T2T4T3死鎖的恢復(fù)選擇犧牲者事務(wù)已計算了多久,并在完成其指定任務(wù)之前該事務(wù)還將回滾多遠(yuǎn)。該事務(wù)已使用了多少數(shù)據(jù)項。為完成事務(wù)還需要多少數(shù)據(jù)項?;貪L時涉及多少事務(wù)。回滾徹底回滾:中止該事務(wù),重新開始。特點:徹底回滾設(shè)計到系統(tǒng)維護(hù)的東西少,執(zhí)行簡單。但是每次回滾都會使事務(wù)重新開始,效率低。部分回滾:只回到可以解除死鎖的地方。特點:系統(tǒng)需要維護(hù)所有正在運(yùn)行事務(wù)的額外信息,需要記錄鎖的申請/授予序列和食物執(zhí)行的更新只有這樣,系統(tǒng)才能準(zhǔn)確的回滾到獲得這些鎖的第一個之前,并取消它之后的所有動作,然后確?;貪L后事務(wù)恢復(fù)執(zhí)行餓死:同一事物因為回滾代價小而總是被選為“犧牲者”,就會導(dǎo)致這個事務(wù)總是被回滾而無法完成,這樣就發(fā)生“餓死”。為此代價因素中要包含回滾次數(shù)限制,來避免發(fā)生這樣的事情多粒度兩個問題:1,如果事務(wù)T需要訪問整個數(shù)據(jù)庫,使用的是一種封鎖協(xié)議,則事務(wù)T必須給數(shù)據(jù)庫中的每個數(shù)據(jù)項加鎖,而執(zhí)行這些加鎖操作是費(fèi)時的。2,如果事務(wù)T只需要存取少量數(shù)據(jù)項,就不應(yīng)該給整個數(shù)據(jù)庫加鎖,否則并發(fā)性就喪失了。多粒度機(jī)制的思路是:小粒度數(shù)據(jù)嵌套在大粒度數(shù)據(jù)項中實現(xiàn),形成數(shù)據(jù)粒度的層次結(jié)構(gòu),即多粒度樹。然后只在高層進(jìn)行加鎖操作就可以影響一整個路徑,同時在低層加鎖操作也能在高層得到體現(xiàn)。粒度層次DBA1Fara1ra2ra3Fbrb1rb2A2Fcrc1rc2整個數(shù)據(jù)庫Area類型File類型Record類型加鎖規(guī)則舉例:若事務(wù)Ti給Fb顯式地加排他鎖,則Fb下面的記錄也加了隱式地排他鎖。顯式排他鎖隱式排他鎖XXX加鎖規(guī)則情況1:此時Tj希望封鎖Fb的記錄rb1,向rb1發(fā)出加鎖請求。Tj必須從樹根到rb1遍歷,發(fā)現(xiàn)不相容的鎖,Tj就要延遲。顯式排他鎖隱式排他鎖XXXTj請求加鎖加鎖規(guī)則情況2:Tk希望封鎖整個數(shù)據(jù)庫,但是不會成功,因為目前Ti在樹某部分(Fb)持有鎖。系統(tǒng)判定方法:搜索整個樹,但是這于設(shè)計多粒度機(jī)制的初衷想違背。引入一種新的鎖:意向鎖。XXX顯式排他鎖隱式排他鎖IXIX排他型意向鎖DBA1Fara1ra2ra3Fbrb1rb2A2Fcrc1rc2三種意向鎖共享型意向鎖(IS):較低層只能加共享鎖;排他型意向鎖(IX):較低層加共享鎖或者排他鎖。共享排他型意向鎖(SIX):表明以該結(jié)點為根的子樹顯式加了共享鎖,然后在更低層顯式加了排他鎖。XIXXXSIXIXSIX希望給某個結(jié)點(rb1)加鎖的事務(wù)必須遍歷從根到rb1的路徑。遍歷過程中,該事務(wù)給各結(jié)點加上意向鎖。(如圖)X多粒度封鎖協(xié)議DBA1Fara1ra2ra3Fbrb1rb2A2Fcrc1rc2舉例:假設(shè)事務(wù)T21讀文件Fa的記錄ra1。那么,T21需給數(shù)據(jù)庫、區(qū)域A1,以及Fa加IS鎖(按順序),最后ra1加S鎖。假設(shè)事務(wù)T22要修改文件Fa的記錄ra2。那么,T22需給數(shù)據(jù)庫、區(qū)域A1,以及Fa加IX鎖(按順序),最后ra2加X鎖。假設(shè)事務(wù)T23要修改文件Fa的所有記錄。那么,T23需給數(shù)據(jù)庫和區(qū)域A1加IS鎖(按順序),最后給Fa加S鎖。假設(shè)事務(wù)T24要讀取整個數(shù)據(jù)庫。它在給數(shù)據(jù)庫加S鎖后就可讀取。其中T21、T23、T24可以并發(fā)存取數(shù)據(jù)庫,事務(wù)T22可以與T21并行,但不能與T23或T24并發(fā)執(zhí)行。該協(xié)議增強(qiáng)了并發(fā)性,減少了開銷。sxIS/IXIS/IXIS/IX多粒度封鎖協(xié)議ISIXSSIXXIStruetruetruetruefalseIXtruetruefalsefalsefalseStruefalsetruefalsefalseSIXtruefalsefalsefalsefalseXfalsefalsefalsefalsefalseDBA1Fara1ra2ra3Fbrb1rb2A2Fcrc1rc2XSIXXXSIX/ISIXISX1,事務(wù)Ti必須遵從圖所示的鎖類型相容函數(shù)2,事務(wù)Ti必須首先封鎖樹的根結(jié)點,并且可以加任意類型的鎖3,僅當(dāng)Ti當(dāng)前對Q(Fb)的父結(jié)點具有IX或IS鎖時,Ti對結(jié)點Q可加S或IS鎖。4,僅當(dāng)Ti當(dāng)前對Q的父結(jié)點具有IX或SIX鎖時,T
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)江市公安局高新技術(shù)開發(fā)區(qū)分局2025年第三次招聘警務(wù)輔助人員備考題庫及一套參考答案詳解
- 2025年根河市人民政府面向社會公開招聘(補(bǔ)招)鄉(xiāng)鎮(zhèn)及政府專職消防隊員26人備考題庫及參考答案詳解
- 中國社會科學(xué)院世界經(jīng)濟(jì)與政治研究所2026年度公開招聘第一批專業(yè)技術(shù)人員6人備考題庫帶答案詳解
- 南充南部縣委組織部黨政機(jī)關(guān)考調(diào)工作人員考試真題2024
- 2025年石河子大學(xué)科研處科研助理招聘備考題庫及參考答案詳解
- 深圳市檢察機(jī)關(guān)2026年招聘警務(wù)輔助人員13人備考題庫及答案詳解一套
- 2025年門市金林灣實驗學(xué)校招聘非編教師備考題庫及一套答案詳解
- 廣西工藝美術(shù)研究院有限公司所屬企業(yè)絹麻所2025年12月招聘備考題庫含答案詳解
- 2025年三明市大田縣公安局在全縣范圍公開招聘警務(wù)輔助人員21名備考題庫完整答案詳解
- 2025年寧夏中科碳基材料產(chǎn)業(yè)技術(shù)研究院招聘備考題庫及答案詳解一套
- 2026年公安機(jī)關(guān)理論考試題庫300道(培優(yōu)a卷)
- 橋機(jī)安裝拆卸監(jiān)理實施細(xì)則
- 志愿者服務(wù)品牌建設(shè)方案
- 2025年個人信息保護(hù)專項工作總結(jié)與整改報告
- 傳遞正能量做好員工
- 2025北京市科學(xué)技術(shù)研究院及所屬事業(yè)單位第三批招聘37人備考題庫附答案
- 網(wǎng)優(yōu)項目年終總結(jié)
- 2025年秋季學(xué)期國家開放大學(xué)《人文英語3》形考任務(wù)綜合測試完整答案(不含聽力部分)
- GB/T 191-2025包裝儲運(yùn)圖形符號標(biāo)志
- 688高考高頻詞拓展+默寫檢測- 高三英語
- 超星爾雅學(xué)習(xí)通《藝術(shù)鑒賞》章節(jié)測試含答案
評論
0/150
提交評論