Lập trình mô phỏng các phương pháp phân bổ tài nguyên để giải quyết bế tắc môn nguyên lí hệ điều hành

35 79 0
Lập trình mô phỏng các phương pháp phân bổ tài nguyên để giải quyết bế tắc môn nguyên lí hệ điều hà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

Lập trình mô phỏng các phương pháp phân bổ tài nguyên để giải quyết bế tắc, code mô phỏng thuật toán banker , mô tả đầy đủ cấp phát tài nguyên và code mô phỏng cấp phát tài nguyên , Báo cáo cuối kì môn nguyên lí hệ điều hành

TRƯỜNG ĐẠI HỌC _ KHOA CÔNG NGHỆ THÔNG TIN ~~~~~~*~~~~~~ BÀI TẬP TIỂU LUẬN MÔN HỌC: NGUYÊN LÝ HỆ ĐIỀU HÀNH ĐỀ TÀI: Lập trình mơ phương pháp phân bổ tài nguyên để giải bế tắc Giáo Viên Hướng Dẫn: _ Lớp: _ NHÓM : Thành Viên Nhóm: Hà Nội 2021 Mục Lục Chương I: HIỆN TƯỢNG BẾ TẮC I Bế tắc tượng bế tắc Bế tắc .3 Hiện tượng bế tắc II Điều kiện xảy bế tắc hệ thống III Các mức phòng tránh bế tắc IV Quy trình sử dụng tài nguyên V CÁC BIỆN PHÁP PHÒNG TRÁNH BẾ TẮC Ngăn ngừa bế tắc .6 Dự báo tránh bế tắc .7 Chương II: ĐỒ THỊ CẤP PHÁT TÀI NGUYÊN 10 I Đồ thị cấp phát tài nguyên .10 II Trạng thái trình .11 Chương III: GIẢI QUYẾT HIỆN TƯỢNG BẾ TẮC 15 I Xử lý bế tắc 15 II Cách giải deadlock 16 Chương IV: THUẬT TOÁN YÊU CẦU TÀI NGUYÊN 18 I Thuật toán chuyển hệ sang trạng thái an tồn 18 Mơ tả 18 Thuật toán: .18 II Thuật tốn kiểm tra tính an tồn hệ thống (BANKER) 19 Mô tả 19 Thuật toán: .19 Lập trình mơ phỏng .20 Bài tập minh họa 23 III Kết luận: 34 Lời Nói Đầu Máy tính điện tử công cụ hỗ trợ đắc lực để giải công việc thời đại công nghệ Các hệ máy tính đời, hệ sau lại có nhiều cải tiến vượt trội hẳn hệ trước-đáp ứng nhu cầu xã hội Mọi chương trình cần xử lý người sử dụng đưa vào máy tính thu kết mong muốn Tuy nhiên, hệ thống máy tính gặp phải nhiều vấn đề phần tổ chức cho việc xử lý ngày hiệu Bế tắc (hay deadlock) tượng nguy hại cho máy tính (hay cịn gọi tượng máy “treo” (chaos) Để giải vấn đề hệ điều hành có mức để phòng tránh bế tắc (hay phương pháp để phịng tránh bế tắc) Đó phương pháp phân bổ tài nguyên Để hiểu rõ phương pháp này, tìm hiểu “Lập trình mơ phỏng phương pháp phân bổ tài ngun để giải bế tắc” Chương I: HIỆN TƯỢNG BẾ TẮC I Bế tắc tượng bế tắc Bế tắc Bế tắc tượng: Trong hệ thống xuất hai hay nhiều tiến trình, mà tiến trình tập chờ đợi kiện tiến trình tập chiếm giữ Và đợi kéo dài vơ hạn khơng có tác động từ bên Hiện tượng bế tắc - Bế tắc máy tính: Giả sử có hai tiến trình P1 P2 hoạt động đồng thời hệ thống Tiến trình P1 giữ tài nguyên R1 xin cấp R2 để tiếp tục hoạt động, tiến trình P2 giữ tài ngun R2 xin cấp R1 để tiếp tục hoạt động Trong trường hợp P1 P2 không tiếp tục hoạt động Như P1 P2 rơi vào trạng thái tắc nghẽn P1 Thời điểm P2 Wait(S1) T1 Wait(S2) T2 Wait(S2) T3 T4 Wait(S1) Trong trường hợp trên: hai tiến trình P1 P2 rơi vào trạng thái tắc nghẽn, can thiệp hệ điều hành Để phá bỏ tắc nghẽn hệ điều hành cho tạm dừng tiến trình P1 để thu hồi lại tài nguyên R1, lấy R1 cấp cho tiến trình P2 để P2 hoạt động kết thúc, sau thu hồi R1 R2 từ tiến trình P2 để cấp cho P1 tái kích hoạt P1 để P1 hoạt động trở lại Như sau khoảng thời gian P1 P2 khỏi tình trạng tắc nghẽn Khi hệ thống xảy tắc nghẽn hệ điều hành khơng kịp thời phá bỏ tắc nghẽn hệ thống rơi vào tình trạng treo tồn hệ thống Như trường hợp tắc nghẽn ví dụ 1, sau có tiến trình P3, giữ tài nguyên R3, cần R2 để tiếp tục P3 rơi vào tập tiến trình bị tắc nghẽn, sau có tiến trình P4 cần tài nguyên R1 R3 để tiếp tục P4 rơi vào tập tiến trình bị tắc nghẽn P3, … dẫn đến thời điểm tất tiến trình hệ thống rơi vào tập tiến trình tắc nghẽn Và hệ thống bị treo hoàn toàn II Điều kiện xảy bế tắc hệ thống Hiện tượng bế tắc xảy hệ thống tồn bốn điều kiện sau: -Có tài nguyên găng Các tài nguyên liên quan phải chế độ chia sẻ Chỉ có tiến trình thời điểm sử dụng tài nguyên -Có tượng giữ đợi: Có tiến trình giữ số tài nguyên đợi tài nguyên bổ sung giữ tiến trình khác -Khơng có hệ thống phân phối lại tài nguyên: Việc sử dụng tài ngun khơng bị ngắt Tức là, tiến trình sử dụng tài ngun, tài ngun khơng bị ngắt không bị lấy Một tài nguyên giải phóng tiến trình nắm giữ nó, sau mà tiến trình hồn thành -Có tượng chờ đợi vịng trịn: Mỗi tiến trình nắm giữ tài nguyên yêu cầu tiến trình chuỗi khơng thể tồn -Một tập hợp trình {P0, P1,…,Pn} chờ mà P0 chờ tài nguyên giữ P1, P1 chờ tài nguyên giữ P2,…,Pn-1 chờ tài nguyên giữ trình P0 Lưu ý: tất bốn điều kiện phải phát sinh để tượng bế tắc xảy Điều kiện chờ đợi chu trình đưa đến điều kiện giữ-và-chờ bốn điều kiện khơng hồn tồn độc lập III Các mức phịng tránh bế tắc Để tránh bế tắc thông thường hệ thống áp dụng mức: - Ngăn ngừa: áp dụng biện pháp để hệ không rơi vào bế tắc - Dự báo tránh bế tắc: áp dụng biện pháp kiểm tra xem tiến trình có bị rơi vào trạng thái bế tặc hay khơng Nếu có thơng báo trước bế tắc xảy - Nhận biết khắc phục: tìm cách khắc phục giải IV Quy trình sử dụng tài nguyên Một tiến trình thường sử dụng tài nguyên theo bước sau: - Xin phép sử dụng (request) - Sử dụng tài nguyên (use) - Giải phóng tài nguyên sau sử dụng (release) V CÁC BIỆN PHÁP PHÒNG TRÁNH BẾ TẮC Ngăn ngừa bế tắc Để phòng ngừa bế tắc, cần phải đảm bảo cho bốn điều kiện gây bê tắc không xảy đông thời a) Loại bỏ tài nguyên găng Mô phỏng tài nguyên găng tài nguyên dùng chung (áp dụng kĩ thuật SPOOL) b) Loại bỏ yếu tố giữ đợi Thực phân bổ trước tài nguyên; tiến trình thực mọi tài ngun mà yêu cầu phân bổ đủ Tiến trình phép địi tài ngun khơng giữ tài nguyên Nếu tiến trình phải đợi mọi tài ang thá rơi vào ngun giữ phải tạm thời giải phóng c) Xây dựng hệ thống ngắt tài nguyên Hệ thống ngắt tài nguyên xây dựng theo hai phương pháp: Phương pháp 1: Nếu tiến trình giữ số tài nguyên yêu cầu tài nguyên bổ sung hệ thống khơng thể phân bổ mọi tài ngun mà tiến trình giữ bị ngắt bổ sung vào danh sách tài nguyên tự Tiến trình bắt đầu lại phân bố đủ tài nguyên cần thiết Phương pháp 2: Nếu tiến trình giữ số tài nguyên yêu cầu tai nguyên bố sung hệ thống khơng thể phân bổ được, hệ tiến trình khác đợi hay khơng Nếu có ngắt tiến trình này, nhu cầu phải đợi đợi, tài nguyên có bị ngắt thống kiểm tra xem liệu tài ngun mà tiến trình u cầu có bị giữ yêu nội lại tài nguyên để phân bồ cho tiến trình u cầu; ngược lại có tiên trình khác yêu cầu Tiến trình bắt đầu lại phân bổ đủ tài nguyên yêu cầu tái tạo lại tài nguyên bị ngắt d) Loại bỏ yếu tố chờ đợi vòng tròn Yếu tố chờ đợi vịng trịn loại bỏ cách thứ tự tài nguyên Mỗi tài nguyên r gán số thứ tự f(r) -Phương pháp 1: Tiến trình giữ tài nguyên rị chi phép đòi tài nguyên r,khi f(r) f(r) Dự báo tránh bế tắc Nguyên tắc chung dự báo tránh bế tắc lần phân bổ tài nguyên cho tiến trình hệ thống kiểm tra xem việc phân bổ có đẩy hệ thống vào tình trạng bế tắc hay khơng Nếu có tìm cách giải trước bế tắc xảy a) Khái niệm dãy tiến trình an tồn Cho dãy tiến trình P, P2 , P, song hành Dãy tiến trình gọi an tồn (safe process) với mọi tiến trình P;, tài nguyên mà P; cần thoả mãn tài nguyên khả dụng hệ thống tài nguyên tiến trình P giữ với điều kiện i' < i Hệ thống trạng thái an toàn thời điểm dãy tiến trình song hành thời điểm xếp thành dãy an tồn b) Thuật tốn chuyển hệ sang trạng thái an tồn Giả sử hệ có n tiến trình m kiểu tài nguyên Các cấu trúc liệu sử dụng thuật toán xây dựng sau: - Available: mång x m thể số tài nguyên sử dụng mẽ kiểu Nếu Available(j) = k suy có k tài nguyên kiểur; sử dụng -Max: mång n × m số tài nguyên cực đại mà tiến trình yêu cầu, Nếu Max(i, j) = k suy tiến trình P, yêu cầu cực đại k nguyên kiểu rj -Allocation : mảng n × m thể ố tài ngun cịn cân tiến trình Nếu Allocation(i, j)=k suy tién trình Pi sử dụng k tài nguyên kiểu rj - Need: mảng n × m thể số tài ngun cịn cần tiến trình nếu need(i,j) =k suy tiến trình Pi sử dụng k tài nguyên kiểu rj Chú ý: Need(i, j) = Max(i, j) – Allocation(i, j) Request: mảng n × m thể yêu cầu tài nguyên tiến trình Tj thời điểm Nếu Request(i, j)=k suy tiến trình Pi yêu cầu k tài nguyên kiểu rj Thuật toán: Step 1: If Request(i)

Ngày đăng: 24/06/2021, 16:06

Mục lục

    Chương I: HIỆN TƯỢNG BẾ TẮC

    V. CÁC BIỆN PHÁP PHÒNG TRÁNH BẾ TẮC

    3. Ngăn ngừa bế tắc

    a) Loại bỏ tài nguyên găng

    b) Loại bỏ yếu tố giữ và đợi

    c) Xây dựng hệ thống ngắt tài nguyên

    d) Loại bỏ yếu tố chờ đợi vòng tròn

    4. Dự báo và tránh bế tắc

    a) Khái niệm về dãy tiến trình an toàn

    b) Thuật toán chuyển hệ sang trạng thái an toàn