數(shù)據(jù)庫系統(tǒng)概論高級篇45講_第1頁
數(shù)據(jù)庫系統(tǒng)概論高級篇45講_第2頁
數(shù)據(jù)庫系統(tǒng)概論高級篇45講_第3頁
數(shù)據(jù)庫系統(tǒng)概論高級篇45講_第4頁
數(shù)據(jù)庫系統(tǒng)概論高級篇45講_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

11.4活鎖和死鎖

技術(shù)可以有效地解決并行操作的一致性問題,但也帶來一些新的問題死鎖活鎖An

Introduction

toDatabaseAn

Introduction

toDatabase1.活鎖2.死鎖11.4活鎖和死鎖11.4.1

活鎖T1T2T3T4Lock

R??????????Lock

R?等待Lock

R?等待等待Unlock

R等待?等待Lock

R?等待?Lock

R?等待?等待?等待Unlock

R?等待等待?Lock

R?An

Introduction

toDatabase11.4.1

活鎖T1T2T3T4Lock

R??????????Lock

R?等待Lock

R?等待等待Unlock

R等待?等待Lock

R?等待?Lock

R?等待?等待?等待Unlock

R?等待等待?Lock

R?An

Introduction

toDatabase11.4.1

活鎖T1T2T3

T4Lock

R????

??

??

??Lock

R?等待Lock

R?等待等待Unlock

R等待?等待Lock

R?等待Lock

R?等待等待?等待Unlock

R

?等待等待Lock

R?活鎖An

Introduction

toDatabase活鎖(續(xù))避免活鎖:采用先來先服務(wù)的策略當多個事務(wù)請求

同一數(shù)據(jù)對象時按請求

的先后次序?qū)@些事務(wù)排隊該數(shù)據(jù)對象上的鎖一旦 ,首先批準申請隊列中第一個事務(wù)獲得鎖An

Introduction

toDatabaseAn

Introduction

toDatabase1.活鎖2.死鎖11.4活鎖和死鎖死鎖(續(xù))T1T2Lock

R1????Lock

R2????Lock

R2?等待等待等待Lock

R1等待等待等待等待??????An

Introduction

toDatabase死鎖(續(xù))T1T2Lock

R1????Lock

R2????Lock

R2?等待等待等待Lock

R1等待等待等待等待??????死鎖An

Introduction

toDatabase解決死鎖的方法兩類方法死鎖的預(yù)防死鎖的

與解除An

Introduction

toDatabase1.死鎖的預(yù)防產(chǎn)生死鎖的原因是兩個或多個事務(wù)都已了一些數(shù)據(jù)對象,然后又都請求對已為其他事務(wù)的數(shù)據(jù)對象加鎖,從而出現(xiàn)死等待。預(yù)防死鎖的發(fā)生就是要破壞產(chǎn)生死鎖的條件An

Introduction

toDatabase死鎖的預(yù)防(續(xù))預(yù)防死鎖的方法1一次法2順序法An

Introduction

toDatabase(1)一次

法要求每個事務(wù)必須一次將所有要使用的數(shù)據(jù)全部加鎖,否則就不能繼續(xù)執(zhí)行T1T2Lock

R1???Lock

R2????Lock

R2?等待等待Lock

R1等待等待????T1T2Lock

R1Lock

R2???Lock

R2??

等待等待ULockR1ULock

R2?Lock

R2Lock

R1??An

Introduction

toDatabase(1)一次

法要求每個事務(wù)必須一次將所有要使用的數(shù)據(jù)全部加鎖,否則就不能繼續(xù)執(zhí)行T1T2Lock

R1???Lock

R2????Lock

R2?等待等待Lock

R1等待等待????T1T2Lock

R1Lock

R2???Lock

R2??等待等待ULockR1ULock

R2?Lock

R2Lock

R1??An

Introduction

toDatabase一次

法存在的問題過早加鎖,降低系統(tǒng)并發(fā)度難于事先精確確定

對象數(shù)據(jù)庫中數(shù)據(jù)是不斷變化的,原來不要求的數(shù)據(jù),在執(zhí)行過程中可能會變成事先精確地確定每個

要對象,所以很難的數(shù)據(jù)對象。解決方法:將事務(wù)在執(zhí)行過程中可能要

的數(shù)據(jù)對象全部加鎖,這就進一步降低了并發(fā)度。An

Introduction

toDatabase(2)順序

法順序,所有事順序

法是預(yù)先對數(shù)據(jù)對象規(guī)定一個務(wù)都按這個順序?qū)嵭?/p>

。順序法存在的問題成本數(shù)據(jù)庫系統(tǒng)中

的數(shù)據(jù)對象極多,并且隨數(shù)據(jù)的刪除等操作而不斷地變化,要

這樣的資源的、順序非常,成本很高。難以實現(xiàn)事務(wù)的請求可以隨著事務(wù)的執(zhí)行而動態(tài)地決定,很難事先確定每一個事務(wù)要哪些對象,因此也就很難按規(guī)定的順序去施加An

Introduction

toDatabase死鎖的預(yù)防(續(xù))結(jié)論在操作系統(tǒng)中廣為采用的預(yù)防死鎖的策略并不太適合數(shù)據(jù)庫的特點數(shù)據(jù)庫管理系統(tǒng)在解決死鎖的問題上更普遍采用的是并解除死鎖的方法An

Introduction

toDatabase2.

死鎖的

與解除死鎖的1超時法2等待圖法An

Introduction

toDatabase(1)超時法如果一個事務(wù)的等待時間超過了規(guī)定的時限,就認為發(fā)生了死鎖優(yōu)點:實現(xiàn)簡單缺點有可能誤判死鎖時限若設(shè)置得太長,死鎖發(fā)生后不發(fā)現(xiàn)An

Introduction

toDatabase(2)等待圖法用事務(wù)等待圖動態(tài)反映所有事務(wù)的等待情況事務(wù)等待圖是一個有向圖G=(T,U)T為結(jié)點的集合,每個結(jié)點表示正運行的事務(wù)U為邊的集合,每條邊表示事務(wù)等待的情況若T1等待T2,則T1,T2之間劃一條有向邊,從T1指向T2An

Introduction

toDatabase等待圖法(續(xù))An

Introduction

toDatabase并發(fā)控制子系統(tǒng)周期性地(比如每隔數(shù)秒)生成事務(wù)等待圖,檢測事務(wù)。如果發(fā)現(xiàn)圖中存在回路,則表示系統(tǒng)中出現(xiàn)了死鎖。死鎖的

與解除(續(xù))解除死鎖選擇一個處理死鎖代價最小的事務(wù),將其撤消此事務(wù)持有的所有的鎖,使其它事務(wù)能繼續(xù)運行下去An

Introduction

toDatabase死鎖的

與解除(續(xù))解除死鎖選擇一個處理死鎖代價最小的事務(wù),將其撤消此事務(wù)持有的所有的鎖,使其它事務(wù)能繼續(xù)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論