Mục tiêu cần đạt được là nạp càng nhiều tiến trình vào bộ nhớ càng tốt gia tăng mức độ đa chương.Trong hầu hết các hệ thống, kernel sẽ chiếm một phần cố định của bộ nhớ, phần còn lại phâ
IT3070 – Nguyên Lý Hệ Điều Hành 20202 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ──────── * ─────── BÀI TẬP LỚN HỌC PHẦN: NGUYÊN LÝ HỆ ĐIỀU HÀNH (Mã học phần: IT3070) Đề tài: CHIẾN LƯỢC PHÂN TRANG TRONG QUẢN LÝ BỘ NHỚ HỆ ĐIỀU HÀNH Sinh viên thực : Trương Văn Hiển Mã Số Sinh Viên : 20194276 Lớp : 124172 Giảng viên hướng dẫn: Trương Văn Hiển – 20194276 ThS Đỗ Tuấn Anh IT3070 – Nguyên Lý Hệ Điều Hành 20202 Hà Nội, tháng năm 2021 Trương Văn Hiển – 20194276 IT3070 – Nguyên Lý Hệ Điều Hành 20202 MỤC LỤC MỤC LỤC LỜI CẢM ƠN Chương Giới thiệu đề tài 1.1 Tổng quan đề tài 1.2 Nhiệm vụ đề tài 1.3 Kết cấu đề tài Chương Khái niệm nhiệm vụ quản lý nhớ 1.1 Khái niệm 1.2 Nhiệm vụ quản lý nhớ Chương Chiến lược phân trang 3.1 Ý tưởng 9 3.2 Cơ chế MMU kỹ thuật phân trang 10 3.3 Chuyển đổi địa 10 3.4 Cài đặt bảng trang 11 3.5 Tổ chức bảng trang 12 3.6 Bảo vệ 14 3.7 Chia sẻ nhớ chế phân trang 15 Chương Thiết kế thực chế phân trang nhớ 16 4.1 vm.cpp 16 4.2 pagetable.h 17 Chương Kết thực 19 5.1 Ngơn ngữ lập trình thư viện sử dụng 19 5.2 Chương trình minh hoạ 20 Chương Kết luận hướng phát triển 44 DANH MỤC TÀI LIỆU THAM KHẢO 45 Trương Văn Hiển – 20194276 IT3070 – Nguyên Lý Hệ Điều Hành 20202 LỜI CẢM ƠN Lời đầu tiên, em xin trân trọng cảm ơn bày tỏ lòng biết ơn sâu sắc tới thầy Đỗ Tuấn Anh – Giảng viên Viện Công nghệ thông tin & Truyền thông, Trường Đại học Bách Khoa Hà Nội, giáo viên hướng dẫn tập lớn nhiệt tình giảng dạy, hướng dẫn, bảo Và em xin dành lời cảm ơn chân thành tới bạn bè động viên, khuyến khích tạo điều kiện cho em hồn thành tốt đề tài Mặc dù cố gắng hồn thiện sản phẩm khơng thể tránh khỏi thiếu hụt kiến thức Em mong muốn nhận nhận xét thẳng thắn, chi tiết đến từ thầy để tiếp tục hoàn thiện Cuối cùng, em xin gửi lời cảm ơn đến thầy Đỗ Tuấn Anh hướng dẫn em suốt q trình hồn thiện bài tập lớn Xin trân trọng cảmn tập lớn Xin trân trọng cảmp lớn Xin trân trọng cảm ơn thầy Xin chân thành cảm ơn! Hà Nội, tháng năm 2021 Sinh viên Trương Văn Hiển Chương Giới thiệu đề tài 1.1 Tổng quan đề tài Bộ nhớ thiết bị lưu trữ thơng qua CPU trao đổi thơng tin với mơi trường ngồi, nhu cầu tổ chức, quản lý nhớ nhiệm vụ trọng tâm hàng đầu hệ điều hành Bộ nhớ tổ chức mảng chiều Trương Văn Hiển – 20194276 IT3070 – Nguyên Lý Hệ Điều Hành 20202 từ nhớ (word), từ nhớ có địa Việc trao đổi thơng tin với mơi trường ngồi thực thơng qua thao tác đọc ghi liệu vào địa cụ thể nhớ Hầu hết hệ điều hành đại cho phép chế độ đa nhiệm nhằm nâng cao hiệu suất sử dụng CPU Tuy nhiên kỹ thuật lại làm nảy sinh nhu cầu chia sẻ nhớ tiến trình khác Vấn đề nằm chỗ: Bộ nhớ hữu hạn yêu cầu nhớ vơ hạn Hệ điều hành chịu trách nhiệm cấp phát vùng nhớ cho tiến trình có u cầu Để thực tốt nhiệm vụ này, hệ điều hành cần phải xem xét nhiều khía cạnh : Sự tương ứng địa logic địa vật lý: Làm cách để chuyển đổi địa tượng trưng (symbolic) chương trình thành địa thực nhớ chính? Quản lý nhớ vật lý: Làm cách để mở rộng nhớ có sẵn nhằm lưu trữ nhiều tiến trình đồng thời? Chia sẻ thông tin: Làm phép hai tiến trình chia sẻ thơng tin nhớ Bảo vệ: Làm để ngăn chặn tiến trình xâm phạm đến vùng nhớ cấp phát cho tiến trình khác Các giải pháp quản lý nhớ phụ thuộc nhiều vào đặc tính phần cứng trải qua nhiều giai đoạn cải tiến để trở thành giảp pháp thỏa đáng Trong khuôn khổ đề tài này, em xin trình bày chiến lược quản lý nhớ phổ biến nay: Chiến lược quản lý nhớ chế phân trang 1.2 Nhiệm vụ đề tài Trương Văn Hiển – 20194276 IT3070 – Nguyên Lý Hệ Điều Hành 20202 ● Tìm hiểu nhớ nhiệm vụ quản lý nhớ ● Nghiên cứu tổng quát chế quản lý nhớ, đặc biệt nội dung đề tài quản lý chiến lược phân trang ● Xây dựng lập trình chế phân trang nhớ ngơn ngữ lập trình C++ ● Đưa báo cáo môn học tổng kết tổng hợp 1.3 Kết cấu đề tài Ngoài phần lời cảm ơn danh mục tài liệu tham khảo, đề tài gồm có chương: Chương Giới thiệu đề tài Chương Khái niệm nhớ nhiệm vụ quản lý nhớ Chương Chiến lược phân trang Chương Thiết kế thực chế phân trang nhớ Chương Kết thực Chương Kết luận hướng phát triển Trương Văn Hiển – 20194276 IT3070 – Nguyên Lý Hệ Điều Hành 20202 Chương Khái niệm nhiệm vụ quản lý nhớ 1.1 Khái niệm Quản lý nhớ công việc hệ điều hành với hỗ trợ phần cứng nhằm phân phối, xếp tiến trình nhớ cho hiệu Mục tiêu cần đạt nạp nhiều tiến trình vào nhớ tốt (gia tăng mức độ đa chương) Trong hầu hết hệ thống, kernel chiếm phần cố định nhớ, phần cịn lại phân phối cho tiến trình Các yêu cầu việc quản lý nhớ: ● Cấp phát nhớ cho tiến trình ● Tái định vị ● Bảo vệ: phải kiểm tra truy xuất nhớ có hợp lệ khơng ● Chia sẻ: cho phép tiến trình chia sẻ vùng nhớ chung ● Kết gán địa nhớ luận lý user vào địa thực 1.2 Nhiệm vụ quản lý nhớ Trong hệ thống đơn chương trình (uniprogramming), nhớ ngồi hệ điều hành, có chương trình thực Trong hệ thống đa chương trình (multiprogramming), nhớ ngồi hệ điều hành, có nhiều tiến trình hoạt động Do nhiệm vụ quản lý nhớ hệ điều hành hệ thống đa chương trình phức tạp nhiều so với hệ thống đơn chương trình Bảo vệ hệ điều hành tiến trình nhớ tránh trường hợp truy xuất bất hợp lệ xảy Bộ phận quản lý nhớ phải thực nhiệm vụ sau đây: Trương Văn Hiển – 20194276 IT3070 – Nguyên Lý Hệ Điều Hành 20202 ● Chuyển đổi, hay ánh xạ, khơng gian địa ảo tiến trình vào nhớ vật lý để tiểu trình thực thi ngữ cảnh tiến trình đó, đọc hay ghi vào khơng gian địa ảo địa vật lý xác tham chiếu ● Phân trang vài nội dung nhớ đĩa (swap out) trở nên vượt đáp ứng nhớ hệ thống Có nghĩa là, việc thực thi tiểu trình hay mã hệ thống cố gắng sử dụng nhiều nhớ vật lý khả thời mang nội dung trở lại vào nhớ vật lý (swap in) cần Vấn đề đặt đưa chương trình vào lại nhớ hệ điều hành phải định vị vào vị trí mà nạp trước Để thực điều hệ điều hành phải có chế để ghi lại tất thơng tin liên quan đến chương trình bị swap out, thông tin sở để hệ điều hành swap in chương trình vào lại nhớ cho tiếp tục hoạt động Bảo vệ nhớ: Mỗi tiến trình phải bảo vệ để chống lại truy xuất bất hợp lệ vơ tình hay có chủ ý tiến trình khác Để thực điều hệ thống quản lý nhớ phải biết không gian địa tiến trình khác nhớ phải kiểm tra tất yêu cầu truy xuất nhớ tiến trình tiến trình đưa địa truy xuất Chia sẻ nhớ: Bất kì chiến lược cài đặt phải có tính mềm dẻo phép nhiều tiến trình truy cập đến địa nhớ Trương Văn Hiển – 20194276 IT3070 – Nguyên Lý Hệ Điều Hành 20202 Tổ chức nhớ logic: Bộ nhớ hệ thống máy tính tổ chức dịng mảng, khơng gian địa bao gồm dãy có thứ tự byte word Bộ nhớ phụ tổ chức tương tự Tổ chức nhớ vật lý: Bộ nhớ máy tính tổ chức theo cấp: nhớ nhớ phụ ● Bộ nhớ cung cấp tốc độ truy cập liệu cao, liệu phải làm tươi thường xun khơng thể tồn lâu dài ● Bộ nhớ phụ có tốc độ truy xuất chậm rẻ tiền so với nhớ khơng cần làm tươi thường xun Trương Văn Hiển – 20194276 IT3070 – Nguyên Lý Hệ Điều Hành 20202 Chương Chiến lược phân trang Trong nội dung mơn học, mơ hình quản lý nhớ mơ hình đơn giản, khơng có nhớ ảo Một tiến trình phải nạp hồn tồn vào nhớ thực thi Nội dung mơn học đưa chế quản lý nhớ: ● Chiến lược phân chương cố định ● Chiến lược phân chương động ● Chiến lược phân đoạn ● Chiến lược phân trang ● Chiến lược kết hợp phân đoạn – phân trang Với nội dung đề tài này, em xin trình bày chế quản lý nhớ trình bày Bài giảng: Chiến lược phân trang 3.1 Ý tưởng Phân nhớ vật lý thành khối (block) có kích thước cố định nhau, gọi khung trang (page frame) Không gian địa chia thành khối có kích thước với khung trang, gọi trang (page) Khi cần nạp tiến trình để xử lý, trang tiến trình nạp vào khung trang cịn trống Một tiến trình kích thước N trang yêu cầu N khung trang tự Trương Văn Hiển – 20194276 10