資料庫作業21 第十一章 併發控制課後習題

2021-10-06 02:42:37 字數 2605 閱讀 4326

9、設t1、t2、t3是如下三個事物,設a的初值為0.

t1:a:=a+2;

t2:a:=a*2;

t3:a:=a**2;(即a←

\leftarrow←a2

a^2a2

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

可能會產生的結果有:2、4、8、16

t1t2t3 16

t1t3t2 8

t2t1t3 4

t2t3t1 2

t3t1t2 4

t3t2t1 2

(2)請給出乙個可序列化的排程,並給出執行結果。csdn markdown 繪製**

結果為:16

t1t2

t3slock a

y=r(a)=0

unlock a

xlock a

slock a

a=y+2

等待w(a)

等待unlock a

等待y=r(a)=2

unlock a

xlock a

slock a

a=y*2

等待w(a)

等待unlock a

等待y=r(a)=4

unlock a

xlock a

a=y**2

w(a)

unlock a

(3)請給出乙個非序列化的排程,並給出執行結果。

執行結果為:0

t1t2

3slock a

y=r(a)=0

slock a

等待unlock a

y=r(a)=0

unlock a

xlock a

a=y*2

slock a

w(a)

等待unlock a

等待y=r(a)=0

unlock a

xlock a

a=y+2

xlock a

w(a)

等待unlock a

等待a=y**2

w(a)

unlock a

(4)若這三個事物都遵守兩段鎖協議,請給出乙個不產生死鎖的可序列化排程。

t1t2

t3slock a

y=r(a)=0

xlock a

a=y+2

slock a

w(a)

等待unlock a

等待y=r(a)=2

xlock a

unlock a

等待slock a

a=y*2

等待w(a)

等待unlock a

等待y=r(a)=4

unlock a

xlock a

a=y**2

w(a)

unlock a

unlock a

(5)若這三個事物都遵守兩段鎖協議,請給出乙個產生死鎖的排程。

t1t2

t3slock 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)r2(a)w2(b)r1(a)r1(b)w1(a),等價於乙個序列排程t3t2t1,所以是衝突可序列化的排程。

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,增加加鎖操作和解鎖操作,並要求遵循兩階段封鎖協議。

t1t2

slock a

x=r(a)

slock b

y=r(b)

xlock b

b=x+y

w(b)

unlock b

slock b

x=r(b)

unlock b

unlock a

slock a

y=r(a)

xlocka

a=x+y

w(a)

unlock a

unlock a

unlock b

(2)說明t1和t2的執行是否會引起死鎖,給出t1和t2的乙個排程並說明之。

可能會引起死鎖。下面的排程應該會引起死鎖。

t1t2

slock a

x=r(a)

slock b

y=r(b)

slock b

y=r(b)

xlock b

等待slock a

等待x=r(a)

等待xlock a

等待

資料庫作業21 第十一章 併發控制

1 4種 16,8,4,2 t1 t2 t3 a 16 t1 t3 t2.a 8 t2 t1 t3 t3 t1 t2.a 4 t2 t3 t1 t3 t2 t1.a 2 2 結果為16 t1t2 t3slock a y r a 0 unlock a xlock a slock a a y 2 等待w...

資料庫作業21 第十一章 併發控制

設t1 t2 t3,是如下的三個事務,設a的初值為0。t1 a a 2 t2 a a2 t3 a a 2 即 a a 2 1 若這三個事務允許併發執行,則有多少種可能的正確結果?請一一枚舉出來。2 請給出乙個可序列化的排程,並給出執行結果。3 請給出乙個非序列化的排程,並給出執行結果。4 若這三個事...

資料庫作業21 併發控制

這不排列組合嗎 t1 t2 t3 16 t1 t3 t2 8 t2 t1 t3 4 t2 t3 t1 4 t3 t1 t2 2 t3 t2 t1 2 2 t1 t2t3 slock a y r a 0 unlock a xlock a slock a a y 2 等待w a 等待unlock a 等...