Электронный учебник:


Курс лекций:


Дополнительно:

Практикум:



Наши хостеры:

Способы организации виртуальной памяти

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

Сегментный способ организации виртуальной памяти.

Естественным способом разбиения программы на части является её разбиение на логические фрагменты - сегменты. Обычно сегментом является модуль или совокупность программных модулей. Логическое обращение к элементам программы будет означать указание имени сегмента, и смещения относительно его начала. Каждый сегмент, размещенный в памяти, имеет информационную структуру – дескриптор сегмента. Операционная система строит для каждого выполняемого процесса таблицу дескрипторов сегмента и при размещении каждого из сегментов в ОЗУ или внешней памяти в дескрипторе отмечается его текущее местоположение. Для этого используется бит присутствия. В поле «Адрес» диспетчер памяти записывает адрес физической памяти, с которого начинается сегмент, а в поле «Длина сегмента» его размер в байтах. Это поле используется для того, чтобы избежать наложения сегментов друг на друга и для того, чтобы контролировать, не обращается ли подзадача за пределы текущего сегмента (если это так то генерируется прерывание). Если сегмент находится во внешней памяти, то поля адреса и длины используются для указания адреса сегмента в координатах внешней памяти. В дескрипторе сегмента также содержатся данные о его типе (код или данные), права доступа, отметка об обращениях к сегменту. При передаче управления следующей задаче операционная система заносит в соответствующий регистр микропроцессора адрес таблицы дескрипторов сегментов этой задачи. Сама таблица  дескрипторов сегмента также является сегментом данных, которые обрабатываются диспетчером памяти.

ImageImage

предыдущаяследующая