Реализация смежного распределения памяти
Цель работы: ознакомиться с принципами реализации смежного распределения памяти, научиться составлять алгоритм распределения.
Индивидуальное задание:провести анализ распределения памяти, составить алгоритм распределения.
Оборудование:ПК с операционной системой Windows XP/7/8.
Теоретические сведения
Управление памятью
Все методы управления памятью могут быть разделены на два класса: методы, которые используют перемещение процессов между оперативной памятью и диском, и методы, которые не делают этого. Ниже рассмотрены основные алгоритмы управления памятью.
Методы распределения памяти без использования дискового пространства
Распределение памяти фиксированными разделами
Самым простым способом управления оперативной памятью является разделение ее на несколько разделов фиксированной величины. Это может быть выполнено вручную оператором во время старта системы или во время ее генерации. Очередная задача, поступившая на выполнение, помещается либо в общую очередь, либо в очередь к некоторому разделу. Подсистема управления памятью в этом случае выполняет следующие задачи: во-первых, сравнивая размер программы, поступившей на выполнение, и свободных разделов, выбирает подходящий раздел и, во-вторых, осуществляет загрузку программы и настройку адресов.
Достоинства метода: простота реализации.
Недостатки метода:
· так как в каждом разделе может выполняться только одна программа, то уровень мультипрограммирования ограничен числом разделов;
· даже если программа имеет небольшой объем, она будет занимать весь раздел;
· даже если объем оперативной памяти машины позволяет выполнить некоторую программу, разбиение памяти на разделы не позволяет сделать этого.
Распределение памяти разделами переменной величины
В этом случае память машины не делится заранее на разделы. Сначала вся память свободна. Каждой вновь поступающей задаче выделяется необходимая ей память. Если достаточный объем памяти отсутствует, то задача не принимается на выполнение и стоит в очереди. После завершения задачи память освобождается, и на это место может быть загружена другая задача. Таким образом, в произвольный момент времени оперативная память представляет собой случайную последовательность занятых и свободных участков (разделов) произвольного размера.
Задачами ОС в этом случае является:
· ведение таблиц свободных и занятых областей;
· при поступлении новой задачи, просмотр таблицы свободных областей и выбор раздела, размер которого достаточен для размещения поступившей задачи;
· загрузка задачи в выделенный раздел и корректировка таблиц свободных и занятых областей;
· после завершения задачи корректировка таблиц свободных и занятых областей.
Достоинства метода: обладает гораздо большей гибкостью чем предыдущий.
Недостаток метода: фрагментация памяти (т.е. наличие большого числа несмежных участков свободной памяти очень маленького размера (фрагментов), таких что ни одна из вновь поступающих программ не может поместиться ни в одном из участков, хотя суммарный объем фрагментов может составить величину, превышающую требуемый объем памяти).
Перемещаемые разделы
Одним из методов борьбы с фрагментацией является перемещение всех занятых участков в сторону старших либо в сторону младших адресов, так, чтобы вся свободная память образовывала единую свободную область. В дополнение к функциям, которые выполняет ОС при распределении памяти переменными разделами, в данном случае она должна еще время от времени копировать содержимое разделов из одного места памяти в другое, корректируя таблицы свободных и занятых областей. Эта процедура называется "сжатием". Сжатие может выполняться либо при каждом завершении задачи, либо только тогда, когда для вновь поступившей задачи нет свободного раздела достаточного размера. В первом случае требуется меньше вычислительной работы при корректировке таблиц, а во втором - реже выполняется процедура сжатия.
Достоинства метода: более эффективное использование памяти
Недостатки метода: процедура сжатия может требовать значительного времени, что часто перевешивает преимущества данного метода.