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

Аппаратная поддержка перемещения.

Обычно схема аппаратной поддержки перемещения срабатывает в момент переход процесса в состояние выполнения. В этом случае специальный регистр процесса, называемый базовым, загружается в начальный адрес процесса в основной памяти. Кроме того используются граничные регистры, в котором содержится адрес последней команды программы. Эти значения заносятся в регистры при загрузке программы в ОП. При выполнении процесса относительные адреса в командах обрабатываются ЦП в два этапа: сначала к относительному адресу прибавляется значение базового регистра для получения абсолютного адреса, затем полученный абсолютный адрес сравнивается со значением в граничном регистре и, если не превышает его, то команда может быть выполнена. В противном случае генерируется прерывание, приводящее к остановке вычислительного процесса.

Методы структуризации виртуального адресного пространства.

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

В настоящее время все множество виртуальной памяти принято делить по способу структуризации виртуального адресного пространства.

Выделяют три метода реализации виртуальной памяти:

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

  2. Сегментная виртуальная память – предусматривает перемещение данных сегментами – частями виртуального адресного пространства произвольного размера, полученными с учетом смыслового значения данных.

  3. Сегментно-страничная виртуальная память – использует двухуровневое деление: виртуальное адресное пространство делится на сегменты, а сегменты на страницы. Единицей перемещения является страница.

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

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

При страничной организации виртуальное адресное пространство (ВАП) каждого загруженного приложения (процесса) делится на одинаковые фиксированные для данной системы части, называемые виртуальными страницами.

Обычно размер ВАП при делении на размер одной страницы дает дробную величину, что говорит о том, что его размер не кратен размеру виртуальной страницы. Поэтому последняя страница, как правило, дополняется неиспользованной фиксированной областью.

Оперативная память компьютера также делится на страницы, называемые физическими. Их размер, как правило, совпадает с размерами вирутальной страницы. Размер страницы всегда выбирается кратным степени двойки (1024, 2048, 4096,…).

При создании процессов ОС загружает в ОП несколько его виртуальных страниц – начальные страницы кодового сегмента и сегмент исходных данных.

Копия всего виртуального пространства находится на диске.

Смежные виртуальные страницы необязательно должны находиться в смежных физических страницах. Их расположение произвольно. Для каждого процесса ОС создает таблицу страниц – специальную информационную структуру, содержащую записи обо всех виртуальных страницах процесса. Запись таблицы страниц (дескриптор) обычно включает следующую информацию:

  • Nф.с. – номер физической страницы, в которую загружена данная виртуальная страница. Номер виртуальной страницы определяется порядковым номером записи.

  • P – признак присутствия. Устанавливается в единицу, если данная страница находится в ОП.

  • A – признак обращения к странице, называемый битом доступа, и устанавливается в единицу при каждом обращении к адресу, относящемуся к данной странице.

  • D – признак модификации страницы. Устанавливается в единицу, если данная страница была подвергнута изменению.

  • W – признак защиты. Устанавливается в единицу при ограничении доступа (например, доступ только сисадмину) и в ноль, если страница общедоступна.

Данные признаки в большинстве моделей устанавливаются аппаратно схемами процессора. Информация из таблицы страниц используется, в первую очередь, для принятия решения о необходимости перемещения той или иной страницы между RAM и диском, а также для преобразования виртуального адреса в физический. При работе процесса часть его таблицы располагается в ОП, а другая, значительно большая, находится на диске. Адрес таблицы страниц включается в контекст процесса. При активизации очередного процесса ОС загружает адрес его таблицы страниц в специальный регистр.

Виртуальный адрес при страничной организации представляется в виде пары значений P, Sv, где P – номер виртуальной страницы процесса (нумерация с 0), а Sv – смещение в пределах виртуальной страницы.

Физические адреса представлены парой значений – N,Sf, где N – номер физической страницы, а Sf – смещение в пределах физической страницы. Подсистема виртуальной памяти должна решить задачу отображения пары значений P, Sv на пару N, Sf.

Механизм преобразования адресов основан на использовании двух базисных свойствах страничной организации:

  1. объем страницы виртуальной и физической памяти выбирается равным степени двойки 2k, где k≥8.

  2. линейность адресного пространства виртуальной и физической памяти приводят к тому, что смещение страниц совпадает (Sv=Sf).

Используя эти свойства при обращении к памяти по некоторому виртуальном адресу P, Sv, аппаратные схемы процессора выполнят следующие действия:

  1. Из специального регистра процессора извлекается начальный адрес (AT) в таблицах страниц активного процесса. С помощью сумматора S по значениям таблицы AT P, L (длина отдельной записи в таблице страниц) определяется адрес нужной записи в таблице страниц A= AT+(P*L).

  2. Считывается номер соответствующей физической страницы N.

  3. К номеру физической страницы N добавляется смещение Sv.

  4. Итогом добавления смещения является физический адрес N, Sf.

Оптимальный размер страниц.

  1. С уменьшением размера страницы уменьшается внутренняя фрагментация.

  2. С уменьшением размера страницы увеличивается объем страничных таблиц и следовательно

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]