Lập trình mô phỏng các phương pháp kiểm tra tính an toàn của hệ

20 6 0
Lập trình mô phỏng các phương pháp kiểm tra tính an toàn của hệ

Đ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

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN -��� - BÀI TẬP LỚN MÔN: NGUYÊN LÝ HỆ ĐIỀU HÀNH ĐỀ TÀI: Lập trình mơ phương pháp kiểm tra tính an tồn hệ Giảng viên : Nhóm số: Lớp: TS Nguyễn Bá Nghiễn 04 IT6025.2 - K15 Hà Nội, 2022 Mục lục Mục lục Lời mở đầu Chương I: Tìm hiểu 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 .4 1.3 Các mức phòng tránh bế tắc .4 1.4 Ngăn chặn bế tắc an toàn hệ thống 1.4.1 Ngăn chặn bế tắc 1.4.2 Dãy tiến trình an tồn Chương II: Tìm hiểu phương pháp kiểm tra hệ an toàn .8 Chương III: Cài đặt thuật toán .10 3.1 Thuật toán chuyển sang trạng thái an toàn 10 3.2 Thuật tốn kiểm tra tính an tồn hệ .11 3.3 Cài đặt thuật toán 12 3.4 Ví dụ minh họa .16 Kết luận 17 Tài liệu tham khảo 18 Lời mở đầu Công nghệ thông tin giai đoạn phát triển vũ bão lĩnh vực hoạt động khắp nơi giới Điều xảy vòng vài năm qua Việt Nam đầu tư ạt vào công nghệ Tin học vấn đề thiếu công ty Đặc biệt tin học ngày giữ vai trò quan trọng vấn đề quản lý tổ chức lĩnh vực thu thập thông tin Tuy ngành công nghệ thông tin nước ta phát triển vài năm trở lại bước phát triển bước phát triển cho thấy tiềm lớn lao lĩnh vực cơng nghệ thơng tin nước ta, phát triển hệ thống thông tin mạnh đất nước Hệ thống thông tin giúp công việc quản lý dễ dàng hơn, nâng cao hiệu sản xuất, tiết kiệm lượng lớn thời gian công sức Qua thời gian học tập tìm hiểu học phần “Nguyên lý hệ điều hành”, nhóm em chọn đề tài “Lập trình mơ phương pháp kiểm tra hệ an tồn” Báo cáo thực tập gồm có chương sau: ● Chương I: Tìm hiểu tượng bế tắc ● Chương II: Tìm hiểu phương pháp kiểm tra hệ an toàn ● Chương III: Cài đặt thuật toán Dưới hướng dẫn giảng viên Nguyễn Bá Nghiễn chúng em tìm hiểu hồn thành đề tài giao Mong thầy (cơ) góp ý để làm chúng em hoàn thiện Chúng em xin chân thành cảm ơn! Chương I: Tìm hiểu tượng bế tắc 1.1 Khái niệm bế tắc Bế tắc trạng thái hệ thống có hai tiến trình dừng chờ lẫn chúng chạy tiếp được, chờ đợi kéo dài vơ hạn khơng có tác động từ bên ngồi Hầu hết hệ điều hành không cung cấp phương tiện ngăn chặn bế tắc Vấn đề bế tắc trở thành vấn đề phổ biến, xu hướng hành gồm số lượng lớn tiến trình, chương trình đa luồng, nhiều tài nguyên hệ thống đặc biệt tập tin có đời sống dài máy phục vụ sở liệu hệ thống đóng Giả sử có ba Process P1, P2 P3 Có ba tài nguyên khác R1, R2 R3 R1 gán cho P1, R2 gán cho P2 R3 gán cho P3 Sau thời gian, P1 yêu cầu R1 P2 sử dụng P1 tạm dừng Process thực thi khơng thể hồn thành khơng có R P2 u cầu R3 P3 sử dụng P2 dừng Process thực thi khơng thể tiếp tục mà khơng có R P3 u cầu R1 P1 sử dụng P3 dừng thực thi Trong kịch này, chu trình hình thành ba Process Khơng có Process diễn tất chờ đợi Máy tính khơng phản hồi tất Process bị chặn Hình Minh họa Process thực thi 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: + Một tài nguyên bị chiếm tiến trình khơng tiến trình khác sử dụng tài nguyên - Có tượng giữ đợi: + Một tiến trình giữ tài nguyên chờ số tài nguyên khác rỗi để sử dụng Các tài nguyên bị tiến trình khác chiếm giữ - Khơng có hệ thống phân phối lại tài ngun: + Tài nguyên bị chiếm giữ rỗi tiến trình tự nguyện giải phóng tài ngun sau sử dụng xong - Có tượng chờ đợi vịng trịn: + Một tập tiến trình {P0, P1, …, Pn} có xuất điều kiện “chờ vịng” P0 chờ tài nguyên P1 chiếm giữ, P1 chờ tài nguyên khác P2 chiếm giữ, , Pn-1 chờ tài nguyên Pn chiếm giữ Pn chờ tài nguyên P0 chiếm giữ 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 1.4 Ngăn chặn bế tắc an toàn hệ thống 1.4.1 Ngăn chặn bế tắc Mỗi phân bổ tài nguyên cho tiến trình, hệ thống kiểm tra xem liệu 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 Ngăn chặn bế tắc (deadlock prevention) phương pháp xử lý bế tắc, khơng cho xảy cách làm cho điều kiện cần bế tắc loại trừ lẫn nhau, giữ chờ, khơng có đặc quyền chờ vịng không thỏa mãn (không xảy ra) Để ngăn chặn bế tắc cần đảm bảo cho điều kiện xảy bế tắc không xảy đồng thời - Loại bỏ tài nguyên găng: + Loại trừ lẫn nhau: điều kiện bắt buộc cho tài nguyên không sử dụng chung → Khó làm cho C1 khơng xảy hệ thống ln có tài nguyên sử dụng chung - Loại bỏ yếu tố giữ đợi: Có thể làm cho “Giữ đợi “không xảy cách đảm bảo: + Một tiến trình ln u cầu cấp phát tài ngun khơng chiếm giữ tài nguyên + Một tiến trình thực cấp phát tồn tài ngun cần thiết - Ngăn chặn “khơng có đặc quyền “: Để ngăn chặn khơng cho điều kiện xảy ra, sử dụng giao thức sau: + Nếu tiến trình P (đang chiếm tài nguyên R1, , Rn-1) yêu cầu cấp phát tài nguyên Rn không cấp phát (có nghĩa P phải chờ) tất tài nguyên R1, , Rn-1 phải “thu hồi” + Nói cách khác R1, , Rn-1 phải “giải phóng” cách áp đặt, tức tài nguyên phải đưa vào danh sách tài nguyên mà P chờ cấp phát - Mã lệnh ngăn chặn “khơng có đặc quyền”: + Tiến trình P yêu cầu cấp phát tài nguyên R 1, , Rn-1 if (R1, , Rn-1 rỗi) then cấp phát tài nguyên cho P else if ({Ri Rj} cấp phát cho Q Q trạng thái chờ số tài nguyên S khác) then thu hồi {Ri Rj} cấp phát cho P else đưa P vào trạng thái chờ tài nguyên R1, , Rn-1 - Loại bỏ yếu tố chờ đợi vòng tròn + Một giải pháp ngăn chặn chờ vòng đánh số thứ tự tài nguyên bắt buộc tiến trình yêu cầu cấp phát tài nguyên theo số thứ tự tăng dần + Giả sử có tài nguyên {R 1, …, Rn} Ta gán cho tài nguyên số nguyên dương qua ánh xạ – f: R -> N, với N tập số tự nhiên - Giao thức ngăn chặn “Chờ vòng”: + Khi tiến trình P khơng chiếm giữ tài ngun nào, yêu cầu cấp phát nhiều thể tài nguyên Ri + Sau P yêu cầu thể tài nguyên Rj f(R j) > f(R i) Một cách khác, P muốn yêu cầu cấp phát tài nguyên R j, giải phóng tất tài nguyên Ri thỏa mãn f(R i) ≥ f(R j) + Nếu P cần cấp phát nhiều loại tài nguyên, P phải yêu cầu thể tài nguyên - Ưu nhược điểm ngăn chặn giải pháp bế tắc: + Ưu điểm: ngăn chặn bế tắc (deadlock prevention) phương pháp tránh bế tắc cách làm cho điều kiện cần không thỏa mãn + Nhược điểm: Giảm khả tận dụng tài nguyên giảm thông lượng hệ thống không mềm dẻo 1.4.2 Dãy tiến trình an tồn Cho dãy tiến trình P1, P2, P3, …, 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’ < 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 Chương II: Tìm hiểu phương pháp kiểm tra hệ an toàn Thuật toán banker thuật toán phân bổ tài nguyên tránh bế tắc kiểm tra độ an toàn cách mô việc phân bổ cho số lượng tối đa xác định trước tất tài nguyên, sau thực kiểm tra “trạng thái s” để kiểm tra hoạt động xảy ra, trước định có nên cho phép phân bổ hay khơng để tiếp tục Thuật tốn Banker đặt tên sử dụng hệ thống ngân hàng để kiểm tra xem khoản vay bị xử phạt người hay khơng Giả sử có n số chủ tài khoản ngân hàng tổng số tiền họ S Nếu người làm thủ tục vay vốn trước tiên ngân hàng lấy tổng số tiền ngân hàng trừ số tiền cho vay số tiền cịn lại lớn hơn S khoản vay bị xử phạt Nó thực tất chủ tài khoản đến rút tiền họ ngân hàng dễ dàng thực Nói cách khác, ngân hàng khơng phân bổ tiền theo cách mà khơng cịn đáp ứng nhu cầu tất khách hàng Ngân hàng ln cố gắng trạng thái an tồn Các đặc điểm thuật toán Banker sau: ● Nếu trình yêu cầu tài nguyên, phải đợi ● Thuật tốn bao gồm tính nâng cao để phân bổ tài nguyên tối đa ● Có giới hạn tài nguyên hệ thống có ● Trong thuật tốn này, trình nhận tất tài nguyên cần thiết, trả lại tài ngun khoảng thời gian hạn chế ● Các tài nguyên khác trì thuật tốn đáp ứng nhu cầu khách hàng Ưu điểm: ● Nó chứa tài nguyên khác đáp ứng yêu cầu quy trình ● Mỗi quy trình phải cung cấp thông tin cho hệ điều hành yêu cầu tài nguyên tới, số lượng tài nguyên thời gian tài nguyên lưu giữ ● Nó giúp hệ điều hành quản lý kiểm soát yêu cầu quy trình loại tài nguyên hệ thống máy tính ● Thuật tốn có thuộc tính Tài nguyên tối đa đại diện cho biết q trình chứa số tài ngun tối đa hệ thống Nhược điểm: ● Nó yêu cầu số lượng quy trình cố định khơng có quy trình bổ sung khởi động hệ thống thực quy trình ● Thuật tốn khơng cịn cho phép quy trình trao đổi nhu cầu tối đa xử lý tác vụ ● Mỗi tiến trình phải biết nêu trước yêu cầu tài nguyên tối đa chúng cho hệ thống ● Số lượng yêu cầu tài nguyên cấp thời gian hữu hạn, thời hạn để cấp phát tài nguyên năm Khi làm việc với thuật toán ngân hàng, yêu cầu biết ba điều: ● Mỗi tiến trình u cầu cho tài nguyên hệ thống Nó biểu thị yêu cầu [ MAX ] ● Mỗi quy trình giữ tài nguyên hệ thống Nó biểu thị tài nguyên [ ALLOCATED ] ● Nó đại diện cho số lượng tài nguyên có hệ thống Nó biểu thị tài nguyên [ AVAILABLE ] 10 Chương III: Cài đặt thuật toán 3.1 Thuật tốn chuyển sang trạng thái an tồn Giả sử hệ có p tiến trình r kiểu tài ngun Các cấu trúc liệu sử dụng thuật toán xây dựng sau: - Available: mảng 1x r thể số tài nguyên sử dụng kiểu Nếu Available (j) = k suy có k tài nguyên kiểu rj sử dụng - Max: mảng p x r thể 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 i yêu cầu cực đại k tài nguyên kiểu rj cực đại k - Allocation: mảng p x r thể số tài nguyên kiểu phân bổ cho tiến trình Nếu Allocation (i, j) = k suy tiến trình P i sử dụng k tài nguyên kiểu rj - Need: mảng p x r thể số tài nguyên cần tiến trình Need (i, j) = k; Tiến trình cần k tài nguyên ri - Need (i, j) = Max (i, j) – Allocation (i, j) - Request: Mảng n x m thể yêu cầu tài nguyên tiến trình - Request (i, j) = k: tiến trình pi yều cầu k tài nguyên kiểu rj Quy ước: viết Request i thể dòng thứ i mảng (ứng với tiến trình Pi (các biến Need i, Allocation i …) Khi tiến trình Pi đưa yêu cầu tài nguyên hệ thống tiến hành bước sau: Bước 1: If Request i

Ngày đăng: 16/07/2022, 18:38

Hình ảnh liên quan

Trong kịch bản này, một chu trình đang được hình thành giữa ba Process. Khơng có Process nào đang diễn ra và tất cả đều đang chờ đợi - Lập trình mô phỏng các phương pháp kiểm tra tính an toàn của hệ

rong.

kịch bản này, một chu trình đang được hình thành giữa ba Process. Khơng có Process nào đang diễn ra và tất cả đều đang chờ đợi Xem tại trang 5 của tài liệu.

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