Назначение и функции подсистемы управления памятью

Для подзадач ОС ресурс памяти ограничен. Данные, которые не могут быть размещены в ОЗУ, располагаются во вторичной памяти, роль которой выполняют дисковые накопители. Распределение памяти в ОС осуществляет подсистема управления памятью, которая для многозадачных С обеспечивает: 1)выполнение задач объем которых > ОП 2)выполнение частично загруженных в ОП задач 3)размещение в ОП сразу нескольких задач 4) размещение задач в произвольном месте ОЗУ 5)размещение задачи в различных частях ОЗУ 6)совместное использование несколькими задачами одних и тех же областей ОЗУ

Функции системы управления памятью 1)учет свободной и занятой памяти 2)принятие решения о распределении памяти 3) выделение памяти процессу и учет информации о ее использовании 4) освобождение памяти и корректировка ее состояния.

При распределении ОЗУ возможны 2 метода 1) статистический (память назначается до выполнения программы) 2)динамический (во время выполнения программы)

Статическое распределения памяти.

При статическом распределении вся необходимая оперативная память выделяется процессу в момент его порождения. При этом память выделяется единым блоком необходимой длины, начало которого определяется базовым адресом. Программа пишется в адресах относительно начала блока, а физический адрес команды или операнда при выполнении программы формируется как сумма базового адреса блока и относительного адреса в блоке. Значение базового адреса устанавливается при загрузке программы в оперативную память. Так как в разных программах используются блоки разной длины, то при таком подходе возникает проблема фрагментации памяти, то есть возникают свободные участки памяти, которые невозможно без предварительного преобразования использовать для вычислительного процесса.



Динамическое распределение памяти: дисциплины диспетчеризации. Уплотнение.

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

Во-первых, при каждом конкретном исполнении в зависимости от исходных данных некоторые части программы (до 25% ее длины) вообще не используются. Следует стремиться к тому, чтобы эти фрагменты кода не загружались в ОП.

Во-вторых, исполнение программы характеризуется так называемым принципом локальности ссылок. Он подразумевает, что при исполнении программы в течение некоторого относительно малого интервала времени происходит обращение к памяти в пределах ограниченного диапазона адресов (как по коду программы, так и по данным). Следовательно, на протяжении этого времени нет необходимости хранить в ОП другие блоки программы.

При этом системные средства должны отслеживать возникновение требований на обращение к тем частям программы, которые в данный момент отсутствуют в ОЗУ, выделять этой программе необходимый блок памяти и помещать туда из внешнего ЗУ требуемую часть программы. Для этого может потребоваться предварительное перемещение некоторых блоков информации из ОЗУ во внешнюю память. Данные перемещения должны быть скрыты от пользователя и в наименьшей степени замедлять работу его программы.

Перемещение блоков информации из ОЗУ во внешнюю память с целью освобождения места для новой информации происходит обычно по одному из следующих алгоритмов:

LRU (least recently used) - наиболее давно не использовавшийся;

FIFO - самый давний по пребыванию в ОЗУ;

Random - случайным образом.

Динамическое распределение памяти тесно переплетается с понятием виртуальной памяти.

Уплотнение памяти.

Т.к. задачи появляются в разное время и различны их объемы, возможна сильная фрагментация(объем свободной памяти велик, но нельзя её выделить). Организуется уплотнение памяти – все вычисления приостанавливаются и диспетчер памяти корректирует списки, перемещая все разделы например в начало памяти.

Недостаток: время на уплотнение

Преимущество: можно выделить необходимый размер




Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: