Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционные системы.docx
Скачиваний:
10
Добавлен:
24.11.2018
Размер:
102.5 Кб
Скачать

Организация виртуальной памяти

Обычно ассоциируется с возможностью адресовать пространство памяти гораздо большее, чем емкость первичной (реальной или физической) памяти конкретной вычислительной машины. Суть концепции виртуальной памяти заключается в том, что адреса, которым обращается выполняющийся процесс, отделяются от адресов, реально существующих в первичной памяти. Те адреса, на которые делает ссылки выполняющийся процесс, называются виртуальными адресами. А те адреса, которые существуют в первичной памяти, называются реальными. Диапазон виртуальных адресов, к которым может обращаться выполняющийся процесс, называется пространством виртуальных адресов. Диапазон реальных адресов, существующих в конкретной ВМ, называется пространством реальных адресов этого компьютера. Несмотря на то, что процессы обращаются к виртуальным адресам, в действительности они должны работать с реальной памятью. Таким образом, во время выполнения процесса виртуальные адреса необходимо преобразовывать в реальные, причем это нужно делать быстро.

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

Поблочное отображение

Чтобы реализация виртуальной памяти имела смысл, необходим метод, позволяющий существенно сократить объем памяти, информации отображения. Поскольку мы не можем идти на индивидуальное отображение элементов информации мы группируем их в блоке (побайтно). Система следит за тем, в каких местах реальной памяти различаются блоки виртуальной памяти. Чем больше размер блока, тем меньшую долю емкости реальной памяти приходится затрачивать на хранение информации отображения. Увеличение размера блоков приводит к уменьшению дополнительных затрат памяти для механизма отображения, однако крупные блоки требуют большего времени на обмен между внешней и первичной памятью. И с большей вероятностью ограничивают количество процессов, которые могут совместно использовать первичную память. При реализации виртуальной памяти возникает вопрос о том, следует ли все блоки делать одинакового или разных размеров. Если блоки имеют одинаковый размер, они называются страницами, а соответствующая организация виртуальной памяти – страничная. Если блоки могут быть различных размеров – они называются сегментами, а организация – сегментной. В некоторых системах оба этих подхода комбинируются, то есть сегменты реализуются как объекты переменных размеров, формируемые из страниц фиксированного размера.