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

Bài giảng Hệ điều hành: Chương 4 - Thoại Nam, Lê Ngọc Minh

16 9 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 16
Dung lượng 295,74 KB

Nội dung

Bài giảng Hệ điều hành - Chương 4: Deadlock cung cấp cho người học các kiến thức: Mô hình hệ thống, resource allocation graph (RAG), phương pháp giải quyết deadlock. Mời các bạn cùng tham khảo nội dung chi tiết.

Chương Deadlock Mô hình hệ thống Resource Allocation Graph(RAG) Phương pháp giải deadlock – Deadlock prevention (ngăn chặn deadlock) – Deadlock avoidance (traùnh deadlock) – Deadlock detection (phaùt deadlock) – Deadlock recovery (phục hồi deadlock) Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -8.1- Vấn đề deadlock hệ thống Tình huống: tập process bị blocked,mỗi process giữ tài nguyên chờ tài nguyên mà process khác tập có 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 Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt -8.2- Mô hình hóa hệ thống Các 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, monitor, – Mỗi loại tài nguyên Ri có Wi thực thể (instance) Quá trình sử dụng tài nguyên process sau – Yêu cầu (request): process phải chờ yêu cầu không đáp ứng – Sử dụng (use) – Hoàn trả (release) Các tác vụ yêu cầu (request) hoàn trả (release) system call – Request/release device, open/close file, allocate/free memory – Wait/signal Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -8.3- Điều kiện tồn deadlock Mutual exclusion: với tài nguyên, có process sử dụng thời điểm Hold and wait: process sở hữu tài nguyên cấp phát yêu cầu tài nguyên khác No preemption: tài nguyên bị đoạt lại từ process sở hữu tài nguyên Circular wait: tồn chu kỳ đóng yêu cầu tài nguyên P1 P2 Deadlock xảy điều kiện xuất đồng thời Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt -8.4- Resource Allocation Graph(RAG) RAG đồ thị có hướng, 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 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 → Rj Assignment edge: cạnh có hướng từ Rj → Pi Process Pi Loại tài nguyên với thực thể Ri Pi yêu cầu thực thể Rj Pi Rj Pi giữ thực thể Rj Pi Rj Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -8.5- Ví dụ RAG R1 P1 R2 R3 P3 P2 R4 Khoa Coâng Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt -8.6- RAG bị deadlock R1 R3 P3 P2 P1 R4 R2 Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -8.7- Cycle RAG không deadlock R1 P2 P3 P1 R2 P4 ☺ RAG không tồn chu kỳ (cycle) ⇒ deadlock RAG có chu kỳ (cycle) –Nếu loại tài nguyên có thực thể ⇒ deadlock –Nếu loại tài nguyên có nhiều thực thể ⇒ xảy deadlock Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt -8.8- Các p.p giải deadlock Dùng giao thức (protocol) để ngăn chặn tránh deadlock, bảo đảm hệ thống không bị rơi vào tình trạnh deadlock – Deadlock prevention – Deadlock avoidance Hệ thống rơi vào trạng thái deadlock, sau phát deadlock phục hồi hệ thống Bỏ qua vấn đề, xem deadlock xảy hệ thống ☺ Khá nhiều hệ điều hành sử dụng p.p – Deadlock không phát hiện, giải ⇒ giảm hiệu suất hệ thống Cuối cùng, hệ thống ngưng hoạt động phải khởi động lại Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -8.9- Deadlock Prevention 1) 2) Tìm cách ngăn chặn cho điều kiện gây deadlock không xảy Mutual Exclusion: không cần thiết sharable resource bắt buộc phải thỏa mãn nonsharable resource ⇒ không hạn chế Hold and Wait: sử dụng chế “all-or-none” – Cách 1: bắt buộc process phải yêu cầu toàn tài nguyên cần thiết lần Nếu có đủ tài nguyên hệ thống cấp phát, không đủ tài nguyên process phải bị block – Cách 2: yêu cầu tài nguyên, process không sở hữu tài nguyên Nếu có phải trả lại trước yêu cầu – Khuyết điểm: Hiệu suất sử dụng tài nguyên thấp Có khả bị starvation Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -8.10- https://fb.com/tailieudientucntt Deadlock Prevention (t.t) 3) No Preemption: neáu process A có sở hữu tài nguyên yêu cầu tài nguyên khác tài nguyên chưa đáp ứng – Cách 1: A phải trả cho hệ thống tài nguyên sở hữu A phải bắt đầu lại từ đầu, yêu cầu tài nguyên bị đoạt lại tài nguyên yêu cầu – Cách 2: Hệ thống kiểm tra tài nguyên mà A yêu cầu Nếu tài nguyên sở hữu process yêu cầu đợi thêm tài nguyên, tài nguyên hệ thống đoạt lại cấp phát cho A Nếu tài nguyên sở hữu process không đợi tài nguyên, A phải đợi tài nguyên A bị đoạt lại Tuy nhiên hệ thống đoạt lại tài nguyên mà process khác yêu cầu Thường áp dụng cho tài nguyên dễ dàng lưu khôi phục trạng thái CPU register, nhớ, Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -8.11- Deadlock Prevention (t.t) 4) Circular Wait: tài nguyên hệ thống đánh số thứ tự tuyến tính – Ví dụ: F(tape drive) = 1, F(disk drive) = 5, F(Printer) = 12 F hàm định nghóa thứ tự dựa hiệu suất sử dụng tài nguyên – Cách 1: Bắt buộc process yêu cầu tài nguyên theo thứ tự tuyến tính tăng dần Ví dụ Chuỗi yêu cầu hợp lệ: tape drive → disk drive → Printer Chuỗi yêu cầu không hợp lệ: disk drive → tape drive – Cách 2: Khi process yêu cầu tài nguyên Rj phải trả lại tài nguyên Ri với F(Ri) > F(Rj) p1-request p1 R1 R2 R3 p2 R4 R5 Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com R6 p2 -8.12- https://fb.com/tailieudientucntt Deadlock Avoidance Deadlock prevention sử dụng tài nguyên không hiệu Deadlock avoidance dựa điều kiện thứ để tránh deadlock mà đảm bảo hiệu suất sử dụng tài nguyên tối đa đến mức Yêu cầu process khai báo số lượng tài nguyên tối đa cần để thực công việc Giải thuật deadlock-avoidance kiểm tra 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 thái cấp phát tài nguyên định nghóa dựa số tài nguyên lại, số tài nguyên cấp phát yêu cầu cực đại process Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -8.13- Trạng thái “safe” “unsafe” Một trạng thái gọi “safe” tồn cách mà khoảng thời gian hữu hạn đó, hệ thống cấp phát tài nguyên thỏa mãn cho tất process thực thi hoàn tất Khi process yêu cầu tài nguyên sẵn có, hệ thống kiểm tra: việc cấp phát không dẫn đến tình trạng unsafe cấp phaùt A holding maximum need holding maximum need A 10 B B C C Available = Available =1 Trạng thái safe Trạng thái unsafe Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -8.14- https://fb.com/tailieudientucntt Safe,unsafe deadlock Nếu hệ thống trạng thái “safe” ⇒ không deadlock Nếu hệ thống trạng thái “unsafe” ⇒ có khả dẫn đến deadlock Deadlock avoidance ⇒ bảo đảm hệ thống không đến trạng thái “unsafe” deadlock unsafe safe Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -8.15- Giải thuật Banker Áp dụng cho hệ thống cấp phát tài nguyên loại tài nguyên có nhiều instance Mô nghiệp vụ ngân hàng (banking) Một số giả thiết – Mỗi process phải khai báo số lượng tối đa tài nguyên loại mà process cần để hoàn tất công việc – Khi process yêu cầu tài nguyên phải đợi tài nguyên yêu cầu có sẵn – Khi process có đầy đủ tài nguyên phải hoàn trả khoản thời gian hữu hạn Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -8.16- https://fb.com/tailieudientucntt Giải thuật Banker (t.t) Một số giả thiết giải thuật Banker: n = số processes m = số loại tài nguyên Max[n, m] hạn chế giải thuật Banker Max[ i, j ] = k ⇔ số instance cực đại mà Pi yêu cầu Rj Available[m] Available[j] = k ⇔ loại tài nguyên Rj sẵn có k instance Allocation[n, m] Allocation[i,j] = k ⇔ Pi cấp phát k instance Rj Need: ma trận n x m Need[i,j] = k ⇔ Pi cần thêm k instance cuûa Rj Need [i,j] = Max[i,j] – Allocation [i,j] Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -8.17- Giải thuật kiểm tra trạng thái Gọi Work Finish hai vector kích thước tương ứng m, n Khởi tạo ban đầu Work[i] := Available[i] Finish[j] = false, ∀j Tìm i thỏa điều kiện sau Độ phức tạp (a) Finish [i] = false giải thuật (b) Needi ≤ Work (hàng thứ i Need) Nếu không tồn i thoả điều kiện, đến bước O (m n2) Work := Work + Allocationi Finish[i] := true quay bước Nếu Finish[i] = true ∀i, hệ thống trạng thái safe Y ≤ X ⇔ Y[i] ≤ X[i], ví duï (0, 3, 2, 1) ≤ (1, 7, 3, 2) Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -8.18- https://fb.com/tailieudientucntt Giải thuật cấp phát tài nguyên Gọi Requesti[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 Ngược lại, báo lỗi process vượt giới hạn yêu cầu cực đại Nếu Requesti ≤ Available ⇒ qua bước Ngược lại, Pi phải chờ tài nguyên không đủ để cấp phát Giả định cấp phát tài nguyên đáp ứng yêu cầu Pi thử cập nhật trạng thái hệ thống sau: Available := Available - Requesti; Allocationi := Allocationi + Requesti; Needi := Needi – Requesti; Nếu trạng thái safe ⇒ tài nguyên cấp thực cho Pi Nếu unsafe ⇒ Pi phải đợi Phục hồi trạng thái Available := Available + Requesti; Allocationi := Allocationi - Requesti; Needi := Needi + Requesti; Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -8.19- Giải thuật Banker – Ví dụ (t.t) 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 Max Allocation P0 P1 P2 P3 P4 A B 0 0 C 0 2 A B 2 Available C 2 A B C 3 Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com Need A B C 1 -8.20- https://fb.com/tailieudientucntt 10 Kiểm tra an toàn Chuỗi cấp phát an toaøn < P1, P3, P4, P2, P0> Allocation N eed Available ABC ABC A B C P0 010 743 3 P1 200 122 P2 302 600 P3 211 011 P4 002 431 5 10 10 Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -8.21- Ví dụ: Yêu cầu (1,0,2) P1 có thỏa không? Kiểm tra điều kiện Request ≤ Available (1,0,2) ≤ (3,3,2) = TRUE Kiểm tra trạng thái có phải safe hay không? Allocation Need Available A B C A B C A B C 3 P1 0 0 P3 1 1 0 P0 P2 P4 BT: yêu cầu (3,3,0) P4, yêu cầu (0,2,0) P0 thỏa mãn hay không? Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -8.22- https://fb.com/tailieudientucntt 11 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 Có hai mô hình hệ thống cấp phát tài nguyên khảo sát Single-Instance: loại tài nguyên có instance Multiple-Instance: loại tài nguyên có nhiều instance Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -8.23- Mô hình Single-Instance Sử dụng wait-for graph (một biến thể RAG), đó, node graph process – 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 – Pi → Pj ⇔ Pi chờ tài nguyên từ Pj Một giải thuật gọi định kỳ (!) để kiểm tra có tồn chu kỳ (cycle) wait-for graph hay không? Giải thuật phát chu kỳ có độ phức tạp O(n2), với n số đỉnh graph P5 P5 R1 R3 R4 P1 P2 P3 R2 P4 R5 P1 P3 P4 Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com P2 -8.24- https://fb.com/tailieudientucntt 12 Mô hình Multiple-Instance Mô hình 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[m]: # instance sẵn có loại tài nguyên – Allocation[n,m]: # instance cấp phát cho process – Request[n,m]: yêu cầu process Request [i,j] = k ⇔ Pi yêu cầu thêm k instance Rj Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -8.25- Detection Algorithm Gọi Work Finish vector kích thước m n: (a) Work := Available (b) Với i = 1,2, …, n, Allocationi ≠ ⇒ Finish[i] = false ngược lại ⇒ Finish[i] = true Tìm i thỏa mãn: Finish[i] = false Requesti ≤ Work, Nếu không tồn i , đến bước Work = Work + Allocationi Finish[i] = true quay bước Độ phức tạp giải thuật O (m n2) ∃i,1≤ i ≤ n: Finish[i] = false ⇒ hệ thống trạng thái deadlock Hơn nữa, Finish[i] = false ⇒ Pi bị deadlock Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -8.26- https://fb.com/tailieudientucntt 13 Detection Algorithm – Ví dụ Có processes P0 – P4 loại tài nguyeân A (7 instance), B (2 instance), C (6 instance) P0 P1 P2 P3 P4 Allocation A B C 0 3 1 Request A B C 0 2 0 0 0 0 Available A B C 0 Cấp phát theo thứ tự có kết ∀i Finish[i] = true ⇒ hệ thống không bị deadlock Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -8.27- Detection Algorithm – Ví dụ (t.t) P2 yêu cầu thêm instance C Ma trận Request sau: Request ABC P0 0 P1 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 ⇒ Tồn deadlock, bao gồm processe P1, P2, P3, P4 Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -8.28- https://fb.com/tailieudientucntt 14 Deadlock Recovery Phục hồi hệ thống bị deadlock chủ yếu bẻ gãy chu kỳ wait-for process bị deadlock – Hủy bỏ tất process bị deadlock – Hủy bỏ process thu hồi tài nguyên không deadlock Dựa sở để hủy process ? – – – – – – – Độ ư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 để hoàn tất công việc ? Số lượng processes cần hủy bỏ ? Process interactive process hay batch process? Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -8.29- Thu hồi tài nguyên Đoạt 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 – quay trở trạng thái safe, bắt đầu process từ trạng thái Gồm có total rollback check-point rollback Hệ thống cần lưu giữ số thông tin trạng thái process thực thi – Starvation – phải bảo đảm process luôn bị đoạt tài nguyên deadlock xảy Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -8.30- https://fb.com/tailieudientucntt 15 Phương pháp tổng hợp Phân hoạch tài nguyên thành nhóm có phân cấp ⇒ dùng phương pháp linear ordering để phòng chống deadlock nhóm Trong nhóm, dùng giải thuật phù hợp để giải deadlock Một số ví dụ – Swappable space: khối nhớ thiết bị lưu trữ phụ dùng làm nhớ tráo đổi tạm (swap memory) Hold-and-Wait Prevention + Avoidance – Process resource: assignable device nhö tape drive, file, Avoidance hoaëc Resource Ordering – Main memory: memory page/segment Preemption – Internal resource: PCB, I/O channel,… Resource Ordering Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com -8.31- https://fb.com/tailieudientucntt 16 ... R3 R4 P1 P2 P3 R2 P4 R5 P1 P3 P4 Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM CuuDuongThanCong.com P2 -8 . 2 4- https://fb.com/tailieudientucntt 12 Mô hình Multiple-Instance Mô hình wait-for... P1, P3, P4, P2, P0> Allocation N eed Available ABC ABC A B C P0 010 743 3 P1 200 122 P2 302 600 P3 211 011 P4 002 43 1 5 10 10 Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -8 .2 1- Ví dụ:... Single-Instance: loại tài nguyên có instance Multiple-Instance: loại tài nguyên có nhiều instance Khoa Công Nghệ Thông Tin – Đại Học Bách Khoa Tp.HCM -8 .2 3- Mô hình Single-Instance Sử dụng wait-for

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

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

TÀI LIỆU LIÊN QUAN