Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АОПИ. Старое / АОПИ. Глава 3. Конспекты (06_06_19).rtf
Скачиваний:
62
Добавлен:
10.09.2019
Размер:
201.15 Кб
Скачать

Распределение по разделам

Для поддержки многозадачного режима необходимо обеспечить одновременное размещение нескольких задач в ОЗУ.

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

Раздел:

— Имя,

— Тип,

— Граница.

Разбиение памяти на непрерывные разделы может быть статическим (фиксированным) или динамическим (новый раздел памяти выделяется непосредственно при появлении новой задачи).

Распределение по страницам

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

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

Недостаток такого способа распределения памяти: наличие большого объема неиспользуемой памяти. Такие потери памяти называют фрагментацией.

Желание сократить потери привело к следующим решениям:

1) Выделить раздел ровно такого объема, который нужен под текущую задачу.

2) Размещать задачу не в одной непрерывной области памяти, а в нескольких областях.

Распределение по сегментам

Задачи размещаются в оперативной памяти одна за другой с выделением ровно такого объема памяти, который необходим задаче.

Диспетчер памяти ведет список свободных областей оперативной памяти. При появлении новой задачи диспетчер памяти просматривает (анализирует) этот список, выделяет для задачи необходимый объем, вносит изменения в список. При этом список свободной области может быть упорядочен либо по адресам, либо по объемам.

Выделение памяти под новый раздел

Выделение памяти под новый раздел может осуществляться одним из трех способов:

1. Выделение первой подходящей области.

Список свободных областей упорядочивается (сортируется) по адресам (например, по возрастанию).

Диспетчер памяти просматривает этот список и выделяет для задачи тот раздел в этой области, который первый подходит по объему. В случае, когда такой раздел имеется, в среднем необходимо просмотреть половину списка.

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

2. Выделение самой подходящей области.

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

Необходимый раздел будет определяться в результате просмотра в среднем половины списка. Однако оставшаяся часть области оказывается настолько малой, что в ней маловероятно разместить какой-либо ещё раздел, при этом эта область попадает в самое начало списка.

В целом такой подход нельзя назвать эффективным.

3. Выделение самой неподходящей области (самый эффективный вариант).

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

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

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

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

Недостатком уплотнения является потеря времени на него и невозможность выполнения в это время каких-либо задач.