Распределение памяти фиксированными разделами.
Это наиболее простой способ распределения памяти. Вся ОП делится на определенное число разделов фиксированной величины. Очередной процесс (или задача) поступившая на выполнение, становится в общую очередь или в очередь к подходящему по размеру разделу памяти (Когда раздел освобождается, очередной процесс (программа) подгружается в ОП).
Рис. 8.6. Распределение памяти фиксированными разделами.
В этом случае подсистема управления памятью выполняет задачи:
¨ сравнения размера поступившей на выполнение программы с размерами свободных разделов памяти;
¨ выбора подходящего раздела;
¨ загрузка программы и настройка адресов.
При очевидном преимуществе – простоте реализации – этот способ распределения имеет очевидный минус: жесткость. Во-первых, одна программа занимает весь раздел целиком. Это ведет к тому что, во-первых, неэкономно расходуется память; во-вторых, коэффициент мультипрограммирования ограничен числом разделов. С другой стороны, даже если суммарный объем свободной ОП машины позволяет выполнять некоторую программу, разбиение памяти на разделы не позволяет сделать этого.
Другой способ – распределение памяти разделами переменной величины. При таком способе распределения в начале работы ЭВМ вся ОП свободна. Каждой поступающей на выполнение задаче выделяется необходимый ей объем ОЗУ. Если достаточный объем памяти отсутствует, задача не принимается на выполнение и стоит в очереди. После завершения задачи память освобождается, и на это место может быть загружена другая задача.
Т.о., в произвольный момент времени ОП представляет собой случайную последовательность свободных и занятых областей памяти примерно такого вида.
Рис. 8.7. Распределения памяти динамическими разделами
В начальный момент времени t0 в ОП загружена только ОС. К моменту времени t1 ОП разделена между ОС и 5 программами (задачами), имеется также свободная область. К моменту времени t2 задача П2 уже завершена и покидает ОП, а на ее место может быть подгружена задача На освободившееся место загружается задача П6, поступившая в момент времени t3. Выбором раздела для вновь поступившей задачи занимается ОС. Осуществляется выбор раздела по правилам: «первый попавшийся раздел достаточного размера», «раздел, имеющий наименьший достаточный размер», «раздел, имеющий наибольший достаточный размер».
Помимо выбора раздела для вновь поступившей задачи, ОС также выполняет задачи:
¨ ведение таблиц свободных и занятых областей, в которых указывается начальные адреса и размеры участков памяти;
¨ анализ запроса (при поступлении новой задачи);
¨ просмотр таблицы свободных областей (с целью выбора раздела для размещения вновь поступившей задачи);
¨ загрузка задачи в выделенный ей раздел;
¨ корректирование таблиц свободных и занятых областей (как после загрузки очередной задачи в ОП, так и после завершения задачи).
По сравнению с методом распределения памяти фиксированными разделами данный метод более гибок, но ему присущ серьезный недостаток – фрагментация памяти. Фрагментация – это наличие многих несмежных областей памяти, настолько маленьких по размеру, что ни в одну из них нельзя поместить ни одну из пришедших на выполнение программ, хотя суммарный объем таких фрагментов может составить значительную величину.