Trong thực tế bộ nhớ chính nói chung không đủ lớn để chứa tất cả các trang. Sự truy cập tới một địa chỉ thuộc một trang mà trang đó không có trong bộ nhớ chính được gọi là lỗi trang - page fault.
Với máy có bộ nhớ ảo, có thể khởi động một chương trình ngay cả khi không có phần nào của chương trình này nằm trong bộ nhớ chính, chỉ cần thiết lập cho bảng phân trang để chỉ ra là mọi trang ảo nằm trong bộ nhớ phụ chứ không phải trong bộ nhớ chính.
Khi CPU lấy chỉ thị đầu tiên, lập tức nó gặp một lỗi trang, điều này làm cho trang có chứa chỉ thị đầu tiên được nạp vào và bảng phân trang được cập nhập thông tin. Sau đó chỉ thị đầu tiên có thể bắt đầu được thực hiện.
Nếu chỉ thị đầu tiên có hai địa chỉ mà chúng lại nằm ở các trang khác với trang chứa chính chỉ thị, thì lại xảy ra hai lỗi trang nữa và sẽ lại có thêm hai trang được nạp vào bộ nhớ chính trước khi chỉ thị này được thi hành.
Các chỉ thị tiếp theo của chương trình cũng có thể gây ra các lỗi trang nữa và quá trình trên lại tiếp diễn.v.v.
Phương pháp vận hành bộ nhớ ảo như thế được gọi là Cấp trang khi có yêu cầu - demand paging, các trang chỉ được nạp vào bộ nhớ chính khi xuất hiện một yêu cầu thực sự về trang, chứ không phải là được nạp từ trước.
Việc xem xét có sử dụng phương pháp cấp trang khi có yêu cầu hay không chỉ liên quan tới lúc bắt đầu chạy một chương trình lần đầu tiên. Khi chương trình này đã chạy được một lúc rồi, thì các trang cần đến đã được tập hợp trong bộ nhớ chính.
Nhược điểm: Có thể làm giảm hiệu suất của hệ thống rất trầm trọng:
• Nếu máy tính hoạt động trong chế độ chia sẻ thời gian và NSD được chuyển đổi kiểu quay vòng (thí dụ mỗi chương trình của NSD được cho chạy 100ms rồi tạm dừng để cho chạy một chương trình khác v.v.) thì từng chương trình sẽ được khởi động lại nhiều lần trong quá trình chạy của nó.
• Bởi vì mỗi chương trình có một bản đồ bộ nhớ duy nhất và bản đồ này sẽ bị thay đổi khi các chương trình được chuyển đổi ◊ page fault liên tục.
Phương pháp Mô hình tập làm việc
Cơ sở của phương pháp: Quan sát cho thấy hầu hết các chương trình không truy cập không gian địa chỉ của chúng đồng đều như nhau mà có khuynh hướng tập trung vào một số ít các trang.
Tập làm việc - working set: tập bao gồm tất cả các trang được sử dụng bởi k lần truy cập bộ nhớ gần đó nhất; w(k,t):
• w(k,t) là một hàm đơn điệu tăng của k.
• Tuy nhiên w(k,t) có cận trên (khi k cứ tăng dần) vì một chương trình không thể tham khảo nhiều trang hơn số trang của không gian địa chỉ của nó. • Tồn tại một miền rộng các giá trị của k trong đó working set là không thay
đổi.
Phương pháp Mô hình tập làm việc: trong khi còn đang thực hiện một chương trình, nạp sẵn tậplàm việc của một chương trình sắp được gọi thực hiện, dựa trên tập làm việc của lần chạy trước đó.
Ưu điểm:
• Khi chương trình được cho chạy trở lại, nó sẽ không sinh ra ngay lập tức một số lớn các lỗi trang làm lãng phí thời gian.
• Người ta đã biết rằng thời gian cần để đọc một trang từ đĩa vào bộ nhớ chính thường bằng hoặc lớn hơn thời gian thực hiện 20.000 chỉ thị. Nhược điểm:
• Nếu tập làm việc được nạp “nhầm”, chương trình vẫn phải đợi cho đến khi các trang mà nó cần được nạp vào.
• Với phương pháp cấp trang khi có yêu cầu: thì tình huống này không thể xảy ra.
Hiện nay người ta vẫn còn tranh luận về phẩm chất của cả 2 chiến lược này.