Bài giảng Hệ điều hành: Chương 6 - Trần Công Án (ĐH Cần Thơ)

49 14 0
Bài giảng Hệ điều hành: Chương 6 - Trần Công Án (ĐH Cần Thơ)

Đ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: Deadlock (Khóa chết) cung cấp các kiến thức giúp người đọc có thể mô tả tình trạng deadlock của hệ thống – một trạng thái mà các tiến trình không thể tiến triển để hoàn thành các tác vụ của chúng, trình bày các phương pháp để ngăn chặn hoặc tránh deadlock,... Mời các bạn cùng tham khảo

CT107 Hệ Điều Hành Chương Deadlock (Khóa Chết) Giảng viên: Trần Cơng Án (tcan@cit.ctu.edu.vn) Bộ mơn Mạng máy tính & Truyền thông Khoa Công Nghệ Thông Tin & Truyền Thông Đại học Cần Thơ 2014 [CT107] Ch6 Deadlock Mục Tiêu Mơ tả tình trạng deadlock hệ thống – trạng thái mà tiến trình khơng thể tiến triển để hồn thành tác vụ chúng Trình bày phương pháp để ngăn chặn tránh deadlock; biện pháp để phát phục hồi hệ thống deadlock xảy TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock [CT107] Ch6 Deadlock Nội Dung TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock [CT107] Ch6 Deadlock Giới thiệu Deadlock Deadlock gì? Deadlock Là Gì? Deadlock trạng thái hệ thống đó: tập hợp tiến trình bị nghẽn tiến trình giữ tài nguyên chờ tài nguyên bị giữ tiến trình khác tập tiến trình bị nghẽn Ví dụ 1: Giả sử hệ thống có tiến trình P Q F1, F2 tập tin Tiến trình P giữ F1 cần truy xuất thêm F2 Tiến trình Q giữ F2 cần truy xuất thêm F1 TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock [CT107] Ch6 Deadlock Giới thiệu Deadlock Deadlock gì? Ví Dụ – Traffic Deadlock Chapter Deadlocks 342 • • • • • • • • • • • • Figure 7.10 Traffic deadlock for Exercise 7.11 TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock [CT107] Ch6 Deadlock Giới thiệu Deadlock Điều kiện phát sinh deadlock Điều Kiện Phát Sinh Deadlock Loại trừ hỗ tương: tài nguyên giữ chế độ không chia sẻ (nonsharable mode) Giữ chờ: tiến trình giữ tài ngun đợi thêm tài nguyên bị giữ tiến trình khác Không trưng dụng tài nguyên: không trưng dụng tài nguyên cấp phát tiến trình, trừ tiến trình tự hồn trả Chờ đợi vịng trịn: tồn tập tiến trình {P0 , P1 , , Pn } chờ đợi sau: P0 đợi tài nguyên P1 giữ, P1 đợi tài nguyên P2 giữ, , Pn đợi tài nguyên P0 giữ TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock [CT107] Ch6 Deadlock Giới thiệu Deadlock Mơ hình hóa hệ thống Mơ Hình Hóa Hệ Thống Hệ thống gồm tập loại tài nguyên, kí hiệu R1 , R2 , , Rm Ví dụ: CPU cycles, memory space, I/O devices, Mỗi loại tài nguyên Ri có tập thể (instances) Wi Tiến trình sử dụng tài nguyên theo bước: Yêu cầu (request) – phải chờ không đáp ứng Sử dụng (use) Giải phóng (release) Các tác vụ yêu cầu hoàn trả thực lời gọi hệ thống TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock [CT107] Ch6 Deadlock Giới thiệu Deadlock Đồ thị cấp phát tài nguyên (Resourece Allocation Graph – RAG) Đồ Thị Cấp Phát Tài Nguyên – RAG Là đồ thị có hướng, với tập đỉnh V tập cạnh E Tập đỉnh V gồm loại: Tập P = {P1 , P2 , , Pn }: tập tiến trình hệ thống Tập R = {R1 , R2 , , Rm }: tập tài nguyên hệ thống Tập cạnh gồm loại: Cạnh yêu cầu (request edge): có hướng từ Pi đến Rj Cạnh cấp phát (assignment edge): có hướng từ RJ đến Pi TS Trần Cơng Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock [CT107] Ch6 Deadlock Giới thiệu Deadlock Đồ thị cấp phát tài nguyên (Resourece Allocation Graph – RAG) Ký Hiệu Tiến trình: Pi   ●● ●● Loại tài nguyên (với thể hiện): Pi yêu cầu thể Rj : Pi giữ thể Rj : TS Trần Công Án (Khoa CNTT&TT) Pi   Pi   [CT107] Ch6 Deadlock ●● ●● ●● ●● Rj Rj [CT107] Ch6 Deadlock Giới thiệu Deadlock Đồ thị cấp phát tài nguyên (Resourece Allocation Graph – RAG) Đồ Thị Cấp Phát Tài Nguyên – Ví Dụ ks Đồ thị cấp phát tài ngun (khơng có chu trình khơng deadlock): R1 R3 P = {P1 , P2 , P3 } R = {R1 , R2 , R3 , R4 } P1 P2 P3 E = {P1 → R1 , P2 → R3 , R1 → P2 , R2 → P2 , R2 → P1 , R3 → P3 } Thể loại tài nguyên: R1 : 1; R2 : 2; R3 : 1; R4 : Trạng thái tiến trình: P1 : giữ (R2 , 1); chờ (R1 , 1) R2 P2 : giữ (R1 , 1), (R2 , 1); chờ (R3 , 1) R4 Figure TS Trần 7.1 Công Resource-allocation Án (Khoa CNTT&TT) P3 : giữ (R3 , 1) graph.[CT107] Ch6 Deadlock 10 [CT107] Ch6 Deadlock Ngăn chặn tránh deadlock Tránh deadlock Giải Thuật Banker – Bài Tập Yêu cầu (3, 3, 0) P4 có đáp ứng khơng? u cầu (0, 2, 0) P0 có đáp ứng khơng? TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 35 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phát deadlock Phát Hiện Deadlock Trong cách tiếp cận “phát phục hồi” vấn đề deadlock: Chấp nhận cho deaclock xảy hệ thống Sử dụng giải thuật để phát deadlock Nếu có deadlock tiến hành phục hồi hệ thống, dùng sơ đồ phục hồi thích hợp Các giải thuật phát deadlock thường sử dụng RAG Có loại giải thuật: Cho trường hợp loại tài nguyên Cho trường hợp loại tài nguyên có nhiều thể TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 36 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phát deadlock Mỗi Loại Tài Nguyên Chỉ Có Thể Hiện Sử dụng biến thể RAG – đồ thị wait-for: Các nút: tiến trình Các cạnh: Pi → Pj Pi đợi Pj Deadlock tồn hệ thống đồ thị wait-for tồn chu trình Giải thuật xây dựng đồ thị wait-for tìm kiếm chu trình thực định kỳ hệ thống TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 37 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phát deadlock Đồ Thị Cấp Phát Tài Nguyên & Wait-for 334 334 Chapter Deadlocks Chapter Deadlocks Một đồ thị7 Cấp phát tài nguyên đồ thị Wait-for tương ứng: P5 P5 R1 R3 R1 R4 R3 R4 P5 P5 P1 P2 P1 P3 P2 P3 P1 P2 P1 P4 P4 R2 R2 P3 P4 R5 R5 (a) P3 P2 (a) (b) P4 (b) Figure 7.9 (a) Resource-allocation graph (b) Corresponding wait-for graph TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 38 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phát deadlock Mỗi Loại Tài Nguyên Có Nhiều Thể Hiện Cấu trúc liệu giải thuật: Available: vector có chiều dài m Số thể cịn sẵn dùng loại tài nguyên Allocation: ma trận n × m Số thể cấp phát cho tiến trình Request: ma trận n × m u cầu tài nguyên tiến trình Nếu Request[i, j] = k, Pi yêu cầu thêm k thể Rj TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 39 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phát deadlock Mỗi Loại Tài Nguyên Có Nhiều Thể Hiện Giải thuật phát deadlock bao gồm bước: Cho Work Finish vector kích thước tương ứng m n Khởi tạo: a Work = Available b for i = 0, 1, , (n − 1) if Allocation[i] = then Finish[i] = false else Finish[i] = true (next slide) TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 40 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phát deadlock Mỗi Loại Tài Nguyên Có Nhiều Thể Hiện Tìm i ∈ [0, n − 1] thỏa mãn hai điều kiện sau: a Finish[i] = false b Request[i] ≤ Work Nếu không tồn tại, nhảy đến bước Work = Work + Allocation[i] Finish[i] = true Quay bước Nếu tồn i với Finish[i] = false: Hệ thống trạng thái deadlock Nếu Finish[i] = false ⇒ Pi bị deadlock TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 41 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phát deadlock Mỗi Loại Tài Nguyên Có Nhiều Thể Hiện Ví dụ 1: Cho hệ thống có tiến trình P0 , , P4 loại tài nguyên: A (7 thể hiện), B (2 thể hiện), C (6 thể hiện) Hiện trạng hệ thống T0 : Alloca&on   Request   A   B   C   A   B   C   P0               P1               P2               P3               P4               Thực giải thuật, ta tìm chuỗi P0 , P2 , P1 , P3 , P4 dẫn đến Finish[i] = true với i = ⇒ hệ thống không deadlock T0 Available  =  (0,  0,  0)   TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 42 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phát deadlock Mỗi Loại Tài Nguyên Có Nhiều Thể Hiện Ví dụ 2: Giả sử thời điểm T0 T1 , P2 yêu cầu thêm thể tài nguyên loại C Trạng thái hệ thống T1 gì? Hiện trạng hệ thống T1 : Alloca&on   Request   A   B   C   A   B   C   P0               P1               P2               P3               P4               Available  =  (0,  0,  0)   TS Trần Công Án (Khoa CNTT&TT) Chạy giải thuật p/hiện deadlock: Finish[0] = true Finish[1 4] = false ⇒ Hệ thống deadlock (P1 , P2 , P3 , P4 ) Nhận xét: tài nguyên thu hồi từ P0 không đủ đáp ứng cho t/trình khác [CT107] Ch6 Deadlock 43 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phát deadlock Sử Dụng Giải Thuật Phát Hiện Deadlock Khi nào/Tần suất thực phát deadlock phụ thuộc vào: Deadlock có thường xảy khơng? Có nhiều tiến trình tham gia vào deadlock hay không? Nếu kiểm tra deadlock thường xuyên hệ thống deadlock làm hao phí tài nguyên (CPU) hệ thống Tuy nhiên, thực phát deadlock với tần suất thấp: Nếu deadlock diễn thường xuyên: nhiều chu trình đồ thị ⇒ khơng biết xác tiến trình gây deadlock Nếu có nhiều tiến trình tham gia vào deadlock: hiệu suất sử dụng tài nguyên hệ thống giảm TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 44 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phục hồi deadlock Phục Hồi Deadlock Các giải pháp để phục hồi deadlock: Bằng tay (manual): người sử dụng/điều hành giải Phục hồi tự động cách “phá” deadlock, có giải pháp: Ngưng tiến trình: ngưng (terminate) vài tiến trình tham gia vào deadlock Lấy lại tài nguyên: trưng dụng vài tài ngun tiến trình bị deadlock TS Trần Cơng Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 45 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phục hồi deadlock Ngưng Tiến Trình Ngưng tất tiến trình bị deadlock: Chi phí lớn, đặc biệt ngưng tiến trình “già” Ngưng tiến trình khơng cịn deadlock: Kết hợp với giải thuật phát deadlock ⇒ phải xét đến chi phí Các yếu tố chọn tiến trình cần ngưng: Độ ưu tiên Thời gian thực thi, thời gian lại Loại tài nguyên tiến trình sử dụng Tài nguyên cần thêm Số lượng tiến trình bị ngưng Loại tiến trình TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 46 [CT107] Ch6 Deadlock Phát phục hồi deadlock Phục hồi deadlock Lấy Lại Tài Nguyên Lần lượt lấy lại tài nguyên tiến trình, cấp phát cho tiến trình khác khơng cịn deadlock Các vấn đề thu hồi tài nguyên: Chọn “nạn nhân”: chọn tài nguyên tiến trình cần thu hồi (dựa số tài nguyên sở hữu, thời gian thực thi, ) Cuộn lại (rollback): cuộn lại đến trạng thái an toàn, khởi động lại từ vị trí địi hỏi hệ thống phải lưu lại thơng tin trạng thái tiến trình thực thi Đói tài ngun: tránh trình trạng tiến trình bị chọn làm nạn nhân TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 47 [CT107] Ch6 Deadlock Tổng kết Tổng Kết Dealock: trạng thái tiến trình chờ vịng trịn lẫn nhau, khơng thể tiến triển Đồ thị cấp phát tài ngun: mơ hình trạng thái cấp phát, sử dụng tài nguyên tiến trình hệ thống Có cách tiếp cận vấn đề deadlock: Ngăn chặn tránh deadlock: đảm bảo trạng thái deadlock không xảy Phát khôi phục deadlock: cho phép deadlock xảy ra, dùng giải thuật kiểm tra trạng thái deadlock theo định kỳ thực khơi phục deadlock có Các giải thuật ngăn chặn, tránh phát deadlock dựa vào đồ thị cấp phát tài nguyên TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 48 ... phát phục hồi hệ thống deadlock xảy TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock [CT107] Ch6 Deadlock Nội Dung TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock [CT107] Ch6 Deadlock Giới... 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 TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 14 [CT107] Ch6 Deadlock Ngăn chặn tránh deadlock Ngăn chặn tránh deadlock... trước xin tài nguyên Rj TS Trần Công Án (Khoa CNTT&TT) [CT107] Ch6 Deadlock 19 [CT107] Ch6 Deadlock Ngăn chặn tránh deadlock Tránh deadlock Tránh Deadlock Cách tiếp cận tránh deadlock cho phép sử

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

Từ khóa liên quan

Mục lục

  • Giới thiệu Deadlock

    • Deadlock là gì?

    • Điều kiện phát sinh deadlock

    • Mô hình hóa hệ thống

    • Đồ thị cấp phát tài nguyên (Resourece Allocation Graph – RAG)

    • Các cách tiếp cận với vấn đề deadlock

    • Ngăn chặn và tránh deadlock

    • Phát hiện và phục hồi deadlock

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan