Cho phép tiến trình có cỡ lớn hơn bộ nhớ trong có thể thực hiện được Không gian địa chỉ ảo có thể lớn hơn nhiều so với không gian địa chỉ vật lý (về dung lượng) Cho phép các tiến trình sử dụng chung không gian địa chỉ Cho phép tạo tiến trình hiệu quả hơn | Nguyên lý hệ điều hành Nguyễn Hải Châu Khoa Công nghệ thông tin Trường Đại học Công nghệ Bộ nhớ ảo Virtual Memory Yêu cầu phân trang Tạo tiến trình Thay thế trang Cấp phát frame Thrashing 2 Virtual memory Bộ nhớ ảo Bộ nhớ ảo - tách biệt bộ nhớ logic và vật lý. Cho phép tiến trình có cỡ lớn hơn bộ nhớ trong có thể thực hiện được Không gian địa chỉ ảo có thể lớn hơn nhiều so với không gian địa chỉ vật lý về dung lượng Cho phép các tiến trình sử dụng chung không gian địa chỉ Cho phép tạo tiến trình hiệu quả hơn Bộ nhớ ảo có thể được cài đặt thông qua Yêu cầu phân trang demand paging Yêu cầu phân đoạn demand segmentation Yêu cầu trang demand paging Chuyển một trang trong bộ nhớ ra vùng đĩa liên tục Chỉ đưa một trang vào bộ nhớ khi cần thiết Giảm thao tác các vào ra Tiết kiệm bộ nhớ Đáp ứng nhanh Tăng được số người sử dụng tiến trình Khi cần một trang tham chiếu đến nó Tham chiếu lỗi Hủy bỏ Không nằm trong bộ nhớ Đưa trang vào bộ nhớ 1 Valid-Invalid Bit Mỗi phần tử bảng trang có một bit hợp lệ không hợp lệ 1 trong bộ nhớ 0 không trong bộ nhớ Khởi đầu valid-invalid bằng 0. Ví dụ bảng trang bit invalid valid Khi tính địa chỉ nếu valid-invalid ở bảng trang là 0 lỗi trang page-fault trap valid-invalk Frame bit 1 1 1 1 0 0 0 bảng trang Xử lý page-fault lỗi trang HĐH sẽ kiểm tra nguyên nhân lỗi Lỗi từ tiến trình kết thúc tiến trình hoặc Trang không nằm trong bộ nhớ Thực hiện tiếp Tìm một frame rỗi và đưa trang vào bộ nhớ Sửa lại bảng trang bit valid Thực hiện lại lệnh tham chiếu trang Vấn đề hiệu năng Nếu tại một thời điểm có yêu cầu nhiều trang ví dụ Một trang cho lệnh và vài trang cho dữ liệu 9 Nếu không có frame rỗi Hiệu năng của yêu cầu trang Thực hiện thay thế trang - swap out một số trang đang ở trong bộ nhớ nhưng hiện tại không được sử dụng Thuật toán nào tốt Hiệu năng Cần một thuật toán có ít page-fault nhất để hạn chế vào ra Nhiều trang có thể được đưa vào bộ nhớ tại cùng một thời điểm. Thuật toán thay thế trang FIFO Optimal LRU LRU-approximation 11 Tỷ lệ page-fault