Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SRS_IPOVS_OS.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

15.4. Простая страничная организация

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

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

Таблица страниц содержит по одной записи для каждой страницы процесса. Таблица индексируется номером страницы, начиная с нуля. Каждая запись содержит номер кадра в ОП. ОС поддерживает единый список свободных кадров. На рис. 15.1, а показан пример трансляции адреса с использованием простой страничной организации памяти для 16-битных адресов.

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

Размер страницы должен быть кратен степени двух. Тогда 1) относительный адрес, определяемый относительно начала программы, равен логическому адресу; 2) схема логической адресации прозрачна для программиста; 3) Простая аппаратная реализация преобразования адресов.

15.5. Простая сегментная организация

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

Логический адрес равен номеру сегмента и смещению.

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

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

На рис. 15.1, б показан пример трансляции адреса с использованием простой сегментной организации памяти для 16-битных адресов.

Вопросы для самоконтроля

  1. Объясните разницу между внутренней и внешней фрагментацией.

  2. В чем состоит преимущество использования разделов разного размера при использовании схемы фиксированного распределения?

  3. В чем разница между страницей и кадром?

  4. В чем разница между страницей и сегментом?

Тема 16. Виртуальная память

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

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

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

  2. Процесс может быть разбит на ряд частей (страниц или сегментов), которые не обязательно должны располагаться в ОП единым непрерывным блоком. Это обеспечивается за счет динамической трансляции адресов и использования таблиц страниц или сегментов.

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

Следствия применения виртуальной памяти:

  1. в оперативной памяти может поддерживаться большее количество процессов;

  2. процесс может быть больше, чем физическая память.

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