Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы СисПО.doc
Скачиваний:
46
Добавлен:
27.09.2019
Размер:
3 Мб
Скачать
☆

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

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

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

- распределение имеющейся физической памяти между всеми существующими в системе в данный момент процессами,

- загрузку кодов и данных процессов в отведенные им области памяти,

- настройку адресно-зависимых частей кодов процесса на физические адреса выделенной области, а также

- защиту областей памяти каждого процесса.

Существует большое разнообразие алгоритмов распределения памяти.

Они могут отличаться, например:

- количеством выделяемых процессу областей памяти (в одних случаях память выделяется процессу в виде одной непрерывной области, а в других – в виде нескольких несмежных областей),

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

В некоторых системах распределение памяти выполняется страницами фиксированного размера, а в других – сегментами переменной длины.

Одним из наиболее популярных способов управления памятью в современных ОС является так называемая виртуальная память.

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

Защита памяти – это избиpaтeльнaя способность предохранять выполняемую задачу от записи или чтения памяти, назначенной другой задаче.

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

Средства защиты памяти, реализованные в ОС, должны пресекать несанкционированный доступ процессов к чужим областям памяти.

Таким образом, функциями ОС по управлению памятью являются:

- отслеживание свободной и занятой памяти;

- выделение памяти процессам и освобождение памяти при завершении процессов;

- защита памяти;

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

- настройка адресов программы на конкретную область физической памяти.