Bài giảng Hệ điều hành: Chương 5 - ThS. Nguyễn Thị Hải Bình

34 82 0
Bài giảng Hệ điều hành: Chương 5 - ThS. Nguyễn Thị Hải Bình

Đ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

Chương 5 giúp người học hiểu về Bế tắc. Nội dung trình bày cụ thể gồm có: Định nghĩa Bế tắc; Đặc điểm của Bế tắc; Tránh bế tắc; Phát hiện bế tắc; Khắc phục bế tắc. Mời các bạn cùng tham khảo nội dung chi tiết.

BẾ TẮC (DEADLOCK) ThS Nguyễn Thị Hải Bình Khoa CNTT, ĐH Giao thông vận tải Email: calmseahn@gmail.com Website: calmseahn.weebly.com BRIDGE CROSSING EXAMPLE DEADLOCK EXAMPLE Process 1 Process Process requests the printer, gets it Process requests the tape unit, gets it Process requests the tape unit, waits Process requests the printer, waits Bế tắc tình xuất hai tiến trình phải chờ đợi giải phóng tài nguyên nhiều tiến trình chờ sử dụng tài ngun theo “vịng trịn” (circular chain) MƠ HÌNH HỆ THỐNG • Xem hệ thống tập hợp có giới hạn tài ngun • Kiểu tài ngun (type) • Các tài nguyên chia thành kiểu, ví dụ: memory, printers, CPUs, open files, tape drives, CD-ROMS, … • Hệ thống có CPU kiểu tài ngun CPU có đối tượng • Các đối tượng (instances) kiểu tài ngun có vai trị • Tiến trình sử dụng tài ngun theo trình tự • u cầu (Request) • Sử dụng (Use) • Giải phóng (Release) • Một tập hợp tiến trình tình trạng bế tắc tiến trình chờ tài nguyên từ tiến trình khác tập hợp ĐIỀU KIỆN CẦN ĐỂ CÓ BẾ TẮC • Bế tắc xuất điều kiện sau đồng thời xuất • Độc quyền truy xuất (Mutal exclusion): tài nguyên bị nắm giữ thuộc kiểu khơng thể dùng chung • Giữ chờ (Hold and wait): tồn tiến trình nắm giữ tài nguyên, đồng thời lại chờ tài nguyên bị giữ tiến trình khác • Khơng chiếm đoạt (No preemption): hệ thống khơng thể chiếm tài ngun tiến trình • Vòng đợi (Circular wait): Tồn tập hợp tiến trình {P0, P1, …, Pn}, mà P0 chờ P1, P1 chờ P2, …, Pn chờ P0 ĐỒ THỊ PHÂN PHỐI TÀI NGUYÊN • Tập đỉnh V • P = {P1, P2, …, Pn} - ứng với tiến trình • R = {R1, R2, …, Rn} - ứng với kiểu tài nguyên hệ thống • Tập cung E • Cung yêu cầu Pi  Rj Pi  Rj • Cung phân phối ĐỒ THỊ PHÂN PHỐI TÀI NGUN • Ví dụ • Tập đỉnh: V = P  R • P = {P1, P2, P3} • R = {R1, R2, R3, R4} • Tập cung • E = {P1  R1, P2  R3, R1  P2, R2  P2, R2  P1, R3  P3} PHÁT HIỆN BẾ TẮC BẰNG ĐTPPTN • Nếu đồ thị khơng có chu trình, khơng có tiến trình bị bế tắc • Nếu đồ có chu trình • Nếu kiểu tài ngun chu trình có đối tượng, tiến trình chu trình rơi vào trạng thái bế tắc • Nếu kiểu tài ngun chu trình có nhiều đối tượng, bế tắc xảy Thêm vào cung P3  R3 10 VÍ DỤ VỀ TRẠNG THÁI AN TỒN • Xét hệ thống có 12 tài nguyên 12 băng từ • Tại thời điểm t0 hệ thống trạng thái sau: Process Max needs Allocated Current needs P0 10 5 P1 2 P2 • Hệ thống trạng thái an tồn tồn {P1, P0, P2} dãy an tồn 20 VÍ DỤ VỀ TRẠNG THÁI AN TỒN • Xét hệ thống có 12 tài nguyên 12 băng từ • Tại thời điểm t1, P2 xin cấp phát tài nguyên chấp nhận Hệ thống chuyển sang trạng thái sau: Process Max needs Allocated Current needs P0 10 5 P1 2 P2 • Hệ thống trạng thái khơng an tồn 21 THUẬT TỐN ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN • Giả sử kiểu tài ngun có đối tượng • Đồ thị gồm có: • Tập đỉnh: P  R • Tập cung • Cung yêu cầu • Cung phân phối • Cung nhu cầu (cung báo trước) 22 Resource-allocation graph for deadlock avoidance An unsafe state in a resource-allocation graph 23 THUẬT TỐN NGÂN HÀNG (BANKER’S ALGORITHM) • Tự đọc 24 PHÁT HIỆN BẾ TẮC • Kiểu tài ngun có đối tượng • Sử dụng đồ thị đợi chờ (wait-for graph) • Nếu tồn chu trình có bế tắc 25 PHÁT HIỆN BẾ TẮC • Kiểu tài nguyên có nhiều đối tượng • Giả sử hệ thống có m kiểu tài ngun n tiến trình • Thuật toán phát bế tắc sử dụng biến sau • • • • • Mảng available[m] Mảng allocation[n,m] Mảng request[n,m] Mảng work[m] Mảng finish[n] 26 Available [m] Allocation [n,m] Request [n,m] Work[m] Finish[n] The algorithm is as follows: Initialize Work = Available For i = to n If Allocation(i) = then Finish[i] = true else Finish[i] = false Search an i such that Finish[i] = false and Request(i) ≤ Work If no such i can be found, go to step For that i found in step do: Work = Work + Allocation(i) Finish[i] = true Go to step If Finish[i] ≠ true for a some i then the system is in deadlock state else the system is safe 27 KHẮC PHỤC BẾ TẮC • Tự đọc 28 BÀI TẬP • Đồ thị phân phối tài nguyên sau có xuất bế tắc hay không? 29 30 31 32 33 • Xét hệ thống có tài nguyên • Trạng thái thời hệ thống sau • Hệ thống có trạng thái an tồn hay khơng? 34 ... PHỤC BẾ TẮC • Tự đọc 28 BÀI TẬP • Đồ thị phân phối tài ngun sau có xuất bế tắc hay khơng? 29 30 31 32 33 • Xét hệ thống có tài nguyên • Trạng thái thời hệ thống sau • Hệ thống có trạng thái an... tài nguyên, tiến trình phải giải phóng tất tài ngun giữ • “Nạn đói” 14 NGĂN CHẶN BẾ TẮC • Điều kiện “khơng chiếm đoạt” • Giải pháp 1: Nếu tiến trình phải chờ tài nguyên, hệ thống thu hồi tất tài... VỀ TRẠNG THÁI AN TỒN • Xét hệ thống có 12 tài nguyên 12 băng từ • Tại thời điểm t0 hệ thống trạng thái sau: Process Max needs Allocated Current needs P0 10 5 P1 2 P2 • Hệ thống trạng thái an tồn

Ngày đăng: 10/01/2020, 23:49

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