Thông tin tài liệu
1
Những vấn đề khác trong
điềukiển đồng thời
Chương 2
Những vấn đề khác trong điều khiển đồng thời 2
z Quay lui dây chuyền (cascading rollback)
z Lịch khả phụchồi (recoverable schedule)
z Deadlock
z Phát hiện(detection)
z Ngănngừa (prevention)
Nội dung chi tiết
Những vấn đề khác trong điều khiển đồng thời 3
Ví dụ
T
2
T
1
S
Write(B,t); Unlock(B)
Read(B,t); t:=t+100
t:=t+100; Write(A,t)
Lock(A); Read(A,t)
Lock(B); Unlock(A)
Lock(B); Ulock(A)
Read(B,t); t:=t*2
Write(B,t); Unlock(B)
s:=s*2; Write(A,s)
Lock(A); Read(A,s)
Lock(B)
Chờ
AB
25 25
125
250
125
250
2
Những vấn đề khác trong điều khiển đồng thời 4
Ví dụ (tt)
T
2
T
1
S
Abort; Unlock(B);
Read(B,t);
t:=t+100; Write(A,t)
Lock(A); Read(A,t)
Lock(B); Unlock(A)
Lock(B); Ulock(A)
Read(B,t); t:=t*2
Write(B,t); Unlock(B)
s:=s*2; Write(A,s)
Lock(A); Read(A,s)
Lock(B)
Chờ
AB
25 25
125
250
50
Tính nhất quán bị vi phạm
→ T
2
cũng phải rollback
Những vấn đề khác trong điều khiển đồng thời 5
Ví dụ (tt)
T
2
T
1
AB
T
3
C
200 150 175
RT=0
WT=0
RT=0
WT=0
RT=0
WT=0
S
Write(B)
Read(B)
Read(A)
Read(C)
Write(C)
WT=150
RT=150
RT=0
WT=150
RT=200
WT=0
RT=175
WT=0
Abort
Write(A)
RT=150
WT=175
WT=0
RT=0
→ Phụchồi
giá trị củaB
Những vấn đề khác trong điều khiển đồng thời 6
Quay lui dây chuyền
T
3
T
4
.
.
.
r(A)
.
.
.
.
.
.
.
.
.
abort
.
.
.
abort
T
1
T
2
.
.
.
.
.
.
w(A)
.
.
.
r(A)
.
.
.
.
.
.
.
.
.
abort
.
3
Những vấn đề khác trong điều khiển đồng thời 7
Lịch khả phụchồi
T
i
T
j
.
.
.
.
.
.
w(A)
.
.
.
r(A)
.
.
.
commit.
.
.
abort
z
Xét mỗicặpT
i
và T
j
sao cho
z T
j
đọcdữ liệusaukhiT
i
ghi
z T
i
phải đượchoàntất (commit) trướckhiT
j
hoàn tất
z Ký hiệuc
i
: giao tác thứ i hoàn tất
Những vấn đề khác trong điều khiển đồng thời 8
Lịch khả phụchồi (tt)
S
1
:w
1
(A); w
1
(B); w
2
(A); r
2
(B); c
1
; c
2
;
S
1
tuầntự và khả phụchồi
T
2
đọc B sau
T
1
ghi B
T
1
hoàn tất
trướcT
2
Những vấn đề khác trong điều khiển đồng thời 9
Lịch khả phụchồi (tt)
S
2
:w
2
(A); w
1
(B); w
1
(A); r
2
(B); c
1
; c
2
;
S
2
không khả tuầntự nhưng khả phụchồi
T
1
ghi B trước
T
2
đọc B sau
T
1
hoàntất
trướcT
2
4
Những vấn đề khác trong điều khiển đồng thời 10
Lịch khả phụchồi (tt)
S
3
khả tuầntự nhưng không khả phụchồi
T
1
ghi B trước
T
2
đọc B sau
T
2
hoàntất
trướcT
1
S
3
:w
1
(A); w
1
(B); w
2
(A); r
2
(B); c
2
; c
1
;
Những vấn đề khác trong điều khiển đồng thời 11
Lịch khả phụchồi (tt)
z Nhậnxét
z Muốn khôi phục đôi khi cần quay lui dây chuyền
z Nhưng quay lui dây chuyền không thể xãy ra
z Tốn nhiều chi phí
→ Lịch không quay lui dây chuyền (cascadeless schedule)
Những vấn đề khác trong điều khiển đồng thời 12
Lịch không quay lui dây chuyền
T
i
T
j
.
.
.
.
.
.
w(A)
.
r(A)
.
.
.
.
commit
Các giao tác chỉđọcnhững giá trịđã được hoàn tất
5
Những vấn đề khác trong điều khiển đồng thời 13
Lịch không quay lui dây chuyền (tt)
S
1
:w
1
(A); w
1
(B); w
2
(A); r
2
(B); c
1
; c
2
;
S
1
:w
1
(A); w
1
(B); w
2
(A); c
1
;r
2
(B); c
2
;
z Khả phụchồi
z Ngănngừa quay lui dây chuyền
z → Các lịch ngănngừa quay lui dây chuyền đềukhả
phụchồi
Những vấn đề khác trong điều khiển đồng thời 14
z Quay lui dây chuyền (cascading rollback)
z Lịch khả phụchồi (recoverable schedule)
z Deadlock
z Phát hiện(detection)
z Ngănngừa (prevention)
Nội dung chi tiết
Những vấn đề khác trong điều khiển đồng thời 15
z Nhắclại 2 tình huống
Deadlock
T
2
T
1
S
Lock(B)
Lock(A)
Read(A)
Lock(B)
Write(A)
Write(B)
↓
Chờ
Lock(A)
Read(B)
↓
Chờ
Qui tắckhóa2PL
T
2
T
1
S
RLock(A)
WLock(A)
Read(A)
WLock(A)
↓
Chờ
RLock(A)
Read(A)
↓
Chờ
Nâng cấpkhóa
6
Những vấn đề khác trong điều khiển đồng thời 16
z Hệ thống rơivàotrạng thái deadlock khi
z Các giao tác phảichờđợilẫn nhau để đượcthaotáclên
các đơnvị dữ liệubị khóa bởi chúng
z Và không mộtgiaotácnàocóthể thựchiệntiếpcôngviệc
củamình
Deadlock (tt)
Những vấn đề khác trong điều khiển đồng thời 17
z Phát hiện
z Chophéptrạng thái deadlock xãy ra và sau đócố gắng
khôi phụclạihệ thống
z Chọn 1 giao tác để rollback
z Phương pháp
z Đồ thị chờ (wait-for graph)
z Ngănngừa
z Quản lý các giao tác sao cho không bao giờ có deadlock
z Phương pháp
z Sắpthứ tự tài nguyên (resource ordering)
z Timeout
z Wait-die
z Wound-wait
Giảiquyết Deadlock
Những vấn đề khác trong điều khiển đồng thời 18
z Đồ thị gồm
z Đỉnh là các giao tác đang giữ khóa hoặc đang chờ khóa
z Cung đitừđỉnh T sang U khi
z U đang giữ khóa trên đơnvị dữ liệuA
z T đang chờ khóa trên A
z T không thể khóa đơnvị dữ liệuA nếu U không giải phóng khóa
z Nếu đồ thị chờ không có chu trình
z Các giao tác có thể hoàn tất
z Ngượclại
z Không một giao tác nào trong chu trình có thể tiếptụcthực
hiện → deadlock
Đồ thị chờ
7
Những vấn đề khác trong điều khiển đồng thời 19
Ví dụ
T
1
T
2
L(A); R(A)
L(C); R(C)
1
T
3
T
4
L(B); R(B)
L(D); R(D)
2
3
4
5
6
7
8
L(A)
L(C)
L(A)
L(B)
↓
Chờ
↓
Chờ
↓
Chờ
↓
Chờ
T
2
T
1
T
3
T
4
Những vấn đề khác trong điều khiển đồng thời 20
Ví dụ (tt)
T
2
T
1
T
3
T
4
T
1
T
2
L(A); R(A)
L(C); R(C)
1
T
3
T
4
L(B); R(B)
L(D); R(D)
2
3
4
5
6
7
8
L(A)
L(C)
L(A)
L(B)
Những vấn đề khác trong điều khiển đồng thời 21
z Áp đặtmộtthứ tự nào đó lên các đơnvị dữ liệu
z Nếu các giao tác thựchiệnkhóanhững đơnvị dữ liệu
theo thứ tự này
z Thì không có deadlock xãy ra trong khi chờđợi
z Chứng minh
z Bài tậpvề nhà
Sắpthứ tự tài nguyên
8
Những vấn đề khác trong điều khiển đồng thời 22
z Giả sử các đơnvị dữ liệu đượcsắpthứ tự theo
alphabet
Ví dụ
T
1
: l(A); r(A); l(B); w(B); u(A); u(B);
T
2
: l(C); r(C); l(A); w(A); u(C); u(A);
T
3
: l(B); r(B); l(C); w(C); u(B); u(C);
T
4
: l(D); r(D); l(A); w(A); u(D); u(A);
Những vấn đề khác trong điều khiển đồng thời 23
Ví dụ (tt)
T
1
: l(A); r(A); l(B); w(B); u(A); u(B);
T
2
: l(A); l(C); r(C); w(A); u(C); u(A);
T
3
: l(B); r(B); l(C); w(C); u(B); u(C);
T
4
: l(A); l(D); r(D); w(A); u(D); u(A);
Những vấn đề khác trong điều khiển đồng thời 24
Ví dụ (tt)
T
1
T
2
L(A); R(A)
L(A)
1
T
3
T
4
L(B); R(B)
L(A)
2
3
4
5
6
7
8
↓
Chờ
↓
Chờ
L(C); W(C)
U(B); U(C)
9
10
11
12
13
14
L(B); R(B)
U(A); U(B)
L(A); L(C)
R(A); W(C)
U(C); U(A)
L(A); L(D)
R(D); W(A)
U(D); U(A)
9
Những vấn đề khác trong điều khiển đồng thời 25
z Giớihạn các giao tác chỉđượcthựchiệntrong1
khoảng thời gian nào đó
z Nếugiaotácvượtquáthời gian này
z Thì giao tác phảibị rollback
Timeout
Những vấn đề khác trong điều khiển đồng thời 26
z Mỗigiaotácsẽđượcgánmột nhãn ghi nhậnthứ tự
xuấthiện, kí hiệu: ts(T)
z Xét 2 giao tác T và U
z U đang giữ khóa trên đơnvị dữ liệuA
z T muốnkhóađơnvị dữ liệuA
z T sẽ chờ-wait U khi ts(T) < ts(U)
z NgượclạiT sẽ bị hủy-die
và bắt đầulàmlại ở 1 thời
điểm khác
Wait-die
UT
UT
Những vấn đề khác trong điều khiển đồng thời 27
Ví dụ
T
1
T
2
L(A); R(A)
L(A)
1
T
3
T
4
L(B); R(B)
L(A)
2
3
4
5
6
7
8
↓
Dies
↓
Dies
L(C); W(C)
U(B); U(C)
L(B); R(B)
U(A); U(B)
10
Những vấn đề khác trong điều khiển đồng thời 28
Ví dụ (tt)
z T
2
bắt đầutrướcT
4
T
1
T
2
L(A); R(A)
L(A)
1
T
3
T
4
L(B); R(B)
L(A)
2
3
4
5
6
7
8
↓
Dies
↓
Dies
L(C); W(C)
U(B); U(C)
L(B); R(B)
U(A); U(B)
9
10
11
12
13
14
L(A); L(C)
R(A); W(C)
U(C); U(A)
L(A)
R(D); W(A)
U(D); U(A)
L(A); L(D)
↓
Dies
15
Những vấn đề khác trong điều khiển đồng thời 29
Ví dụ (tt)
z T
4
bắt đầutrướcT
2
T
1
T
2
L(A); R(A)
L(A)
1
T
3
T
4
L(B); R(B)
L(A)
2
3
4
5
6
7
8
↓
Dies
↓
Dies
L(C); W(C)
U(B); U(C)
L(B); R(B)
U(A); U(B)
9
10
11
12
13
14
L(A); L(C)
R(A); W(C)
U(C); U(A)
L(A); L(D)
R(D); W(A)
U(D); U(A)
↓
Waits
15
L(A)
Những vấn đề khác trong điều khiển đồng thời 30
z Mỗigiaotácsẽđượcgánmột nhãn ghi nhậnthứ tự
xuấthiện, kí hiệu: ts(T)
z Xét 2 giao tác T và U
z U đang giữ khóa trên đơnvị dữ liệuA
z T muốnkhóađơnvị dữ liệuA
z T buộc U rollback và trao khóa
lại cho T-wound khi ts(T) < ts(U)
z Ngoạilệ: nếuU đãkếtthúcvàgiải
phóng khóa, U sẽ không rollback
z NgượclạiT sẽ chờ-wait U
Wound-wait
UT
UT
[...]... cài đặt hơn wait-for graph Có thể rollback những giao tác không gây ra deadlock Wait-for graph Nếu đồ thị quá lớn sẽ tốn nhiều thời gian phân tích Rất phức tạp khi CSDL phân tán Giảm tối thiểu rollback các giao tác Chỉ rollback 1 trong những giao tác gây ra deadlock Những vấn đề khác trong điều khiển đồng thời 33 11 Những vấn đề khác trong điều khiển đồng thời 34 12 ... 13 L(B); R(B) 14 L(C); W(C) 15 U(B); U(C) Những vấn đề khác trong điều khiển đồng thời 31 Nhận xét Timeout Đơn giản Khó chọn được khoảng thời gian timeout thích hợp Có hiện tượng starvation Giao tác lập đi lập lại quá trình: bắt đầu, deadlock, rollback Resource ordering Không thực tế Chờ đợi nhiều → tiềm ẩn của deadlock Những vấn đề khác trong điều khiển đồng thời 32 Nhận xét (tt) Wait-die và Wound-wait . 1 Những vấn đề khác trong điềukiển đồng thời Chương 2 Những vấn đề khác trong điều khiển đồng thời 2 z Quay lui dây chuyền (cascading rollback) z. Những vấn đề khác trong điều khiển đồng thời 12 Lịch không quay lui dây chuyền T i T j . . . . . . w(A) . r(A) . . . . commit Các giao tác chỉđọcnhững giá trịđã được hoàn tất 5 Những vấn đề khác. R(D) 2 3 4 5 6 7 8 L(A) L(C) L(A) L(B) ↓ Chờ ↓ Chờ ↓ Chờ ↓ Chờ T 2 T 1 T 3 T 4 Những vấn đề khác trong điều khiển đồng thời 20 Ví dụ (tt) T 2 T 1 T 3 T 4 T 1 T 2 L(A); R(A) L(C); R(C) 1 T 3 T 4 L(B); R(B) L(D); R(D) 2 3 4 5 6 7 8 L(A) L(C) L(A) L(B) Những vấn đề khác trong
Ngày đăng: 29/03/2014, 12:20
Xem thêm: Chương 2: Những vấn đề khác trong điều kiển đồng thời pptx, Chương 2: Những vấn đề khác trong điều kiển đồng thời pptx