Tải bản đầy đủ (.pdf) (12 trang)

Chương 2: Những vấn đề khác trong điều kiển đồng thời pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (226.14 KB, 12 trang )

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
11
Những vấn đề khác trong điều khiển đồng thời 31
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

Waits

Waits
9
10
11
12
13
14
15
L(B); R(B)
U(A); U(B)

Wound
L(A); L(C)
R(A); W(C)
U(C); U(A)
L(A); L(D)
R(D); W(A)
U(D); U(A)
L(B); R(B)
L(C); W(C)
U(B); U(C)
Những vấn đề khác trong điều khiển đồng thời 32
z Timeout
z Đơngiản
z Khó chọn đượckhoảng thời gian timeout thích hợp

z Có hiệntượng starvation
z Giao tác lập đilậplại quá trình: bắt đầu, deadlock, rollback
z Resource ordering
z Không thựctế
z Chờđợi nhiều → tiềm ẩncủa deadlock
Nhậnxét
Những vấn đề khác trong điều khiển đồng thời 33
z Wait-die và Wound-wait
z Không có starvation
z Wound-wait ít rollback các giao tác hơn wait-die
z Dễ cài đặthơn wait-for graph
z Có thể rollback những giao tác không gây ra deadlock
z Wait-for graph
z Nếu đồ thị quá lớnsẽ tốn nhiềuthờigianphântích
z Rấtphứctạp khi CSDL phân tán
z Giảmtốithiểu rollback các giao tác
z Chỉ rollback 1 trong những giao tác gây ra deadlock
Nhận xét (tt)
12
Những vấn đề khác trong điều khiển đồng thời 34

×