Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 36 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
36
Dung lượng
299,86 KB
Nội dung
Bài giảng : 11/7/2005 Deadlock Đònh nghóa Deadlock Mô hình hệ thống Điều kiện phát sinh Deadlock Xử lý Deadlock Trần Hạnh Nhi Dining Philosophers Năm triết gia ngồi chung quanh bàn ăn spaghetti (yum yum) Trên bàn có nóa đặt đóa (xem hình) Để ăn spaghetti người cần có nóa Triết gia thứ i: Thinking . Eating . Chuyện xảy ? 11/7/2005 Trần Hạnh Nhi Dining Philosophers : Tình nguy hiểm triết gia “giành giật” nóa Tranh chấp Cần đồng hoá hoạt động triết gia 11/7/2005 Trần Hạnh Nhi Dining Philosophers : Giải pháp đồng semaphore fork[5] = 1; Philosopher (i) { while(true) { down(fork[i]); down(fork[i+1 mod 5]) eat; up(fork[i]); up(fork[i+1 mod 5]); think; } 11/7/2005 Deadlock Trần Hạnh Nhi Đònh nghóa Deadlock Deadlock : Starvation Chờ đợi kiện không xảy Các tiến trình tập hợp chờ đợi lẫn Chờ đợi giới hạn kiện mà chưa thấy xảy Deadlock kéo theo Starvation 11/7/2005 Điều ngược lại không Trần Hạnh Nhi Mô hình hệ thống Hệ thống bao gồm số xác đònh loại tài nguyên chia sẻ cho tiến trình có nhu cầu Mỗi loại tài nguyên có nhiều thể Mỗi tiến trình sử dụng tài nguyên theo trình tự 11/7/2005 Request : yêu cầu tài nguyên, yêu cầu không thoã mãn nay, tiến trình phải đợi Use : sử dụng tài nguyên cấp phát Release : giải phóng tài nguyên Trần Hạnh Nhi Các điều kiện xảy Deadlock Coffman, Elphick Shoshani (1971) đưa điều kiện cần làm xuất tắc nghẽn: Mutual exclusion: hệ thống có sử dụng loại tài nguyên mang chất không chia sẻ được. Wait for : Tiến trình tiếp tục chiếm giữ tài nguyên cấp phát cho chờ cấp phát thêm số tài nguyên mới. No preemption: Tài nguyên thu hồi tiến trình chiếm giữ chúng tự nguyện trao trả. Circular wait: Tồn chu kỳ đồ thò cấp phát tài nguyên . Hội đủ điều kiện : Deadlock xảy 11/7/2005 Trần Hạnh Nhi Đồ thò cấp phát tài nguyên loại nodes: Tiến trình yêu cầu tài nguyên : Pi → Rj Tài nguyên cấp phát cho tiến trình : 11/7/2005 P = {P1, P2, ., Pn}, tập tiến trình R = {R1, R2, ., Rm}, tập loại tài nguyên Rj → Pi Trần Hạnh Nhi Ví dụ đồ thò cấp phát tài nguyên Process Một loại tài nguyên với thể Pi yêu cầu thể Rj Pi giữ thể Rj 11/7/2005 Trần Hạnh Nhi Pi Rj Pi Pi Rj Rj Ví dụ đồ thò cấp phát tài nguyên Example: 11/7/2005 Trần Hạnh Nhi 10 Nhận xét Hệ thống safe state ⇒ không deadlocks. Nếu hệ thống unsafe state ⇒ có khả deadlock. Avoidance ⇒ bảo đảm hệ thống không vào trạng thái unsafe. 11/7/2005 Trần Hạnh Nhi 21 Deadlock Avoidance : thông tin cần biết Giả sử hệ thống mô tả với thông tin sau : int Available[NumResources]; int Max[NumProcs, NumResources]; Allocation[p,r] = số lượng tài nguyên r thực cấp phát cho p int Need[NumProcs, NumResources]; 11/7/2005 Max[p,r]= nhu cầu tối đa tiến trình p tài nguyên r int Allocation[NumProcs, NumResources]; Available[r]= số lượng thể tự tài nguyên r Need[p,r] = Max[p,r] - Allocation[p,r] Trần Hạnh Nhi 22 Giải thuật cấp phát tài nguyên kiểu cũ Pi xin k thể Rj : if (k [...]... không có chu trình ⇒ no deadlock Nếu đồ thò có 1 chu trình ⇒ Nếu mỗi tài nguyên chỉ có 1 thể hiện ⇒ deadlock Nếu mỗi tài nguyên có nhiều thể hiện ⇒ có thể có deadlock 11/7/20 05 Trần Hạnh Nhi 11 Ví dụ đồ thò cấp phát tài nguyên Deadlocked: 11/7/20 05 Trần Hạnh Nhi 12 Ví dụ đồ thò cấp phát tài nguyên With Cycle but No Deadlock: 11/7/20 05 Trần Hạnh Nhi 13 Deadlock Prevention Đảm bảo Deadlock không thể xảy... chấp nhận 11/7/20 05 Trần Hạnh Nhi 29 Deadlock Detection Chấp nhận hệ thống rơi vào trạng thái deadlock Hệ thống nên cung cấp: Một giải thuật kiểm tra và phát hiện deadlock có xảy ra trong hệ thống hay không Một giải thuật để hiệu chỉnh, phục hồi hệ thống về trạng thái trước khi deadlock xảy ra Cần tốn kém chi phí để : Lưu trữ, cập nhật các thông tin cần thiết Xử lý giải thuật phát hiện deadlock Chấp nhận... trạng deadlock Chỉ thỏa mãn yêu cầu tài nguyên của tiến trình khi trạng thái kết quả là an toàn Đòi hỏi phải biết trước một số thông tin về nhu cầu sử dụng tài nguyên của tiến trình 11/7/20 05 Trần Hạnh Nhi 20 Nhận xét Hệ thống ở safe state ⇒ không deadlocks Nếu hệ thống ở unsafe state ⇒ có khả năng deadlock Avoidance ⇒ bảo đảm hệ thống không bao giờ đi vào trạng thái unsafe 11/7/20 05 Trần Hạnh Nhi 21 Deadlock. .. nguyên Rj nếu F(Rj) > F(Ri) F(R1) = 1; F(R2) = 2; R1 P1 11/7/20 05 P2 R2 Trần Hạnh Nhi 18 Deadlock Prevention Đảm bảo Deadlock không thể xảy ra Không thể loại bỏ ít nhất 1 trong 4 điều kiện cần để xảy ra Deadlock Quá khắt khe, không khả thi 11/7/20 05 Trần Hạnh Nhi 19 Deadlock Avoidance Một số đònh nghóa cơ bản Trạng thái an toàn (Safe): hệ thống có thể thỏa mãn các nhu cầu tài nguyên (cho đến tối đa)... động của hệ thống ->Chi phí cao Starvation: có thể một tiến trình nào đó luôn luôn bò chọn làm “nạn nhân”, không bao giờ có đủ tài nguyên để tiến triển xử lý 11/7/20 05 Trần Hạnh Nhi 35 Deadlock Ignorance : Ostrich’s algorithm Hệ thống : Deadlock hả ? What, what, what ???” Don’t see Don’t know Don’t care Có thể chấp nhận không ? Cân nhắc giữa tần suất xảy ra deadlock và chi phí giải quyết deadlock. .. 11/7/20 05 Trần Hạnh Nhi 16 Deadlock Prevention No Preemption Hệ điều hành chủ động thu hồi các tài nguyên của tiến trình blocked Tài nguyên nào có thể thu hồi ? CPU :OK Printer : Hu hu Các tài nguyên bò thu hồi sẽ được bổ sung vào danh sách tài nguyên tiến trình cần xin lại Tiến trình chỉ có thể tiếp tục xử lý khi xin lại đủ các tài nguyên này (cũ và mới) Kết luận : thật sự khó loại bỏ hoàn toàn 11/7/20 05. .. kiệm chi phí : kích hoạt giải thuật phát hiện deadlock sau những chu kỳ đònh trước Khuyết điểm ? Thiếu thông tin 11/7/20 05 Trần Hạnh Nhi 33 Deadlock Recovery: Hủy bỏ tiến trình Hủy tất cả các tiến trình liên quan deadlock Thiệt hại đáng kể Hủy từng tiến trình liên quan cho đến khi giải toả được chu trình deadlock Tốn chi phí thực hiện giải thuật phát hiện deadlock Bắt đầu từ tiến trình nào ? Sau đó... = true; Đến bước 2 4 Nếu Finish[i] == true với mọi i, thì hệ thống ở trạng thái an toàn 11/7/20 05 Trần Hạnh Nhi 25 Ví dụ 1 Giả sử tình trạng hệ thống được mô tả như sau : Max Allocation Available R1 R2 R3 R1 R2 R3 R1 R2 R3 P1 3 2 2 1 0 0 4 1 2 P2 6 1 3 2 1 1 P3 3 1 4 2 1 1 P4 4 2 2 0 0 2 11/7/20 05 Trần Hạnh Nhi 26 Ví dụ 1 Giả sử tình trạng hệ thống được mô tả như sau : Max Need Allocation Available... Deadlock: 11/7/20 05 Trần Hạnh Nhi 13 Deadlock Prevention Đảm bảo Deadlock không thể xảy ra Tìm cách loại bỏ ít nhất 1 trong 4 điều kiện cần để xảy ra Deadlock Nhắc lại 4 điều kiện cần Mutual Exclusion Hold and Wait No preemption Circular wait Để xem 11/7/20 05 Trần Hạnh Nhi 14 Deadlock Prevention Mutual Exclusion Không cần đảm bảo độc quyền truy xuất tài nguyên ? Thinking Thinking Thinking Với các... hệ thống ở trạng thái không có deadlock Ngược lại, các tiến trình Pi, Finish[i] == false sẽ ở trong tình trạng deadlock 11/7/20 05 Trần Hạnh Nhi 32 Sử dụng giải thuật phát hiện deadlock Khi nào, và mức độ thường xuyên cần kích hoạt giải thuật phát hiện deadlock ? Phụ thuộc vào Tần suất xảy ra deadlock? Số lượng các tiến trình liên quan, cần “rolled back”? 1 cho mỗi chu tri(nh rời nhau Một cách cẩn thận . 11/7/2005 Trần Hạnh Nhi 1 Bài giảng 5 : Deadlock Đònh nghóa Deadlock Mô hình hệ thống Điều kiện phát sinh Deadlock Xử lý Deadlock 11/7/2005 Trần Hạnh Nhi 2 Dining Philosophers . but No Deadlock: Ví dụ đồ thò cấp phát tài nguyên 11/7/2005 Trần Hạnh Nhi 14 Deadlock Prevention Đảm bảo Deadlock không thể xảy ra Tìm cách loại bỏ ít nhất 1 trong 4 điều kiện cần để xảy ra Deadlock. Nhi 19 Deadlock Prevention Đảm bảo Deadlock không thể xảy ra Không thể loại bỏ ít nhất 1 trong 4 điều kiện cần để xảy ra Deadlock Quá khắt khe, không khả thi 11/7/2005 Trần Hạnh Nhi 20 Deadlock