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

Hệ điều hành 1 - Chương 6: Deadlock docx

46 1,7K 4

Đ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 653,5 KB

Nội dung

Chương : 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 – wait(A); – wait(B); P1 wait(B); wait(A); Khoa KTMT Mô hình hóa hệ thống     Khái niệm tài nguyên (Resource) Là tất yêu cầu tiến trình để xử lý Tài ngun nhiều loại Tài nguyên tái sử dụng theo kỳ (Serially Reusable Resources) – CPU cycles, memory space, I/O devices, files – Yêu cầu -> sử dụng -> trả lại (release)  Tài nguyên tiêu thụ (Consumable Resources) – Được sản sinh tiến trình, cần tiến trình - e.g Messages, buffers of information, interrupts – Tạo ->yêu cầu ->sử dụng Khoa KTMT Moâ 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: - CPU cycle, không gian nhớ, thiết bị I/O, file, semaphore,… 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) - 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 (request) hoàn trả (release) system call Ví dụ - 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 indefinitely postponed bị trì hoãn khoảng thời gian dài lặp 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 Mutual exclusion: tài nguyên giữ theo nonsharable mode (ví dụ: printer; ví dụ sharable resource: read-only files) 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) 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 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  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 Khoa KTMT Resource Allocation Graph (tt) Ký hiệu  Process: Pi  Loại tài nguyên với thực thể:  Rj Pi yêu cầu thực thể Rj : Rj Pi  Pi giữ thực thể Rj : Rj Pi Khoa KTMT Ví dụ RAG R3 R1 P1 P3 P2 R2 R4 Khoa KTMT 10 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 P i 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: Available := Available + Requesti Allocationi := Allocationi – Requesti Needi := Needi + Requesti Khoa KTMT 32 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      33 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 200 122 P2 302 600 P3 211 011 P4 002 431 7 10 Khoa KTMT 10 34 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 B C A B C A B C P0 3 P1 2 P2 0 P3 1 1 P4 0 Khoa KTMT 35 GT cấp phát tài nguyên – Ví dụ (tt)  P4 yêu cầu (3, 3, 0) P0 yêu cầu (0, 2, 0) có thỏa mãn hay không? Khoa KTMT 36 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 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 37 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 P3 R2  P2 P4 P1 R5 P2 P3 P4 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 trình có thời gian chạy O(n 2), với n số đỉnh graph Khoa KTMT 38 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 ã soỏ instance cuỷa moói loaùi taứi nguyên cấp phát cho process • Request: ma traọn n ì m ã yeõu cau hieọn taùi cuỷa process • Request [i, j ] = k ⇔ Pi yêu cầu thêm k instance Rj Khoa KTMT 39 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 O(m·n2) Work := 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 40 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 41  P2 Giải thuật phát deadlock – Ví dụ (tt) thêm instance C Ma trận Request sau: yêu cầu P0 Request A B C 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, vaø P4 Khoa KTMT 42 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 43 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 44 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, ) – 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 – 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 45 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 46 ... toaøn Allocation Need Work ABC ABC A B C P0 010 743 3 P1 200 12 2 P2 302 600 P3 211 011 P4 002 4 31 7 10 Khoa KTMT 10 34 GT cấp phát tài nguyên – Ví dụ  Yêu cầu (1, 0, 2) P1 có... R3 R1 P1 P3 P2 R2 R4 Khoa KTMT 10 Ví dụ RAG (tt) R3 R1 P1 P3 P2 Deadlock xaûy ra! R2 R4 Khoa KTMT 11 RAG deadlock  Ví dụ RAG chứa chu trình không xảy deadlock: P4 trả lại instance R2 R1 P1 P2... phương pháp giải deadlock (2) • 2) Cho phép hệ thống vào trạng thái deadlock, sau phát deadlock phục hồi hệ thống • 3) Bỏ qua vấn đề, xem deadlock không xảy hệ thống Khá nhiều hệ điều hành sử dụng

Ngày đăng: 06/03/2014, 09:21

TỪ KHÓA LIÊN QUAN