Организация ЭВМ и систем

         

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


В этом случае память машины не делится заранее на разделы. Сначала вся память свободна. Каждой вновь поступающей задаче выделяется необхо­димая ей память. Если достаточный объем памяти отсутствует, то задача не принимается на выполнение и стоит в очереди. После завершения задачи па­мять освобождается, и на это место может быть загружена другая задача. Та­ким образом, в произвольный момент времени оперативная память представ­ляет собой случайную последовательность занятых и свободных участков (разделов) произвольного размера. На рис. 4.12 показано состояние памяти в различные моменты времени при использовании динамического распределе­ния. Так в момент tg в памяти находится только ОС, а к моменту t, память разделена между 5 задачами, причем задача П4, завершая работу, покидает память к моменту t;. На освободившееся место загружается задача П6, посту­пившая в момент 1з.

Задачами операционной системы при реализации данного метода управ­ления памятью являются: ведение таблиц свободных и занятых областей, в которых указываются начальные адреса и размеры участков памяти; анализ запроса (при поступлении новой задачи), просмотр таблицы свободных об­ластей и выбор раздела, размер которого достаточен для размещения посту­пившей задачи; загрузка задачи в выделенный ей раздел и корректировка таблиц свободных и занятых областей; корректировка таблиц свободных и занятых областей (после завершения задачи).

Рис. 4.12. Распределение памяти динамическими разделами

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

Выбор раздела для вновь поступившей задачи может осуществляться по разным правилам: «первый попавшийся раздел достаточного размера»; «раз­дел, имеющий наименьший достаточный размер»; «раздел, имеющий наи­больший достаточный размер». Все эти правила имеют свои преимущества и недостатки.

По сравнению с методом распределения памяти фиксированными разде­лами данный метод обладает гораздо большей гибкостью, но ему присущ очень серьезный недостаток — фрагментация памяти. Фрагментация — это наличие большого числа несмежных участков свободной памяти очень ма­ленького размера (фрагментов). Настолько маленького, что ни одна из вновь поступающих программ не может поместиться ни в одном из участков, хотя суммарный объем фрагментов может составить значительную величину, на­много превышающую требуемый объем памяти1.



Содержание раздела