Современные операционные системы в сочетании с современными процессорами позволяют отображать кластеры памяти на страницы памяти.
Страницы памяти изначально помечаются как недействительные, и как только вы пытаетесь получить к ним доступ, возникает недопустимая «ловушка» или «прерывание» страницы, которая обрабатывается операционной системой, которая загружает соответствующий кластер в эта страница памяти.
Если вы пишете на эту страницу, существует либо аппаратный «грязный» бит, либо другой механизм прерывания: страница памяти первоначально помечается как доступная только для чтения, поэтому при первой попытке записи на нее есть другое прерывание, которое просто помечает страницу как грязную и превращает ее в чтение-запись. Затем вы знаете, что страница должна быть записана на диск в удобное время.
Обратите внимание, что чтение и запись обычно выполняются с помощью прямого доступа к памяти (DMA), поэтому центральный процессор может выполнять другие действия, пока страницы переносятся.
Итак, да, вы можете сделать это либо с помощью операционной системы, либо самостоятельно написав весь этот очень сложный код.