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

advertisement
СИСТЕМНОЕ И ПРИКЛАДНОЕ
ПРОГРАММНОЕ
ОБЕСПЕЧЕНИЕ
Лекция 3.
ОС: Управление памятью.
Управление памятью
• Физическое пространство ОП
• доступно процессору
• упорядочено, адресует банки памяти
• Виртуальное адресное пространство
• отображение пространства имён на
подмножество реального пространства
• две стратегии отображения
- компиляция абсолютной двоичной программы,
точное соответствие виртуальных адресов
физическим
- отображение осуществляется ОС
2
Организация памяти
3
Виртуальная память
Суть концепции
• адреса, с которыми работает программа,
отличаются от реально существующих в
памяти
• виртуальный адрес транслируется в
реальный
• не обязательно сохраняя смежность адресов
• группировка в виртуальные блоки
• одинаковый размер блоков – страничная модель
• разные размеры блоков – сегментная модель
• адресация: номер блока и смещение
4
Организация и распределение
памяти
Менеджер памяти отвечает за:
• выбор момента помещения программы
в ОП
• выбор места в ОП для размещения
программы
• выбор программы на удаление в случае
исчерпания памяти
5
Организация и распределение
памяти
• Простое непрерывное распределение памяти
– самая простая модель (пример – MS-DOS):
• область ОС
• область размещения исполняемой задачи
• свободная область
• Оверлейные структуры
• программа разбивается на сегменты
• в памяти – только главная часть и один или
несколько неперекрывающихся сегментов
• при завершении исполнения сегмента:
- сегмент обращается к ОС для перехода на следующий
- сегмент возвращает управление главному сегменту
6
Организация и распределение
памяти
• Разбиение памяти на разделы
• статическое (фиксированные границы)
- при генерации ОС или административно
• динамическое (подвижные границы
разделов)
- диспетчер памяти выделяет раздел нужного
размера
- при освобождении раздела диспетчер пытается
объединить смежные участки памяти
(дефрагментировать)
- недостаток – потеря времени на реогранизацию
7
Организация и распределение
памяти
• Сегментный способ организации памяти
(пример – OS/2)
• программа загружается по частям
• программные модули могут быть
разделяемыми (являются отдельными
сегментами)
• недостатки:
- замедляется доступ к памяти
- затраты на поддержку таблиц дескрипторов
сегментов
- фрагментация памяти
8
Организация и распределение
памяти
• Страничный способ организации
• блоки фиксированной длины (например, 4-8 Кбайт)
• отображение номера виртуальной страницы в номер
реальной
• адресация – номер страницы и смещение
9
Организация и распределение
памяти
• Основное достоинство страничной
организации – минимальная
фрагментация
• Недостатки
• затраты на хранение и обработку
дескрипторных таблиц
• разбивка на страницы случайна,
межстраничные переходы чаще
межсегментных
10
Организация и распределение
памяти
• Странично-сегментный способ организации
памяти
• программа разбивается на логические сегменты
• виртуальный адрес
- номер сегмента
- вирутальная страница и индекс
- т.е. сегменты разбиты на страницы, все страницы
сегмента загружаются в память
• ниже фрагментация, более чёткое логическое
разделение памяти
• более затратно по времени доступа к памяти
11
Стратегии управления
ОС реализует подкачку с диска (из своп-файла), применяя один из
алгоритмов выборки:
• Идеальный алгоритм (нереализуем)
• заменить ненужную в будущем страницу
• Выталкивание случайной страницы
• просто, неэффективно
• FIFO – выталкивается самая старая страница
• может быть удалена активно используемая
• LRU (Least Recenly Used) – выталкивается та, к которой
дольше всего не обращались
• требуется аппаратная поддержка (очередь страниц)
• LFU (Least Frequently Used) – выталкивается реже всего
используемая страница
• может быть вытолкнута только что загруженная страница
• NUR (Not Used Recently) – выталкивается не
использовавшаяся в последнее время страница
• биты-признаки: обращения и модификации
12
Стратегии управления
• В большинстве современных ОС
используется дисциплина LRU как
наиболее эффективная.
• Примеры: OS/2, Linux
• FIFO – Windows NT
• для устранения недостатков FIFO
применяют «буферизацию»
предназначенных к выборке страниц
- если происходит обращение, страница
удаляется из кандидатов на выгрузку
13
Защита на уровне страниц
Механизм защиты:
• Процессор определяет допустимость операции
• сравнивает текущий режим процессора и вид обращения к
памяти с атрибутами страницы
• Страничное нарушение:
• при попытке записи в страницу с атрибутом "только чтение"
• при попытке обращения к странице ядра из режима
пользователя
• при попытке чтения или записи страницы с атрибутом
"только выполнение"
• при любом обращении к отсутствующей странице
• Вызывается обработчик страничного нарушения,
который является частью ОС
14
Модель памяти
приложения
Время жизни объектов
Три режима выделения памяти:
• Статический
• память выделяется и инициализируется при запуске
программы
• Стековый
• память выделяется на стеке
- размер стека ограничен
- время жизни объектов соответствует вложенности создающих
их подпрограмм
• Динамический
• память выделяется в динамической памяти (куче)
• время жизни регулируется программистом (или сборщиком
мусора)
• возможны утечки памяти
16
Время жизни объектов
17
Автоматическое управление
памятью
• Динамическая память
контролируется с помощью
специальных объектов или
структур
• «умный указатель»
• счётчик ссылок
18
Сборка мусора
• Сборщик мусора производит поиск и
утилизацию недостижимых объектов
• Требования к сборщику мусора
• Качественность (обязательно)
- каждый собираемый объект должен быть
недостижимым (нет ссылок)
• Полнота (желательно)
- каждый недостижимый объект должен быть
собран
19
Сборка мусора
Этапы сборки мусора
• пометка
• обход всех ссылрок рекурсивно, пометка
достижимых объектов
• чистка
• удаление недостижимых объектов
20
Сборка мусора
Стратегии:
• «всё или ничего»
• при нехватке памяти запускается полный цикл
сборки
• недостаток – остановка процесса выполнения
программы на время сборки
• продвинутый подход
• наличие API для программного запуска сборки
мусора
• сборка мусора поколений
- принцип «старые объекты не трогать»
• параллельная сборка мусора (на лету)
• отдельный поток сборки мусора
21
Сборка мусора
Связь между поколениями объектов
22
Download