Подсистема управления памятью

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

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

Подсистема управления памятью оперирует двумя фундаментальными понятиями: виртуальный адрес и физический адрес. Виртуальные адреса назначаются коду программы и её данным на стадии трансляции (компиляции) программы при переводе её с алгоритмического языка в машинный код Рис. 13.

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

 
 


Рис. 13. Этапы преобразования адресов в вычислительной системе

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

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

 
 


Рис. 14. Алгоритм замещения страниц физической (оперативной) памяти

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

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

¨ Преобразует виртуальный адрес (ВА) запроса в физический адрес(ФА).

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

¨ Из файла подкачки в физическую память загружается та страница, к которой произошел запрос, запрос выполняется.

Кэширование памяти в вычислительной системе базируется на иерархии запоминающих устройств (ЗУ) Рис. 15.


Рис. 15. Иерархия запоминающих устройств

На Рис. 15 показано, какие запоминающие устройства существуют в вычислительной системе, их объем и время доступа. Быстродействующие устройства имеют ограниченный объем, они дорого стоят, поэтому они могут использоваться для кратковременного промежуточного хранения данных.

Кэш- память, или просто кэш – это способ совместного функционирования двух типов запоминающих устройств (ЗУ), отличающихся временем доступа, одно из которых «быстрое», а другое «медленное». Данный способ за счет динамического копирования в «быстрое» ЗУ наиболее часто используемой информации из «медленного» ЗУ позволяет уменьшить среднее время доступа к данным и экономить дорогую быстродействующую память.

Кэшем часто называют не только способ организации работы, но и «быструю» память, «медленная» память называется основной памятью (Рис. 16).

Рис. 16.Схема функционирования кэш-памяти

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

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

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

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


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



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