Виртуальное адресное пространство делится на части, имеющие одинаковый и фиксированный размер у процессора. Данный элемент называется виртуальным страничным элементом.
Вся оперативная память также делится на части такого же размера. 512 байт – размер страницы (кратное степени 2) (размер сетки 512 байт).
При загрузке процесса часть виртуальных страниц загружается в АЗУ, остальные – на диске. Смежные виртуальные страницы необязательно располагаются в смежных виртуальных страницах. Т.о., при загрузке система создает для каждого процесса информационную структуру, которая называется таблицей страниц. В таблице страниц указывается соответствие между номерами тех физических страниц, которые в АЗУ, или делается отметка о том, что виртуальная страница выгружена на диск. В таблице страниц указываются следующие признаки:
ü Признак модификации страниц (для того чтобы узнать, где находится страница – в АЗУ или на диске)
ü Признак невыгружаемости (какая страница не загружена)
ü Признак обращения к страницам
ü Время последнего обращения
При активизации процесса в один из регистров процесса загружается адрес страниц. При каждом обращении к памяти происходит чтение из таблицы страниц информации о виртуальной странице, к которой было обращение. Если данные виртуальной страницы в АЗУ, то происходит преобразование виртуального адреса в физический. Если нужная виртуальная страница выгружена на диск, происходит страничное прерывание. Соответственно, выполняющийся процесс переводится в состояние ожидания и активизируется новый процесс.
Программа обработки страничного прерывания находит на диске и пытается загрузить в АЗУ. Загрузить её в АЗУ сразу может быть невозможным.
Если в памяти есть свободные страницы, загрузка производится немедленно. Если же нет, то система решает, какую страницу в АЗУ надо выгрузить из АЗУ и поместить на диск. Может быть выгружена больше всего неиспользуемая, к которой меньше всего было обращений по времени.
В некоторых системах используется понятие «рабочий набор страниц» – список наиболее часто употребляемых страниц, которые не выгружаются из АЗУ. После того, как страница выбрана, которая должна быть выгружена, используется признак модификации. Если она модифицируема, то система изменяет содержимое во внешней памяти. Если нет, страница может быть вычеркнута.
Виртуальный адрес состоит из:
1. номера виртуальной страницы
2. смещения виртуальной страницы
Нашли номер, умножили на 512, получили смещение. При каждом обращении к виртуальной памяти аппаратными средствами выполняются следующие действия: на основании начального адреса таблицы страниц номер виртуальной страницы и длины записи в таблице определяется адрес нужной записи в таблице страниц. Из записи находим номер физической страницы и к номеру добавляем смещение. Т.о. получили реальный физический адрес.
2Сегментное распределение
Виртуальное адресное пространство делится на сегменты, объем которых определяется программистом с учетом смыслового значения содержащейся в ней информации. Кодовый сегмент желательно держать в памяти. Сегмент данных можно на диске. Адрес вычисляется также: сложение начального физического сегмента и смещения – реальный физический адрес.
3Сегментно-страничное распределение
Виртуальное адресное пространство делится на сегменты, которые делятся на страницы. Для каждого сегмента создается своя таблица страниц. Для каждого процесса создается таблица сегмента, в которой указываются адреса таблиц страниц для всех сегментов процесса. Здесь 3-хуровневая адресация.