Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
19-27.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
14.71 Mб
Скачать

22. Сегментирование.

Программа и связанные с ней данные разделяются на сегменты. Сегменты не обязаны

быть одинакового размера. Логический адрес также состоит из номера сегмента и

смещения внутри него. Сегменты могут занимать несколько разделов, которые не

обязательно являются смежными. В остальном этот подход похож на динамическое

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

снижается за счет разбиения процесса на небольшие части (сегменты). Главный

недостаток – нужно следить, чтобы размер сегмента не превысил максимально

возможный.

В таблице сегментов кроме адреса сегмента в памяти, хранится и его длина (если

смещение больше длины, адрес некорректен). Также хранится список свободных блоков

памяти. Физический адрес – это сумма физического адреса начала сегмента и смещения.

23. Виртуальная память. Принцип локализации.

В основе концепции виртуальной памяти лежит идея о том, что наличие всех страниц

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

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

ОС размещает в памяти только один или несколько блоков процесса, в том числе блок,

содержащий начало программы.

Часть процесса, располагающаяся в некоторый момент времени в основной памяти,

называется резидентным множеством процесса. С помощью таблицы страниц или

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

память. Если в основной памяти нет нужного логического адреса, ОС необходимо

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

операцию ввода-вывода (загружает нужный блок), после чего переводит процесс в

состояние готовности.

При использовании виртуальной памяти отмечаются следующие положительные

моменты:

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

повышению эффективности использования процессора, т.к. повышается

вероятность наличия активных процессов в памяти.

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

программисту доступен огромный объем памяти.

Т.к. процесс выполняется только в основной памяти, она также называется реальной.

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

виртуальной памятью.

Локализация

Почему использование виртуальной памяти является эффективным, несмотря на

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

небольшой промежуток времени выполнение программы сосредоточено, как правило, в

малой части кода, которая обращается к одному или двум массивам данных – это явление

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

достаточно блоков, к которым вероятнее всего будет обращаться программа в ближайший

промежуток времени.

Когда наступает необходимость выгрузить некоторые блоки из памяти для

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

вероятностью нужен будет в ближайшее время. Такие алгоритмы основаны также на

принципе локализации (как правило, выгружаются блоки, к которым дольше всего не

обращались).