Виртуальная память
Сегментная и сегментно-страничная организация памяти
Принцип предполагает, что размер сегмента меняется в зависимости от страницы.
V = (S,d), где
S – сегмент
d – смещение
При сегментной организации – это набор сегментов в логическом пространстве. В рамках сегмента адресация линейна.
Если посмотреть на таблицу, которая при сегментной организации работает, она будет похожа на предыдущую.
S – номер сегмента
d – смещение
a – адрес начала сегмента
V | d |
+ |
Физический адрес |
Атрибуты | a |
Сегменты присутствуют в микропроцессорах фирмы Intel.
Сегмент большой, поэтому принято разбивать их на страницы – блоки равного размера – сегментно-страничная организация. В этом случае преобразование (трансляция) виртуального адреса в физический двухуровневое, а логический адрес трехкомпонентный: (S, p, d).
Системы ВП позволяют размещать в небольшой физической памяти часть кода процесса, занимающую виртуальную или логическую память. Это означает, что мы взяли несколько страниц процесса, загрузили их в память и с ними работаем, отработали со страницами – подгрузили еще, т.о. процесс занимает в памяти в 10 раз меньше объема.
Суть концепции виртуальной памяти
Ясно, что активно процесс работает, когда он находится в оперативной памяти. В схемах ВП создается иллюзия, что вся необходимая процессу информация имеется в оперативной памяти. Для этого:
· Занимаемая процессом память разбивается на страницы
· Логический адрес (логическая страница), к которому обращается процесс, динамически транслируется в физический адрес
· Если нужная страница в памяти отсутствует, тогда организуют ее подкачку с диска.
Для контроля наличия страниц в памяти существует специальный бит присутствия, находится он в странице дескрипторов. Т.о. мы выяснили, что для успешного ведения процесса вовсе не обязательно присутствия всех страниц в памяти, для этого достаточно нахождения в памяти одной или более страниц.
Преимущество нахождения в памяти ограниченного количества страниц процесса:
· Программа не ограничивается доступным объемом физической памяти
· Из-за возможности частичного размещения процесса в памяти и перераспределения памяти между процессами можно разместить в памяти больше программ, что улучшает использование процессора и пропускную способность системы
· Объем ввода/вывода при обмене данными между диском и оперативной памятью существенно меньше, чем при swapping'е
Введение ВП позволяет организовать контроль доступа к отдельным сегментам памяти и в частности организовать защиту программ друг от друга.