Вам понадобится что-то вроде алгоритм замены страницы ... с предварительной выборкой ... Вы не сказали нам, как вы будете работать со страницами, как долго вы будете нужны они в памяти и т. д. Но я полагаю, вам придется решать ситуацию, когда память заполнена, и вам нужно освободить некоторые страницы из памяти. Посмотрите на упомянутые алгоритмы ( LRU , MRU и т. Д.). Это то, что ОС использует для подкачки.
Вы также можете использовать файлы отображения памяти в ОС - в них уже реализованы алгоритмы замены страниц, но теперь нет необходимости в предварительной загрузке. (хорошо зависит от ОС, я полагаю, Linux будет гораздо более продвинутым, чем Windows в этой теме). Таким образом, вы можете сэкономить много работы, но она не может быть оптимально оптимизирована для вашего случая.
Относительно оптимизации доступа к диску ... попробуйте прочитать некоторую теорию о том, как ОС это делают ... Посмотрите на алгоритмы планирования диска, например SCAN или C-SCAN , например. по этой ссылке .