Страничная организация памяти

Мощные ВС снабжаются более сложным аппаратом преобразования адреса — аппаратом страничной организации памяти. Этот метод позволяет реализовать все три преимущества виртуальной организации, в том числе и реорганизацию памяти. В системе со страничной организацией каждый процесс работает в очень большой одноуровневой виртуальной памяти. Это освобождает пользователя от необходимости обдумывать и программировать процедуры хранения части данных и программ его задачи на внешних носителях информации.

Виртуальная память со страничной организацией разделена на блоки фиксированной длины (например, 512 байт или 4 Кбайт). Программисту не нужно учитывать это разделение, т. к. первая ячейка любого блока считается примыкающей к последней ячейке предыдущего блока.

Реальная машина со страничной структурой памяти обычно содержит меньшую, чем пространство виртуальных адресов, реальную память ОЗУ и гораздо большего размера внешнюю дисковую память. Оперативная память делится на страницы того же размера, что и блоки виртуальной памяти, а внешняя память аналогичным образом делится на секторы того же размера.

Рассмотрим виртуальное пространство, предоставляемое пользователю. В любой момент времени блоки этого пространства можно разделить на три категории:

1. активные блоки, которые содержат программу или данные, используемые в данный момент;

2. пассивные блоки, содержащие программу или данные, не используемые в данный момент;

3. мнимые блоки, ни к одному слову которых не происходит обращения на протяжении выполнения программы.

Различие между активными и пассивными блоками является динамическим, т. к. состояние блоков постоянно меняется во время выполнения программы. Мнимые блоки представляют собой излишки предоставленного пользователю виртуального пространства (в том числе зарезервированные в программе, но не используемые ячейки массивов), которые процесс может занять уже во время выполнения.

Для аппарата виртуальной адресации необходимо, чтобы активные блоки размещались в оперативной памяти, а мнимые блоки вообще нигде не размещались. Пассивные блоки могут храниться либо в оперативной памяти, либо во внешней, откуда они будут вызваны, когда понадобятся.

При выполнении процесса некоторым его блокам отводится определенные страницы оперативной памяти; все блоки процесса постоянно размещаются на диске. Между номерами блоков и адресами страниц или секторов, где они хранятся, не существует фиксированной связи. Действительное текущее соответствие отражается в таблицах, ведение которых в основном и определяет функцию операционной системы по управлению памятью.