Структуры данных
Для страничной виртуальной памяти UNIX использует ряд структур данных, которые (с минимальной коррекцией) являются машинно-независимыми (см. рис. 8.31 и табл. 8.6).
• Страница таблиц. Обычно для каждого процесса используется одна таблица страниц, в которой каждой странице виртуальной памяти процесса соответствует одна запись.
• Дескриптор дискового блока. В этой таблице каждой странице процесса соответствует запись, описывающая дисковую копию этой страницы.
• Таблица кадров. Описывает каждый кадрреальной памяти; таблица проиндексирована номерами кадров.
• Таблица использования свопинга. Для каждого устройства свопинга имеется своя таблица, в которой для каждой страницы на этом устройстве имеется своя запись.


Большинство полей, приведенных в табл. 8.6, не требуют пояснений. Поле возраста в записи таблицы страниц указывает, как давно программа не обращалась к этому кадру. Размер и частота обновления этого поля зависят от конкретной реализации. Таким образом, нет универсального использования операционной системой UNIX этого поля при реализации стратегии замещения страниц.
Наличие поля типа памяти в дескрипторе дискового блока необходимо по следующей причине: когда выполнимый файл используется для создания нового процесса, в реальную память может быть загружена только часть кода и данных. Позже, при возникновении прерывания из-за отсутствия страницы, в память загружаются новые порции кода или данных. Страницы виртуальной памяти создаются и связываются с определенными положениями на устройстве свопинга только в момент первоначальной загрузки. В этот момент операционная система решает, следует ли очистить (установить равными 0) ячейки кадра страницы перед первой загрузкой блока кода или данных.