Все процессы выполняются в оперативной памяти, которая в свою очередь ограничена, а число процессов и их требования к ОП не ограничены. Поэтому ОС должна постоянно следить за использованием ОП процессами, своевременно размещать их в ОП и удалять и нее.
Функции управления памятью:
▪ отслеживание свободной и занятой памяти;
▪ выделение памяти процессам и освобождение памяти по завершении процессов;
▪ вытеснение кодов и данных процессов из оперативной памяти на диск (полное или
частичное), когда размеры основной памяти не достаточны для размещения в ней всех
процессов, и возвращение их в оперативную память, когда в ней освобождается место;
(свободной оперативной памяти может быть недостаточно для размещения в ней программ, в этом случае программист должен позаботиться о том, чтобы так часть программы, которая управляет всеми процессами определилась как резидентная, т.е. постоянно находящаяся в ОП, остальные части программы могут быть транзитными, т.е. загружаемые в ОП в момент обращения к ним и выгружаемыми по окончании работы. В этом случае все внутренние переменные этих процессов (подпрограмм) уничтожаются, кроме того, программа может быть разбита на части (страницы) независимо от выполняемых на этих страницах функций. В ОП находятся только те страницы, к адресам которых происходит обращение, если страница расположена на диске, но к ней произведено обращение, ОС должна загрузить эту страницу в ОП, вытесняя неактивные страницы.
▪ настройка адресов программы на конкретную область физической памяти; (для
правильной работы программы, которая может перемещаться в ОП, как в процессе
загрузки, так и в процессе перемещения страниц необходима корректировка адресов.
Быстрая перенастройка адресов выполняется программой аппаратно с использованием
базовой адресации, основанной на использовании сегментных регистров, CS, ES)
▪ динамическое распределение памяти:
▪ выполнение запросов приложений на выделение им дополнительной
памяти во время выполнения;
▪ возвращение ее системе после того как приложение перестает нуждаться в
дополнительной памяти;
▪ дефрагментация памяти, так как выделение памяти случайной длины в случайные
моменты времени из общего пула приводит к фрагментации.