Стратегия подкачки страниц

 

Операционная система управляет реальной (физической) и виртуальной памятью. Реальная память имеет иерархическую структуру, распадаясь на несколько уровней.

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

Разработано много методов распределения реальной памяти между процессами и при выполнении отдельного процесса.

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

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

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

2. Размещение – поиск свободного места основной памяти для помещения программы или данных. Разбросанные случайным образом свободные участки сцепляются в список свободной памяти: в начале каждого участка указывается его длина и адрес следующего участка.

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

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

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

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

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

Использование виртуальной памяти освобождает программиста от необходимости учитывать размещение программы в реальной памяти, позволяет игнорировать особенности аппаратуры и делает программу независимой от емкости и распределения реальной памяти конкретной ЭВМ, то есть более мобильной.

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

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

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

Достижению этой цели способствует поблочное отображение. Блоки фиксированного размера называются страницами; блоки переменного размера называются сегментами. В некоторых системах оба вида блоков комбинируются.