Lập trình mô phỏng các phương pháp kiểm tra tính an toàn của hệ là một lĩnh vực quan trọng trong ngành công nghệ thông tin. Đảm bảo tính an toàn của hệ thống phần mềm là một yếu tố không thể bỏ qua trong thời đại số hiện nay. Sử dụng lập trình mô phỏng, chúng ta có thể kiểm tra tính an toàn của hệ thống trong các tình huống đa dạng và khó đoán trước. Lập trình mô phỏng cũng giúp chúng ta kiểm tra tính an toàn của hệ tiến trình. Mặc dù lập trình mô phỏng đòi hỏi sự kiên nhẫn và sáng tạo, nhưng nó đem lại lợi ích to lớn cho việc đảm bảo tính an toàn của hệ thống. Sử dụng lập trình mô phỏng, chúng ta có thể thử nghiệm và cải thiện các biện pháp bảo mật trong hệ thống, từ đó nâng cao khả năng phát hiện và giải quyết các vấn đề an toàn.
Trường Đại học công nghiệp Hà Nội Khoa công nghệ thông tin Môn học: Nguyên lý hệ điều hành Đề tài: Lập trình mơ phương pháp kiểm tra tính anh tồn hệ Giáo viên: Nguyễn Thanh Hải Nhóm số: Lớp: 20222IT6025003 Hà Nội, 2023 Trường Đại học công nghiệp Hà Nội Khoa công nghệ thông tin Môn học: Nguyên lý hệ điều hành Đề tài: Lập trình mơ phương pháp kiểm tra tính anh toàn hệ Giáo viên: Nguyễn Thanh hải Sinh viên thực hiện: Trần Văn Hoàng 2020603969 Trương Ngọc Khuê 2021600018 Nguyễn Minh Giang 2020607589 Nguyễn Đức Kiên 2020605889 Dương Quốc Huy 2020606563 Hà Nội, 2023 MỤC LỤC Contents LỜI NÓI ĐẦU Chương 1: Hiện tượng bế tắc 1.1 Khái niệm bế tắc 1.2 Điều kiện xảy bế tắc hệ thống 1.3 Các mức phòng tránh bế tắc Chương 2: Ngăn ngừa bế tắc 2.1 Ngăn ngừa bế tắc 2.1.1 Loại bỏ tài nguyên găng: .6 2.1.2 Loại bỏ yếu tố giữ đợi 2.1.3 Xây dựng hệ thống ngắt tài nguyên 2.1.4 Loại bỏ yếu tố chờ đợi vòng tròn 2.2 Dự báo tránh bế tắc 2.2.1 Khái niệm dãy tiến trình an tồn 2.2.2 Thuật tốn chuyển hệ sang trạng thái an tồn .7 2.2.3 Thuật tốn kiểm tra tính an tồn hệ 2.3 Phát bế tắc Chương 3: Xây dựng thuật toán kiểm tra tính an tồn 10 3.1 Kiểu liệu 10 3.2 Lưu đồ thuật toán 12 3.3 Thuật toán 13 3.4 Dữ liệu vào/ra .19 3.5 Hướng dẫn sử dụng 19 Chương 4: Kết chương trình 20 4.1 Ví dụ hệ trạng thái an toàn 20 4.1.1 Input 20 4.1.2 Output .21 4.2 Ví dụ hệ trạng thái khơng an tồn 22 4.2.1 Input 22 4.2.2 Output .23 LỜI NĨI ĐẦU Lập trình mơ phương pháp kiểm tra tính an tồn hệ lĩnh vực quan trọng ngành công nghệ thông tin Đảm bảo tính an tồn hệ thống phần mềm yếu tố bỏ qua thời đại số Sử dụng lập trình mơ phỏng, kiểm tra tính an tồn hệ thống tình đa dạng khó đốn trước Lập trình mơ giúp kiểm tra tính an tồn hệ tiến trình Mặc dù lập trình mơ địi hỏi kiên nhẫn sáng tạo, đem lại lợi ích to lớn cho việc đảm bảo tính an tồn hệ thống Sử dụng lập trình mơ phỏng, thử nghiệm cải thiện biện pháp bảo mật hệ thống, từ nâng cao khả phát giải vấn đề an toàn Chương 1: Hiện tượng bế tắc 1.1 Khái niệm bế tắc Bế tắc trạng thái hai nhiều tiến trình chờ đợi số kiện khơng có tắc động đặc biệt từ bên ngồi chờ đợi vơ hạn Ví dụ: Giả sử có hai tiến trình P1 P2 song hành sử dụng tài nguyên r1 r2 điều khiển hai đèn hiệu S1 S2 Tại thời điểm, tài nguyên phục vụ cho hoạt động tiến trình Xét trạng thái: P1 Wait(S1) Wait(S2) Thời điểm t1 t2 t3 t4 P2 Wait(S2) Wait(S1) Nhận xét: Tại ví dụ trên, sau thời điểm t3, tiến trình P1 rơi vào trạng thái chờ tài nguyên r2 P2 sử dụng; Sau thời điểm t4, tiến trình P2 rơi vào trạng thái chờ tài nguyên r1 tiến trình P1 sử dụng đây, hai tiến trình rơi vào trạng thái chờ đợi vô hạn hệ thống gặp bế tắc 1.2 Đ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: Có tài nguyên găng 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 Có tượng chờ đợi vòng tròn 1.3 Các mức phòng tránh bế tắc Để tránh tượng bế tắc, thông thường hệ thống áp dụng ba mức: Ngăn ngừa: Áp dụng biện pháp để hệ không rơi vào trạng thái bế tắc Dự báo tránh bế tắc: Áp dụng biện pháp để kiểm tra tiến trình xem 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 phát giải Chương 2: Ngăn ngừa bế tắc 2.1 Ngăn ngừa bế tắc Phải đảm bảo cho điều kiện gây bế tắc không đồng thời xảy ra: 2.1.1 Loại bỏ tài nguyên găng: Mô tài nguyên găng tài nguyên dùng chung 2.1.2 Loại bỏ yếu tố giữ đợi Thực phân bổ trước tài ngun: tiến trình thực tài nguyên mà yêu cầu phân bổ đủ Tiến trình phép địi tài ngun khơng giữ tài ngun Nếu tiến trình phải đợi tài nguyên phải giải phóng 2.1.3 Xây dựng hệ thống ngắt tài nguyên * Phương pháp 1: tiến trình giữ số tài nguyên yêu cầu tài nguyên bổ sung hệ thống phân bổ tài nguyên 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: 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ổ Khi hệ thống kiểm tra xem liệu tài nguyên mà tiến trình u cầu có bị giữ lại tiến trình khác đợi hay khơng + Nếu có ngắt tiến trình thu hồi lại tài nguyên để phân bổ cho tiến trình yêu cầu + Nếu khơng, tiến trình u cầu phải đợi chờ đợi, tài nguyên có bị ngắt 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 2.1.4 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) 2.2 Dự báo tránh bế tắc 2.2.1 Khái niệm dãy tiến trình an tồn Cho dãy tiến trình P1,P2,…Pn song hành Dãy tiến trình gọi an tồn (safe process) với tiến trình Pi, tài nguyên mà Pi cần thỏa mãn tài nguyên khả dụng hệ thống tài nguyên tiến trình Pi giữ với điều kiện i’