Bài giảng Hệ điều hành: Chương 4 - Deadlock

48 15 0
Bài giảng Hệ điều hành: Chương 4 - Deadlock

Đ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

Bài giảng Hệ điều hành: Chương 4 - Deadlock trình bày về mô hình hệ thống; Resource Allocation Graph (RAG); phương pháp giải quyết deadlock; Deadlock prevention; Deadlock avoidance; Deadlock detection; Deadlock recovery. Mời các bạn tham khảo.

4 Deadlock  Mơ hình hệ thống  Resource Allocation Graph (RAG)  Phương pháp giải deadlock  Deadlock prevention  Deadlock avoidance  Deadlock detection  Deadlock recovery 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ó printer DVD drive Q trình P1 giữ DVD drive, trình P2 giữ printer Bây P1 yêu cầu printer phải đợi, P2 yêu cầu DVD drive phải đợi 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 ● Tài nguyên: CPU cycle, không gian nhớ, thiết bị I/O, file,… • Mỗi loại tài ngun Ri có Wi thực thể (instance)  Process sử dụng tài nguyên theo thứ tự ● 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  Các tác vụ yêu cầu hồn trả gọi qua system call Ví dụ ● request/release device ● open/close file ● allocate/free memory Điều kiện cần để xảy deadlock (1/2) Bốn điều kiện cần (necessary condition) để xảy deadlock Mutual exclusion: tài nguyên cấp phát cho nhiều q trình (tức khơng chia sẻ được) Hold and wait: trình giữ tài nguyên phép yêu cầu thêm tài nguyên khác Điều kiện cần để xảy deadlock (2/2) No preemption: (= no resource preemption) không lấy lại tài nguyên cấp phát cho trình, ngoại trừ q trình tự hồn trả Circular wait: tồn tập {P1,…,Pn} trình đợi cho P1 đợi tài nguyên mà P1 giữ P2 đợi tài nguyên mà P2 giữ … Pn đợi tài nguyên mà P0 giữ Để ý: tài nguyên gồm nhiều instance Resource Allocation Graph (1/2)  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:  Request edge: cạnh có hướng từ Pi đến Rj  Assignment edge: cạnh có hướng từ Rj đến Pi Resource Allocation Graph (2/2) Ký hiệu     Process: Pi Rj Loại tài nguyên với thực thể: Pi yêu cầu thực thể Rj : Pi giữ thực thể Rj : Rj Pi Rj Pi Ví dụ RAG (1/2) R3 R1 P1 P3 P2 R2 R4 Ví dụ RAG (2/2) R3 R1 P1 P3 P2 Deadlock xảy ra! R2 R4 RAG deadlock (1/2)  Ví dụ RAG chứa chu trình khơng xảy deadlock: trường hợp P4 trả lại instance R2 P1 R1 P2 R2 P3 P4 10 Giải thuật cấp phát tài nguyên (1/4) Gọi Request i (độ dài m) request vector process Pi Request i [ j ] = k  Pi cần k instance tài nguyên Rj Nếu Request i  Need i đến bước Nếu khơng, báo lỗi process vượt u cầu tối đa Nếu Request i  Available qua bước Nếu khơng, Pi phải chờ tài ngun khơng đủ để cấp phát 34 Giải thuật cấp phát tài nguyên (2/4) Giả định cấp phát tài nguyên đáp ứng yêu cầu Pi cách cập nhật trạng thái hệ thống sau: Available  Available – Request i Allocation i  Allocation i + Request i Need i  Need i – Request i • Áp dụng giải thuật kiểm tra trạng thái an toàn lên trạng thái  Nếu trạng thái safe tài nguyên cấp thực cho Pi  Nếu trạng thái unsafe Pi phải đợi, • phục hồi trạng thái: Available  Available + Request i Allocation i  Allocation i – Request i Need i  Need i + Request i 35 Giải thuật cấp phát tài nguyên (3/4)  (tiếp ví dụ) Yêu cầu (1, 0, 2) P1 có thỏa đượckhơng? ● Kiểm tra điều kiện Request  Available:  (1, 0, 2)  (3, 3, 2) ● Giả sử đáp ứng yêu cầu, kiểm tra trạng thái có phải safe hay khơng: ● Trạng thái safe, với chuỗi an toàn P1, P3, P4, P0, P2 , cấp phát tài nguyên cho P1 Allocation Need Available A B C A B C A B C P0 3 P1 2 P2 0 P3 1 1 P4 0 36 Giải thuật cấp phát tài nguyên (4/4)  Allocation Need A B C A B C A B C P0 3 P1 2 P2 0 P3 1 1 P4 0 Available P4 yêu cầu (3, 3, 0) P0 yêu cầu (0, 2, 0) theo giải thuật cấp phát tài ngun có thỏa mãn hay khơng? 37 Phát deadlock  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 RAG  Giải thuật phát deadlock thiết kế cho trường hợp sau Mỗi loại tài nguyên có thực thể Mỗi loại tài nguyên có nhiều thực thể 38 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  R3 P5 R4 P1 P2 P3 R2 P4 R5 P1 P2 P3 P4 Gọi định kỳ giải thuật kiểm tra có tồn chu trình wait-for graph hay khơng Giải thuật phát chu trình có thời gian chạy O(n 2), với n số đỉnh graph 39 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  Giả thiết: sau đáp ứng yêu cầu tài nguyên, process hoàn tất trả lại tất tài nguyên  giải thuật optimistic!  Giải thuật phát deadlock trường hợp loại tài nguyên có nhiều instance: cấu trúc liệu • 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 40 Giải thuật phát deadlock (1/4) Các biến Work Finish vector kích thước m n Khởi tạo: Work  Available i = 1, 2,…, n, Allocation i  Finish[ i ]  false cịn khơng Finish[ i ]  true Tìm i thỏa mãn: Finish[ i ]  false Request i •  Work Nếu khơng tồn i thế, đến bước thời gian chạy giải thuật O(m·n2) Work  Work + Allocation i Finish[ i ]  true quay bước Nếu tồn i với Finish[ i ] = false, hệ thống trạng thái deadlock Hơn nữa, Finish[ i ] = false P i bị deadlocked 41 Giải thuật phát deadlock (2/4)  Nhận xét: ● Khi giải thuật phát deadlock không thấy hệ thống deadlock, chưa tương lai hệ thống không deadlock 42 Giải thuật phát deadlock (3/4)  Hệ thống có q trình P0 ,…, P4 • loại tài nguyên: A, gồm instance; B, instance; C, instance Allocation Request Available A B C A B C A B C P0 0 0 P1 0 2 P2 3 0 P3 1 0 P4 0 0 0 Chạy giải thuật, tìm chuỗi P0, P2, P3, P1, P4  với Finish[ i ] = true cho i, hệ thống không bị deadlocked 43 Giải thuật phát deadlock (4/4)  Nhưng thêm vào P2 yêu cầu instance C, nghĩa có ma trận Request: P0 P1 P2 P3 P4 Request A B C 0 2 0 1 0 0 ● Hệ thống có bị deadlocked?  Có thể thu hồi tài nguyên giữ process P0 không đủ đáp ứng yêu cầu process khác • Vậy tồn deadlock, gây process P1 , P2 , P3 , P4 44 Phục hồi khỏi deadlock  Các giải pháp phát deadlock ● báo người vận hành (operator), người xử lý tiếp ● hệ thống tự động phục hồi cách phá deadlock:  Giải pháp chấm dứt trình  Giải pháp lấy lại tài nguyên  Giải pháp Rollback 45 Phục hồi khỏi deadlock: Chấm dứt trình  Phục hồi hệ thống khỏi deadlock cách ● Chấm dứt tất process bị deadlocked, ● Chấm dứt process khơng cịn deadlock   Sử dụng giải thuật phát deadlock để xác định cịn 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 để hồn tất cơng việc ● Số lượng process cần chấm dứt (?) ● Process interactive process hay batch process 46 Phục hồi khỏi deadlock: Lấy lại tài nguyên  Các bước ● Tạm dừng process P cần lấy lại tài nguyên, lấy lại tài nguyên từ P, cấp phát chúng cho process khác ● Khi tài nguyên trả lại, cấp phát chúng lại cho P, tiếp tục P  Giải pháp thường khó thực 47 Phục hồi khỏi deadlock: Rollback    Xác định process P giữ tài nguyên mà process Q deadlocked cần Rollback process P thời điểm mà chưa có tài nguyên Cấp phát tài nguyên cho trình Q 48 ... F(R3) < F(R4) Vậy F(R4) < F(R4), mâu thuẩn! P2 P1 ● “Chứng minh”: phản chứng  F(R4) < F(R1) R4 R2 R3 P4 P3 19 Deadlock avoidance  Deadlock prevention sử dụng tài nguyên không hiệu  Deadlock. .. = false, hệ thống trạng thái deadlock Hơn nữa, Finish[ i ] = false P i bị deadlocked 41 Giải thuật phát deadlock (2 /4)  Nhận xét: ● Khi giải thuật phát deadlock không thấy hệ thống deadlock, ... P2 R2 R4 Ví dụ RAG (2/2) R3 R1 P1 P3 P2 Deadlock xảy ra! R2 R4 RAG deadlock (1/2)  Ví dụ RAG chứa chu trình không xảy deadlock: trường hợp P4 trả lại instance R2 P1 R1 P2 R2 P3 P4 10 RAG deadlock

Ngày đăng: 08/05/2021, 11:27

Từ khóa liên quan

Mục lục

  • 4. Deadlock

  • Vấn đề deadlock trong hệ thống

  • Mô hình hóa hệ thống

  • Điều kiện cần để xảy ra deadlock (1/2)

  • Điều kiện cần để xảy ra deadlock (2/2)

  • Resource Allocation Graph (1/2)

  • Resource Allocation Graph (2/2)

  • Ví dụ về RAG (1/2)

  • Ví dụ về RAG (2/2)

  • RAG và deadlock (1/2)

  • RAG và deadlock (2/2)

  • Các phương pháp giải quyết deadlock (1/2)

  • Các phương pháp giải quyết deadlock (2/2)

  • Ngăn deadlock (1/4)

  • Ngăn deadlock (2/4)

  • Ngăn deadlock (3/4)

  • PowerPoint Presentation

  • Ngăn deadlock (4/4)

  • Slide 19

  • Deadlock avoidance

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

Tài liệu liên quan