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

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

52 4 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

Nội dung

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 cịn 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 ... 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ấ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... 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

Ngày đăng: 08/05/2021, 12:45

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

TÀI LIỆU LIÊN QUAN