【數據庫】作業21——第十一章: 併發控制


 

作業原地址:作業

 

目錄

9.

(1)

(2)

(3)

(4)

(5)

10.

14.

(1)

(2)

 

總結

 


 

9.

設T1、T2、T3是如下的三個事務,設A的初值爲0。

T1:A:=A+2;

T2:A:=A*2;

T3:A:=A**2; (即 A←A²)

 

(1)

若這三個事務允許併發執行,則有多少種可能的正確結果?請一一列舉出來。

①T1  T2  T3  —— 16

②T1  T3  T2  —— 8

③T2  T1  T3  —— 4

④T3  T1  T2  —— 4

⑤T2  T3  T1  —— 2

⑥T3  T2  T1  —— 2

共有4種。

 

(2)

請給出一個可串行化的調度,並給出執行結果。

T1 T2 T3
Slock A    
Y = R(A)    
Unlock A    
Xlock A    
  Slock A  
A = Y+2 等待  
W(A) 等待  
Unlock A 等待  
  Y = R(A)  
  Unlock A  
  Xlock A  
    Slock A
  A = Y+2 等待
  W(A) 等待
  Unlock A 等待
    Y = R(A)
    Unlock A
    Xlock A
    A = Y**2
    W(A)
    Unlock A

 

結果,A = 16。

 

(3)

請給出一個非串行化的調度,並給出執行結果。

 

T1 T2 T3
Slock A    
Y = R(A) = 0    
    Slock A
    等待
    Y = R(A) = 0
    Unlock A
Xlock A    
A = Y+2    
  Slock A  
W(A) 等待  
Unlock A 等待  
  Y = R(A) = 2  
  Unlock A  
  Xlock A  
  A = Y*2  
    Xlock A
  W(A) 等待
  Unlock A 等待
    A = Y**2
    W(A)
    Unlock A

 

結果,A = 0。

 

(4)

若這三個事務都遵守兩段鎖協議,請給出一個不產生死鎖的可串行化調度。

 

T1 T2 T3
Slock A    
Y = R(A) = 0    
Xlock A    

A = Y+2

   
  Slock A  
W(A) = 2 等待  
Unlock A 等待  
  Y = R(A) = 2  
  Xlock A  
    Slock A
  A = Y*2 等待
  W(A) = 4 等待
  Unlock A 等待
    Y = R(A) = 4
    XLock A
    A = Y**2
    W(A) =  16
    Unlock A

 

(5)

若這三個事務都遵守兩段鎖協議,請給出一個產生死鎖的調度。

 

T1 T2 T3
Slock A    
Y = R(A) = 0    
  Slock A  
  Y = R(A) = 0  
Xlock A    
等待    
等待 Xlock A  
等待 等待  
等待 等待 Slock A
等待 等待 Y = R(A) = 0
等待 等待 Xlock A
等待 等待 等待

 


10.

今有三個事務的一個調度r3(B)r1(A)w3(B)r2(B)r2(A)w2(B)r1(B)w1(A),該調度是衝突可串行化的調度嗎?爲什麼?

 

  交換後:r3(B)w3(B)r2(B)w2(B)r1(B)r2(A)r1(A)w1(A),

  調度:T3——T2——T1

  所以是衝突可串行化調度。

 


14.

考慮T1和T2兩個事務。

T1: R(A); R(B);B=A+B; W(B)

T2:R(B); R(A);A=A+B; W(A)


(1)

改寫T1和T2,增加加鎖操作和解鎖操作, 並要求遵循兩階段封鎖協議。

 

T1 T2
Slock A Slock B
R(A) R(B)
Slock B Slock A
R(B) R(A)
B = A+B A = A+B
Xlock B Xlock A
W(B) W(A)
Unlock A Unlock B
Unlock B Unlock A

 

(2)

說明T1和T2的執行是否會引起死鎖,給出T1和T2的一個調度並說明之。

T1 T2
Slock A  
R(A)  
Slock B  
R(B)  
B = A+B  
  Slock B
  R(B)
  Slock A
  R(A)
  A = A+B
  R(A)
Xlock B  
等待 Xlock A
等待 等待

 


 

總結

 

  最後一次理論課作業。

 


完成時間:58min

          以上

                                         ————(2020.5.17)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章