Mô hình bộ nhớ ảo

Một phần của tài liệu Cấu trúc, nguyên lý, phân tích mã nguồn CentOS (Trang 49)

Khi bộ xử lý thực hiện một chương trình, nó đọc một chỉ lệnh từ bộ nhớ và giải mã chỉ lệnh đó. Trong khi giải mã chỉ lệnh, nó có thể lấy về hay lưu trữ nội dung một vị trí trong bộ nhớ. Sau đó bộ xử lý sẽ thực hiện chỉ lệnh và di chuyển đến chỉ lệnh tiếp theo trong chương trình. Tất cả đại chỉ trong bộ nhớ ảo là địa chỉ ảo. bộ xử lý huyển địa chỉ ảo thành địa chỉ vật lý theo thông tin trong các bảng được hệ điều hành quản lý. Để việc chuyển đổi dễ dàng thì bộ nhớ ảo và bộ nhớ vật lý được chia thành nhiều khúc có kích thước thích hợp gọi là trang. Trong intel x86 dùng trang 4 kB. Mỗi trang được cung cấp một số duy nhất là số khung trang( PFN)

Trong mô hình này địa chỉ ảo gồm 2 phần: địa chỉ offset vào số khung trang ảo. nếu kích thước trang là 4 KB thì từ bit 11 đến bit 0 là địa chỉ ảo chứa địa chỉ offset, còn từ bit 12 trở lên là số khung trang ảo. nó lấy địa chỉ offset và số khung trang ảo ra. Bộ vi xử lý chuyển số khung trang ảo sang số khung trang vật lý sau đó truy cập vào vị trí tại địa chỉ offset trong trang vật lý đó. 2 tiến trình x và y có bảng trang riêng. Khung trang ảo 0 của x được ánh xạ vào bộ nhớ cảu khung trang vật lý 4. Mỗi mục trong bảng trang chứa thông tin sau:

-cờ hợp lệ cho biết bảng trang có hợp lệ ko -số khung trang vật lý mà mục này mô tả

-thông tin điều khiển truy cập: mô tả trang này được sử dụng như thế nào? Có được ghi hay ko? Nó có chứa các đoạn mã thực thi hay không?

Cugnx trong ví dụ trên ta thấy rằng, khung trang ảo 0 của x dược ánh xạ đến khung trang vật lý số 1 còn khung trang ảo 7 lại được ánh xạ đến khung vật lý 0 => các trang trong bộ nhớ ảo được hiển thị trong bộ nhớ vật lý không theo bất kì thứ tự nào.

Một phần của tài liệu Cấu trúc, nguyên lý, phân tích mã nguồn CentOS (Trang 49)