Để trả lời câu hỏi này, tôi sẽ truy cập một số hiểu biết tiên quyết. Phân trang nhu cầu thuần túy không thể được thực hiện mà không cần hỗ trợ phần cứng. Tất cả các kiến trúc máy tính hiện đại đều hỗ trợ phân trang, tuy nhiên nhiều thiết bị có các chi tiết triển khai khác nhau.
Bộ xử lý x86 sử dụng cái được gọi là bảng trang để theo dõi không gian địa chỉ ảo và ánh xạ trang, cũng như các bit về quyền riêng tư truy cập và, có liên quan hơn, cho dù trang đó có hiện diện trong bộ nhớ vật lý hay không. Vi phạm kích hoạt lỗi trang bị hệ điều hành bẫy.
Để biết thêm thông tin về điều đó, xem bài viết này .
Để trả lời câu hỏi hoán đổi trang, trước tiên chúng ta phải truy cập câu hỏi về cách hệ điều hành theo dõi những trang nào được sử dụng bởi quy trình nào và cách chúng được phân bổ. Có nhiều cấu trúc dữ liệu khác nhau có thể được sử dụng cho việc đó. Một mảng bit phẳng đánh dấu xem một khung có được phân bổ hay không là một cách. Danh sách liên kết hoặc ngăn xếp là một cái khác. Với phân trang theo yêu cầu thuần túy, các trang được phân bổ không thực sự được đánh dấu như hiện tại khi chúng được phân bổ. Điều này có tác dụng là không có ram vật lý nào được đặt sang một quy trình cho đến khi nó thực sự ghi vào nó. Khi đã xảy ra, phần cứng sẽ đưa ra một lỗi mà HĐH mắc phải, và sau đó HĐH sẽ sử dụng thuật toán hoán đổi nếu không có các trang vật lý có sẵn để gán cho trang ảo đã được phân bổ.
Để biết thêm thông tin về phân bổ khung trang, xem tại đây . Ở đó bạn sẽ thấy một cái nhìn tổng quan về một số cơ sở dữ liệu phù hợp.
Khi một thuật toán phù hợp để phân bổ trang được triển khai, một thuật toán khác để phân bổ không gian đĩa cho việc hoán đổi phải được chọn. Windows, như một ví dụ, trong lịch sử đã sử dụng một tệp phẳng trong hệ thống tệp để hoán đổi trang. Tôi sẽ tưởng tượng rằng đối với mỗi nút trong cơ sở hạ tầng theo dõi các trang được phân bổ, có một con trỏ được gán cho một phần bù trong tệp, cho biết vị trí của trang trong đĩa. Theo truyền thống, các hệ điều hành giống như Unix thường sử dụng các phân vùng riêng để hoán đổi trang, nhanh hơn nhiều vì không có lớp hệ thống tập tin.
Cũng có thể tách các cơ sở dữ liệu hoán đổi từ các thuật toán phân bổ, tuy nhiên hai thuật toán này có liên quan với nhau nên điều này có thể không thường xuyên được thực hiện.
Tôi hy vọng rằng câu trả lời cho câu hỏi của bạn bất chấp sự ngắn gọn tương đối mà tôi đã đối xử với nó. Tôi thấy rằng cách tốt nhất để tìm hiểu về các hệ điều hành là đi sâu vào các chi tiết cụ thể về kiến trúc đôi khi khó chịu có thể tìm thấy trong các trang web như wiki.osdev.org và www.osdever.net, đặc biệt liên quan đến việc tạo ra hệ điều hành sở thích và cung cấp các hướng dẫn tuyệt vời trên các chi tiết như vậy.