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

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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan