Управление памятью

 

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

Существует большое разнообразие алгоритмов распределения памяти, которые мо­гут отличаться, например, количеством выделяемых процессу областей памяти (в одних случаях память выделяется процессу в виде одной непрерывной облас­ти, а в других - в виде нескольких несмежных областей), степенью свободы гра­ницы областей (она может быть жестко зафиксирована на все время существова­ния процесса или же динамически перемещаться при выделении процессу дополнительных объемов памяти). В некоторых системах распределение памяти выполняется страницами фиксированного размера, а в других - сегментами пе­ременной длины.

Одним из наиболее популярных способов управления памятью в современных операционных системах является механизм виртуальной памяти. Наличие в ОС этого механизма позволяет программисту писать програм­му так, как будто в его распоряжении имеется однородная оперативная память большого объема, часто существенно превышающего объем имеющейся физиче­ской памяти. В действительности все данные, используемые программой, хра­нятся на диске и при необходимости частями (сегментами или страницами) ото­бражаются в физическую память.

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

Таким образом, функциями ОС по управлению памятью являются:
отслеживание свободной и занятой памяти; выделение памяти процессам и освобождение памяти при завершении процессов; защита памяти; вытеснение процессов из оперативной памяти на диск, когда размеры основной памяти недостаточны для размещения в ней всех процессов, и возвращение их в оперативную память, ко­гда в ней освобождается место; настройка адресов программы на кон­кретную область физической памяти.