Распределение памяти динамическими разделами
В том случае память не делится заранее на разделы. Сначала вся память, отводимая для приложений, свободна. Каждому вновь поступившему на выполнение приложению на этапе создания процесса выделяется вся необходимая ему память (если достаточный объем памяти отсутствует, то приложение не принимается на выполнение и процесс для него не создается). После завершения процесса память освобождается, и на это место может быть загружен другой процесс. Таким образом, в произвольный момент времени оперативная память представляет собой случайную последовательность занятых и свободных участков (разделов) произвольного размера.
Функции ОС в данном методе управления памятью:
· Ведение таблиц свободных и занятых областей, в которых указываются начальные адреса и размеры участков памяти.
· При создании нового процесса – анализ требований к памяти, просмотр таблицы сводных областей и выбор раздела, размер которого достаточен для размещения кодов и данных нового процесса. Выбор раздела может осуществлять по разным правилам, например: «первый попавшийся раздел достаточного размера», «раздел, имеющий наименьший достаточного размера» или «раздел, имеющий наибольший достаточный размер».
· Загрузка программы в выделенный ей раздел и корректировка таблиц свободных и занятых областей. Данный способ предполагает, что программный код не перемещается во время выполнения, а значит, настройка адресов может быть проведена единовременно во время загрузки.
· После завершения процесса корректировка таблиц свободных областей.
Рис.. Распределение памяти динамическими разделами
По сравнению с методом распределения памяти фиксированными разделами данный метод обладает гораздо большей гибкостью, но ему присущ очень серьезный недостаток – фрагментация памяти. Фрагментация – это наличие большого числа несмежных участков свободной памяти очень маленького размера (фрагментов). Настолько маленького, что ни одна из вновь поступивших программ не может поместиться ни в одном из участков, хотя суммарный объем фрагментов может составить значительную величину, немного превышающую требуемый размер памяти.
Распределение памяти динамическими разделами лежит в основе подсистем управления памятью многих мультипрограммных операционных систем 60-70-х годов, в частности такой популярной операционной системе, как OS/360.
Дата добавления: 2016-06-05; просмотров: 3204;