Bài giảng Hệ điều hành máy tính: Lecture 8 - Nguyễn Thanh Sơn

46 65 0
Bài giảng Hệ điều hành máy tính: Lecture 8 - Nguyễn Thanh Sơn

Đ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

Sau khi học xong Bài giảng Hệ điều hành Máy tính: Lecture 8 này người học có thể hiểu về: Mô hình hệ thống, đồ thị phân bổ tài nguyên (RAG), phương pháp giải quyết nghẽn, chống (Ngăn) nghẽn, tránh (avoidance) nghẽn, phát hiện nghẽn, phục hồi nghẽn,...

Tắc ghẽn (Deadlock) BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Nội dung    Mơ hình hệ thống Đồ thị phân bổ tài nguyên (RAG) Phương pháp giải nghẽn     Chống (Ngăn) nghẽn Tránh (avoidance) nghẽn Phát nghẽn Phục hồi nghẽn BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Tắc nghẽn giao thơng BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Tắc nghẽn 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 Quá trình P1 giữ DVD drive, trình P2 giữ printer Bây P1 yêu cầu printer, P2 yêu cầu DVD drive BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Mơ hình hóa hệ thống     BK 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 nguyên 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 TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Điều kiện cần để xảy nghẽn Bốn điều kiện cần (necessary conditions) Mutual exclusion: tài nguyên giữ theo nonsharable mode (ví dụ: printer; ví dụ sharable resource: read-only file) Hold and wait: process giữ tài nguyên đợi thêm tài nguyên trình khác giữ No preemption: (= no resource preemption) không lấy lại tài nguyên cấp phát cho process, ngoại trừ process tự hồn trả 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ữ BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 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 } (Tất process hệ thống) R = {R1, R2,…, Rm } (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 BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Resource Allocation Graph (tt.) Ký hiệu  Process: Pi Rj  Loại tài nguyên với thực thể: Rj   BK Pi yêu cầu thực thể Rj : Pi giữ thực thể Rj : Pi Rj Pi TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Ví dụ RAG (tt.) R1 P1 R3 P3 P2 R2 R4 BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính Ví dụ RAG (tt.) R1 P1 R3 P3 P2 Deadlock xảy ra! BK TP.HCM R2 R4 Khoa Khoa học & Kỹ thuật Máy tính 10 Giải thuật cấp phát tài nguyên Gọi Requesti (độ dài m) request vector process Pi Requesti [ j ] = k  Pi cần k instance tài nguyên Rj Nếu Requesti  Needi đến bước Nếu khơng, báo lỗi process vượt yêu cầu tối đa Nếu Requesti  Available qua bước Nếu khơng, Pi phải chờ tài ngun khơng đủ để cấp phát BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 32 Giải thuật cấp phát tài nguyên (tt.) 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 – Requesti Allocationi := Allocationi + Requesti Needi := Needi – Requesti Á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: BK TP.HCM Available := Available + Requesti Allocationi := Allocationi - Requesti Needi := Needi + Requesti Khoa Khoa học & Kỹ thuật Máy tính 33 Giải thuật cấp phát tài nguyên (tt.)  (tiếp ví dụ) Yêu cầu (1, 0, 2) P1 có thỏa đượckhông?  Kiểm tra điều kiện Request1  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: Allocation  BK Need Available A B C A B C A B C P0 3 P1 2 P2 0 P3 1 1 P4 0 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 TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 34 Giải thuật cấp phát tài nguyên (tt.) Allocation BK Need Available A B C A B C A B C P0 3 P1 2 P2 0 P3 1 1 P4 0  P4 yêu cầu (3, 3, 0) hoặc P0 u cầu (0, 2, 0) có thỏa mãn hay không? TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 35 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ể BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 36 Mỗi loại tài ngun 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 P5 R1  BK R3 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 TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 37 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 BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 38 Giải thuật phát deadlock Các biến 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 ] := false Requesti  Work Nếu không tồn i thế, đến bước Work := Work + Allocationi thời gian chạy giải thuật O(m·n2) 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 Pi bị deadlocked BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 39 Giải thuật phát deadlock (tt.)  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 BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 40 Giải thuật phát deadlock (tt.)  • 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 0 P1 0 2 P2 3 0 P3 1 0 P4 0 0 Chạy giải thuật, tìm chuỗi P0, P2, P3, P1, P4  với Finish[ i ] = true, i = 1,…, n, hệ thống không bị deadlocked BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 41 Giải thuật phát deadlock (tt.)  P2 yêu cầu thêm instance C Ma trận Request sau: Request A B C P0 P1 P2 P3 P4  0 0 0 2 Trạng thái hệ thống (safe, unsafe, deadlock)?   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, bao gồm process P1 , P2 , P3 , P4 BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 42 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 hoặc  hệ thống tự động phục hồi cách phá deadlock:  Giải pháp chấm dứt trình hoặc  Giải pháp lấy lại tài nguyên  BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 43 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    BK Chấm dứt tất process bị deadlocked, hoặc 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 để hồn tất cơng việc  Số lượng process cần chấm dứt  Process interactive process hay batch process TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 44 Phục hồi khỏi deadlock: Lấy lại tài nguyên   BK Lần lượt lấy lại tài nguyên từ process, cấp phát chúng cho process khác khơng deadlock Các vấn đề thu hồi tài nguyên:  Chọn “nạn nhân”: chọn tài nguyên process (có thể dựa số tài nguyên sở hữu, thời gian CPU tiêu tốn, )?  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 Do hệ thống cần lưu giữ số thông tin trạng thái process thực thi  Starvation: để tránh starvation, phải bảo đảm khơng có process mà ln bị lấy lại tài nguyên phục hồi khỏi deadlock TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 45 Kết luận    BK TP.HCM Định nghĩa Điều kiện cần để Deadlock xảy Các giải pháp ... lượng tài nguyên tối đa cần để thực công việc Giải thuật deadlock-avoidance điều khiển trạng thái cấp phát tài nguyên (resource-allocation state) để bảo đảm hệ thống không rơi vào deadlock  Trạng... Ngăn mutual exclusion   nonsharable resource (vd: printer): không làm sharable resource (vd: read-only file tác vụ cho phép lên file đọc): không cần thiết BK TP.HCM Khoa Khoa học & Kỹ thuật Máy... = 12  F hàm định nghĩa thứ tự tập loại tài nguyên BK TP.HCM Khoa Khoa học & Kỹ thuật Máy tính 18 Ngăn deadlock (tt.) Ngăn Circular Wait (tt)     BK TP.HCM Cách 1: process yêu cầu thực thể

Ngày đăng: 30/01/2020, 04:50

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