Bộ nhớ ảo trong OS
Kỹ thuật đánh số trang yêu cầu (demand paging)
chúng ta muốn thực hiện một chương trình, chúng ta trao đổi nó vào trong bộ nhớ. Thay vì việc trao đổi toàn bộ tiến trình vào trong bộ nhớ, chúng ta sử dụng một máy nhắn tin pager.
Khi một tiến trình được trao đổi, pager dự đoán các trang nào sẽ được sử dụng trước khi tiến trình được trao đổi lại ra ngoài. Thay vì trao đổi trong một tổng thể chương trình, pager chỉ mang những trang cần thiết vào trong bộ nhớ. Vì thế, nó tránh đọc các trang bộ nhớ mà sẽ không được sử dụng, giảm được thời gian trao đổi và lượng bộ nhớ vật lý cần thiết.
http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Trang 56 Sự hỗ trợ phần cứng là cần thiết để phân biệt giữa các trang mà trong bộ nhớ với các trang trong phần cứng. Tại nơi các trang có hiệu lực và không có hiệu lực có thể được kiểm tra bởi việc kiểm tra bit. Đánh dấu một trang sẽ không hiệu quả nếu tiến trình không bao giờ thử truy cập vào trang. Trong khi tiến trình thực hiện và truy cập vào trang mà ở trong bộ nhớ, sự thực hiện được tiến hành bình thường.
Truy cập tới một trang được đánh dấu là không hiệu lực vì một bẫy trang lỗi (page-fault trap). Bẫy này là kết quả của lỗi hệ thống để mang các trang yêu cầu vào trong bộ nhớ. Nhưng lỗi trang có thể được giải quyết như sau:
http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Trang 57
Bước Miêu tả
Bước 1 Kiểm tra một bảng nội vi cho tiến trình này, để xác định sự liên hệ là hiệu lực hay không hoặc nó là một sự truy cập bộ nhớ không hiệu lực.
Bước 2 Nếu sự liên hệ là không hiệu lực, kết thúc tiến trình. Nếu nó là hiệu lực, nhưng trang vẫn chưa được mang vào, trang ở thứ tự sau.
Bước 3 Tìm một khung rỗi.
Bước 4 Lập giản đồ một hoạt động đĩa để đọc trang yêu cầu vào trong khung được cấp phát mới nhất.
http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Trang 58
Bước 5 Khi đọc đĩa kết thúc, chỉnh sửa bảng nội vi được giữ cùng với tiến trình và bảng trang để chỉ dẫn rằng trang bây giờ trong bộ nhớ.
Bước 6 Bắt đầu lại chỉ lệnh mà đã bị ngắt bởi bẫy địa chỉ không hợp lệ. Tiến trình bây giờ có thể truy cập vào trang. Bởi vậy, Hệ điều hành đọc các trang yêu cầu vào trong bộ nhớ và bắt đầu lại tiến trình khi mà trang đã luôn luôn ở trong bộ nhớ.
Các lợi thế
Dưới đây là các lợi thế của Đánh số trang yêu cầu:
Bộ nhớ ảo lớn.
Hiệu quả hơn trong việc sử dụng bộ nhớ.
Đa chương trình không bị gò bó. Không có giới hạn về mức độ đa chương trình.
Các bất lợi
Dưới đây là các bất lợi của Đánh số trang yêu cầu:
Số lượng các bảng và lượng bộ xử lý vượt quá để giải quyết việc ngắt trang là lớn hơn trong trường hợp các kỹ thuật quản lý đánh trang đơn.
Do thiếu một sự ràng buộc rõ ràng trên một kích cỡ không gian địa chỉ công việc.