1. Trang chủ
  2. » Công Nghệ Thông Tin

Chapter06 deadlocks

46 490 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 46
Dung lượng 746 KB

Nội dung

Chương : Tắc nghẽn(Deadlock)  Mô hình hệ thống  Đònh nghóa  Điều kiện cần deadlock  Resource Allocation Graph (RAG)  Phương pháp giải deadlock  Deadlock prevention  Deadlock avoidance  Deadlock detection  Deadlock recovery  Phương pháp kết hợp để giải Deadlock Khoa KTMT Vấn đề deadlock hệ thống  Tình huống: tập process bò blocked, process giữ tài nguyên chờ tài nguyên mà process khác tập giữ  Ví dụ – Giả sử hệ thống có file đóa – P1 P2 process mở file yêu cầu mở file  Ví dụ – Semaphore A B, khởi tạo P0 P1 wait(A); wait(B); wait(B); wait(A); Khoa KTMT Mô hình hóa hệ thống  Hệ thống gồm loại tài nguyên, kí hiệu R1, R2,…, Rm , bao gồm: • Mỗi loại tài nguyên Ri có Wi thực thể (instance)  Giả sử tài nguyên tái sử dụng theo kỳ (Serially Reusable Resources)  Các tác vụ yêu cầu (request) hoàn trả (release) system call Ví dụ – CPU cycle, không gian nhớ, thiết bò I/O, file, semaphore,… – Yêu cầu (request): process phải chờ yêu cầu không đáp ứng – Sử dụng (use): process sử dụng tài nguyên – Hoàn trả (release): process hoàn trả tài nguyên – – – – request/release device open/close file allocate/free memory wait/signal Khoa KTMT Đònh nghóa  Một tiến trình gọi deadlocked đợi kiện mà không xảy Thông thường, có nhiều tiến trình bò liên quan deadlock  Một tiến trình gọi trì hoãn vô hạn đònh (indefinitely postponed) bò trì hoãn khoảng thời gian dài lặp đi, lặp lại hệ thống đáp ứng cho tiến trình khác  i.e Một tiến trình sẵn sàng để xử lý không nhận CPU Khoa KTMT Điều kiện cần để xảy deadlock Bốn điều kiện cần (necessary condition) để xảy deadlock Loại trừ hỗ tương (Mutual exclusion): tài nguyên giữ theo nonsharable mode (ví dụ: printer; ví dụ sharable resource: read-only files) Giữ chờ cấp thêm tài nguyên (Hold and wait): process giữ tài nguyên đợi thêm tài nguyên trình khác giữ Khoa KTMT Điều kiện cần để xảy deadlock (tt) Không trưng dụng (No preemption): (= no resource preemption) tài nguyên bò lấy lại, mà trả lại từ process giữ tài nguyên muốn Chu trình đợi (Circular wait): tồn tập {P0,…,Pn} trình đợi cho P0 đợi tài nguyên mà P1 giữ P1 đợi tài nguyên mà P2 giữ … Pn đợi tài nguyên mà P0 giữ Khoa KTMT Resource Allocation Graph (tt) Ký hiệu  Process:  Loại tài nguyên với thực thể:  Pi yêu cầu thực thể Rj :  Pi Rj Rj Pi giữ thực thể Rj : Pi Rj Pi Khoa KTMT Đồ thò cấp phát tài nguyên Resource Allocation Graph  Resource allocation graph (RAG) đồ thò có hướng, với tập đỉnh V tập cạnh E – Tập đỉnh V gồm loại:  P = {P1, P2,…, Pn }  R = {R1, R2,…, Rm } (Tất process hệ thống) (Tất loại tài nguyên hệ thống) – Tập cạnh E gồm loại:  Cạnh yêu cầu (Request edge): ø Pi Rj  Cạnh cấp phát (Assignment edge): Rj Khoa KTMT P i Ví dụ RAG R3 R1 P1 P3 P2 R2 R4 Khoa KTMT Ví dụ RAG (tt) R3 R1 P1 P3 P2 Deadlock xảy ra! R2 R4 Khoa KTMT 10 Giải thuật kiểm tra trạng thái an toàn – Ví dụ  Có process P0 ,…, P4  Có loại tài nguyên: A (có 10 instance), B (5 instance) C (7 instance)  Sơ đồ cấp phát hệ thống thời điểm T0 Allocation Max Available P0 A B C A B C P1 0 2 P2 0 P3 1 2 1 P4 0 3 Khoa KTMT A B C Need A B C 2      32 GT (kiểm tra trạng thái)an toàn – Vd (tt) Chuỗi an toàn Allocation Need Work ABC ABC A B C P0 010 743 3 P1 P1 200 122 P3 P2 302 600 P4 P3 211 011 P4 002 P2 431 10 Khoa KTMT 10 33 GT cấp phát tài nguyên – Ví dụ  Yêu cầu (1, 0, 2) P1 có thỏa không? – Kiểm tra điều kiện Request1 ≤ Available:  (1, 0, 2) ≤ (3, 3, 2) – Giả đònh thỏa yêu cầu, kiểm tra trạng thái có phải safe hay không – Trạng thái safe (chuỗi an toàn ), cấp phát tài nguyên cho P1 Allocation Need Available A C A B C A B C P0 3 P1 P4 (3, 3, 0) ? P0 (0, 2, 0) ? P3 (0, 2, 1)? B 2 P2 0 P3 1 1 P4 0 Khoa KTMT 34 Phát deadlock (Deadlock detection)  Chấp nhận xảy deadlock hệ thống, kiểm tra trạng thái hệ thống giải thuật phát deadlock  Nếu có deadlock tiến hành phục hồi hệ thống  Các giải thuật phát deadlock thường sử dụng mô hình RAG  Hệ thống cấp phát tài nguyên khảo sát trường hợp sau Mỗi loại tài nguyên có thực thể (instance) Mỗi loại tài nguyên có nhiều thực thể Khoa KTMT 35 Mỗi loại tài nguyên có thực thể  Sử dụng wait-for graph – Wait-for graph dẫn xuất từ RAG cách bỏ node biểu diễn tài nguyên ghép cạnh tương ứng  Có cạnh từ Pi đến Pj ⇔ Pi chờ tài nguyên từ Pj P5 R1 P1  R3 P2 P5 R4 P1 P3 P2 P3 Một giải thuật kiểm tra có tồn chu trình wait-for graph hay không gọi đònh kỳ Giải thuật phát chu P O(n 2), với n số đỉnh graph R R5 P4 trình có2thời gian chạy Khoa KTMT 36 Mỗi loại tài nguyên có nhiều thực thể  Phương pháp dùng wait-for graph không áp dụng cho trường hợp loại tài nguyên có nhiều instance  Các cấu trúc liệu dùng giải thuật phát deadlock Available: vector độ dài m • số instance sẵn sàng loại tài nguyên • Allocation: ma trận n × m • số instance loại tài nguyên cấp phát cho process • Request: ma trận n × m • yêu cầu process • Request [i, j ] = k ⇔ Pi yêu cầu thêm k instance Rj Khoa KTMT 37 Giải thuật phát deadlock Gọi Work Finish vector kích thước m n Khởi tạo: Work := Available i = 1, 2,…, n, Allocationi ≠ Finish[ i ] := false không Finish[ i ] := true Tìm i thỏa mãn: Finish[ i ] Requesti • := false ≤ Work thời gian chạy giải thuật Nếu không tồn i thế, đến bước Work O(m·n2) := Work + Allocationi Finish[ i ] := true quay bước Nếu Finish[ i ] = false, với i = 1,…, n, hệ thống trạng thái deadlock Hơn nữa, Finish[ i ] = false Pi bò deadlocked Khoa KTMT 38 Giải thuật phát deadlock – Ví dụ  Hệ thống có trình P0 ,…, P4 • loại tài nguyên: A (7 instance), B (2 instance), C (6 instance) Allocation Request Available P0 A B C A B C A B 0 P1 0 2 P2 3 0 P3 1 0 P4 0 0 C Chạy giải thuật, tìm chuỗi với Finish[ i ] = true, i = 1,…, n, hệ thống không bò deadlocked Khoa KTMT 39  Giải thuật phát deadlock – Ví dụ (tt) P2 yêu cầu thêm instance C Ma trận Request sau: Request A B C P0 0 P1 2 P2 0 P3 0 P4 0 – Trạng thái hệ thống gì?  Có thể thu hồi tài nguyên sở hữu process P0 không đủ đáp ứng yêu cầu process khác • Vậy tồn deadlock, bao gồm process P1, P2, P3, P4 Khoa KTMT 40 Phục hồi deadlock (Deadlock Recovery)  Khi deadlock xảy ra, để phục hồi – báo người vận hành (operator) – hệ thống tự động phục hồi cách bẻ gãy chu trình deadlock:  chấm dứt hay nhiều trình  lấy lại tài nguyên từ hay nhiều trình Khoa KTMT 41 Deadlock Recovery: Chấm dứt trình  Phục hồi hệ thống bò deadlock cách chấm dứt trình – Chấm dứt tất process bò deadlocked, – Chấm dứt process không deadlock  Sử dụng giải thuật phát deadlock để xác đònh deadlock hay không  Dựa yếu tố để chọn process cần chấm dứt? – – – – – – Độ ưu tiên process Thời gian thực thi process thời gian lại Loại tài nguyên mà process sử dụng Tài nguyên mà process cần thêm để hoàn tất công việc Số lượng process cần chấm dứt Process interactive process hay batch process Khoa KTMT 42 Deadlock recovery: Lấy lại tài nguyên  Lấy lại tài nguyên từ process, cấp phát cho process khác không deadlock  Các vấn đề chiến lược thu hồi tài nguyên: – Chọn “nạn nhân” để tối thiểu chi phí (có thể dựa số tài nguyên sở hữu, thời gian CPU tiêu tốn, ) – Trở lại trạng thái trước deadlock (Rollback): rollback process bò lấy lại tài nguyên trở trạng thái safe, tiếp tục process từ trạng thái Hệ thống cần lưu giữ số thông tin trạng thái process thực thi – Đói tài nguyên (Starvation): để tránh starvation, phải bảo đảm process luôn bò lấy lại tài nguyên deadlock xảy Khoa KTMT 43 Phương pháp kết hợp để giải Deadlock  Kết hợp phương pháp  Ngăn chặn (Prevention)  Tránh (Avoidance)  Phát (Detection) Cho phép sử dụng cách giải tối ưu cho lớp tài nguyên hệ thống  Phân chia tài nguyên thành lớp theo thứ bậc – Sử dụng kỹ thuật thích hợp cho việc quản lý deadlock lớp Khoa KTMT 44 Bài tập  Bài 01: Liệt kê trường hợp xảy deadlock đời sống  Bài 02: R3 R1 P1 P3 P2 R2 Deadlock ? R4 Khoa KTMT 45 Bài tập  Bài 03:  A) Tìm Need  B) Hệ thống có an toàn không  C)Nếu P1 yêu cầu (0,4,2,0) cấp phát cho không? Khoa KTMT 46

Ngày đăng: 10/07/2016, 09:52

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN