- •Лекція №10 Управління пам'яттю
- •10.1. Основные понятия и требования к управлению памятью
- •10.1.1. Перемещение
- •10.1.2. Защита
- •10.1.3. Совместное использование
- •10.1.4. Типы адресов
- •10.2. Распределение памяти без использования дискового пространства
- •10.2.1. Распределение памяти фиксированными разделами
- •10.2.2. Динамическое распределение памяти
- •10.2.3. Перемещаемые разделы
- •10.2.4. Система двойников
- •10.3. Распределение памяти с использованием дискового пространства
- •10.3.1. Понятие виртуальной памяти
- •10.3.2. Страничное распределение
- •10.3.3. Сегментное распределение
- •10.3.4. Странично-сегментное распределение
- •10.3.5. Свопинг
- •10.3.6. Стратегии управления страничной памятью
- •Основные алгоритмы замещения страниц
- •Оптимальный алгоритм (opt)
- •Выталкивание дольше всего не использовавшейся страницы (lru)
- •Часовой алгоритм
- •Буферизация страниц
- •Стратегия замещения и размер кэша
Буферизация страниц
Хотя алгоритмы дольше всех неиспользовавшегося и часовой и превосходят алгоритм "первым вошел — первым вышел", они оба сложны и имеют высокие накладные расходы по сравнению с последним. Кроме того, следует учитывать, что стоимость замещения модифицированной страницы выше стоимости замещения немодифицированной, которую не надо записывать во вторичную память.
Есть еще одна интересная стратегия, которая может повысить производительность страничной организации при использовании простейшего алгоритма замещения. Это — буферизация страниц, использованная в VAX VMS. В качестве алгоритма замещения страниц используется простейший алгоритм "первым вошел — первым вышел". Для повышения его производительности замещаемая страница не теряется, а вносится в один из двух списков: в список свободных страниц, если страница не модифицировалась, или в список модифицированных страниц. Заметим, что физически страница не перемещается — вместо этого ее запись удаляется из таблицы страниц и переносится в список свободных или модифицированных страниц.
Список свободных страниц представляет собой список кадров страниц, доступных для чтения. VMS пытается постоянно поддерживать некоторое небольшое количество свободных кадров. Когда страница считывается в кадр, используется кадр, расположенный в начале списка; при этом страница, находившаяся в нем ранее, уничтожается. При замещении немодифицированной страницы она остается в памяти, а ее кадр добавляется к концу списка свободных страниц; аналогично, модифицированная страница добавляется к списку модифицированных страниц.
Важным аспектом этих перемещений является то, что замещаемые страницы остаются в памяти. Следовательно, если процесс обращается к такой странице, она возвращается в резидентное множество процесса без значительных затрат. В действительности, списки свободных и модифицированных страниц работают в качестве кэша страниц. Список модифицированных страниц позволяет записывать их не по одной, а кластерами, что существенно снижает количество операций ввода-вывода, а следовательно, и время обращения к диску.
Стратегия замещения и размер кэша
Как отмечалось ранее, размер основной памяти со временем становится все больше, как, впрочем, и размер приложений. Утешением может служить то, что размеры кэшей также увеличиваются. Большие — до нескольких мегабайтов — кэши в настоящее время вполне возможны. При использовании кэшей большого размера замещение страниц виртуальной памяти может влиять на производительность. Если кадр страницы, выбранный для замещения, располагается в кэше, то вместе с потерей страницы из блока кэша теряется весь блок.
В системах с использованием буферизации того или иного вида производительность кэша можно увеличить путем добавления к стратегии замещения стратегию размещения страниц в буфере. Большинство операционных систем размещают страницы в буфере в произвольных кадрах, как правило, с использованием алгоритма "первым вошел — первым вышел". Исследования показали, что правильный выбор стратегии размещения может привести к уменьшению неуспешных поисков в кэше на 10-20%.
Суть этих стратегий состоит в размещении последовательных страниц в основной памяти таким образом, чтобы минимизировать количество кадров страниц, отображаемых в одни и те же слоты кэша.