Bài giảng Hệ điều hành: Chương 6 - ThS. Hà Lê Hoài Trung

52 88 0
Bài giảng Hệ điều hành: Chương 6 - ThS. Hà Lê Hoài Trung

Đ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 6: Tắc nghẽn cung cấp cho người đọc các kiến thức: Mô hình hệ thống, định nghĩa, điều kiện cần của deadlock, Resource Allocation Graph, phương pháp giải quyết của deadlock, deadlock prevention,... Mời các bạn cùng tham khảo nội dung chi tiết.

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: ‟ 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 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: 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 : Khoa KTMT Rj Pi Rj Pi Đồ 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 } (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:  Cạnh yêu cầu (Request edge): ø Pi Rj  Cạnh cấp phát (Assignment edge): Rj Pi Khoa KTMT Ví dụ RAG R3 R1 P1 P3 P2 R2 R4 Khoa KTMT Ví dụ RAG (tt) R3 R1 P1 P3 P2 Deadlock xaûy ra! R2 R4 Khoa KTMT 10 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 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 với Finish[ i ] = true, i = 1,…, n, hệ thống không bò deadlocked Khoa KTMT 38 Giải thuật phát deadlock – Ví dụ (tt)  P2 yêu cầu thêm instance C Ma trận Request sau: P0 P1 P2 P3 P4 Request A B C 0 2 0 1 0 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 39 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 40 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 41 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 42 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 43 Bài tập   Bài 01: Liệt kê trường hợp xảy deadlock đời sống R3 R1 Bài 02: P1 P3 P2 Deadlock ? R2 R4 Khoa KTMT 44 Bài tập  Cho hệ thống có tiến trình, P1 đến P4, loại tài nguyên, R1 (3 thực thể), R2 (2 thực thể), R3 (2 thực thể) Tiến trình P1 giữ R1, yêu cầu R2 Tiến trình P2 giữ R2 yêu cầu R1 R3 P3 giữ R1, yêu cầu R2 P4 giữ R3 yêu cầu R1 Vẽ đồ thị tài nguyên cho hệ thống Có nguy deadlock khơng? Nếu có nguy deadlock, có chuỗi an tồn khơng, chuỗi nào? Khoa KTMT 45 Bài tập  Xét hệ thống yêu cầu tài nguyên sau: Tiến trình P1 yêu cầu sử dụng CPU hình (display) Tiến trình P2 yêu cầu disk hình Tiến trình P3 yêu cầu disk network Tiến trình P4 yêu cầu network hình Tài nguyên phân chia cho tiến trình theo thứ tự yêu cầu Mỗi loại tài ngun có thực thể Disk, hình network tài nguyên lấy lại tiến trình sở hữu chưa kết thúc Xác định deadlock xảy trường hợp cách sử dụng Resource Allocation Graph Wait-For Graph Khoa KTMT 46 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 khoâng? Khoa KTMT 47 Bài tập  Xét trạng thái hệ thống với loại tài nguyên A, B, C, D sau:  Xác định nội dung bảng Need Hệ thống có trạng thái an tồn khơng? Nếu tiến trình P2 có u cầu thêm tài nguyên (4,0,0,4), yêu cầu có đáp ứng hay không?   Khoa KTMT 48 Bài tập  Cho hệ thống tiến trình loại tài nguyên (A, B, C) Giả sử hệ thống trạng thái sau:  Tính nhu cầu lại tiến trình số tài ngun loại hệ thống Hãy tìm trạng thái an tồn Nếu tiến trình P2 có u cầu thêm tài nguyên (A: 0; B: 2; C: 1), cho biết yêu cầu đáp ứng mà bảo đảm khơng xảy tình trạng deadlock hay khơng?   Khoa KTMT 49 Bài tập  Xét trạng thái hệ thống với loại tài nguyên A, B, C, D sau:  Xác định nội dung bảng Need Hệ thống có trạng thái an tồn khơng? Nếu tiến trình P2 có u cầu thêm tài ngun (2,1,0,2), yêu cầu có đáp ứng hay không?   Khoa KTMT 50 Bài tập  Cho process P0 … P4; Hệ thống có loại tài nguyên: A (10 instance), B (5 instance), C (7 instance) Tại thời điểm T0:  Hệ thống có trạng thái an tồn khơng? Tại thời điểm T1; P0 có yêu cầu thêm tài nguyên (2,1,0), hệ thống nào?  Khoa KTMT 51 Bài tập  Một hệ thống có tiến trình với tình trạng tài nguyên sau:  Dùng giải thuật banking, để trả lời câu hỏi sau: – Xác định nội dung bảng Need – Hệ thống có trạng thái an tồn khơng? (Nếu có cho biết chuỗi an tồn)? – Nếu tiến trình P1 có yêu cầu thêm tài nguyên (0, 4, 3, 0), yêu cầu có đáp ứng hay không? Khoa KTMT 52 ... vấn đề, xem deadlock không xảy hệ thống Khá nhiều hệ điều hành sử dụng phương pháp ‟ Deadlock không phát hiện, dẫn đến việc 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... nguyên cần để hệ thống cấp phát tài nguyên cách thích hợp Khoa KTMT 13 Các 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)... 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)

Ngày đăng: 30/01/2020, 03:19

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