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

         

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


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

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

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

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

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

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

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



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