Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
33__33__33__33_ItogOS.docx
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
1.55 Mб
Скачать

88. Сегментная организация памяти

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

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

Достоинства: возможность задания различных прав доступа процесса к его сегментам. (Например, один сегмент данных, содержащий информацию для приложения, может иметь права доступа «только чтение», а сегмент данных, представляющий результаты, — «чтение и запись».)

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

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

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

89. Страничная организация памяти

При использовании виртуальной памяти каждому процессу выделяется определенное виртуальное адресное пространство. Это пространство делится на части фиксированного размера - виртуальные страницы.

Размер страниц выбирается кратным степени двойки обычно - 4Кб.

Так как большинство современных машин – 32 разрядные, то они могу адресовать 4Гб. данных (максимальный размер виртуальной памяти). На адрес страницы уходит 4Гб/4Кб=220 – 20 бит. Другие 12 бит идут на смещение внутри страницы (4Кб=212 байт)

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

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

  • процессор приостанавливает данный процесс

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

  • На свободное место загружаются необходимые страницы с жесткого диска.

  • Процессор возобновляет выполнение процесса.

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

  1. Загружается адрес таблица страниц процесса (AT – адрес таблицы страниц).

  2. От виртуального адреса отбрасываются младшие разряды (9 для страницы в 512байт)

Оставшиеся старшие разряды – номер виртуальной страницы (р)

  1. По данным адресам таблицы страниц и виртуальной страницы на находится нужная запись: АТ+р*(длина записи).

  2. В данной записи считывается адрес физической страницы и к нему прибавляется смещение. Физический адрес готов.

Недостатки страничной организации памяти: Сложен совместный доступ пользователей к процедурам, наличие внешней фрагментации

Вычисление физического адреса по логическому (виртуальному)

Виртуальный адрес – порядковый номер виртуальной страницы + смещение в ней.

Физический адрес – порядковый номер физической страницы + смещение в ней.

Т.к. размер страниц выбирается кратным степени 2 (4Кб - 212) то смещение – это последние разряды в виртуальном адресе (в данном случае – последние 12 бит.)

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

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