Учебный курс Операционные среды, системы и оболочки Лекция 9 Лекции читает доктор технических наук, профессор Назаров Станислав Викторович
Операционные системы 2 Распределение памяти перемещаемыми разделами 1. Перемещение всех занятых участков в сторону старших или младших адресов при каждом завершении процесса или для вновь создаваемого процесса в случае отсутствия раздела достаточного размера. 2. Коррекция таблиц свободных и занятых областей. 3. Изменение адресов команд и данных, к которым обращаются процессы при их перемещении в памяти за счет использования относительной адресации. 4. Аппаратная поддержка процесса динамического преобразования относительных адресов в абсолютные адреса основной памяти. 5. Защита памяти, выделяемой процессу, от взаимного влияния других процессов. Достоинства распределения памяти перемещаемыми разделами: эффективное использование оперативной памяти, исключение внутренней и внешней фрагментации. Недостаток: дополнительные накладные расходы ОС.
Операционные системы 3 Базовый регистр ОС ОС Управляющий блок процесса Начальный адрес процесса Сумматор Относительный адрес Компаратор ОС Граничный регистр Программа Данные Прерывание ОС Стек Абсолютный адрес Аппаратная поддержка перемещения
Операционные системы Виртуальная память Методы структуризации виртуального адресного пространства 1962 г. – Kilburn T. и др. One –Level Storage System Методы реализации виртуальной памяти: 1. Страничная виртуальная память – организует перемещение данных между ОП и диском страницами – частями виртуального адресного пространства фиксированного и сравнительно небольшого размера. 2. Сегментная виртуальная память предусматривает перемещение данных сегментами – частями виртуального адресного пространства произвольного размера, полученными с учетом смыслового значения данных. 3.Сегментно-страничная виртуальная память использует двухуровневое деление: виртуальное адресное пространство делится на сегменты, а затем сегменты делятся на страницы. Единицей перемещения данных является страница. 4. Для временного хранения сегментов и страниц на диске отводится специальная область – страничный файл или файл подкачки (paging file).
Операционные системы Страничная организация виртуальной памяти Виртуальное адресное пространство процесса 1 Виртуальное адресное пространство процесса 2 Виртуальные страницы k n Таблица страниц процесса 1 N ф.с. PADW PA Таблица страниц процесса 2 N ф.с. DW Магнитный диск Физическая память ВП 9 2 Страничный обмен 1110 Стр. 4 процесса 1 Стр. 3 процесса Стр. 1 процесса 2 Стр. 0 процесса
Операционные системы 6 Виртуальный адрес Номер виртуальной страницы Смещение в виртуальной странице P SVSV Начальный адрес таблицы страниц ОС + Таблица страниц Nф.с. PADW N1 N N2 SFSF Оперативная память N2 SFSF 0 AT
Операционные системы Оптимизация функционирования страничной виртуальной памяти Методы повышения эффективности функционирования страничной виртуальной памяти: 1. Структуризация виртуального адресного пространства, например, двухуровневая (типичная для 32-битовой адресации). 2. Хранение активной части записей таблицы страниц в высокоскоростном КЭШе или буфере быстрого преобразования адреса (translation lookaside buffer – TLB). 3. Выбор оптимального размера страниц. 4. Эффективное управление страничным обменом, использование оптимальных алгоритмов замены страниц.
Операционные системы 8 Двухуровневая страничная организация Регистр процессора Указатель на корневую таблицу страниц 10 бит 12 бит Виртуальный адрес Смещение N физ. стр Кбайт 4 Кбайт (1024 записи) Корневая таблица страниц (1024 записи) Таблица страниц размером Страничное прерывание Оперативная память
Операционные системы 9 Виртуальный адрес TLB Таблица страниц Внешняя память Номер страницы Смещение N физ. Стр Смещение Основная память Поиск в TLB успешен Поиск в TLB неуспешен Загрузка страницы Ошибка обращения к странице (страничное прерывание) Обновление таблицы страниц Буфер быстрого преобразования адреса
Операционные системы 10 Ассоциативное отображение Номер страницы Смещение Номер страницы Управляющая информация Номер физической страницы 1234 Номер физической страницы 674 Смещение Реальный адрес TLB
Операционные системы 11 Смещение TLB Оперативная память Таблица страниц N физ. стр. Кэш N вирт. стр.Смещение Виртуальный адрес Отсутствует Имеется Значение Отсутствует Взаимодействие кэша основной памяти и TLB
Операционные системы 12 Оптимальный размер страниц 1. С уменьшением размера страницы уменьшается внутренняя фрагментация. 2. С уменьшением размера страницы увеличивается объем страничных таблиц и следовательно накладные расходы на работу виртуальной памяти. 3. С увеличением размера страниц повышается скорость работы диска. 4. Частота страничных прерываний нелинейно зависит от размера страниц Размер страницы PNW Количество выделенных физических страниц Частота возникновения прерываний из-за отсутствия страниц P – размер процесса в страницах N – общее количество страниц процесса W – размер рабочего множества
Операционные системы 13 Управление страничным обменом Задачи управления страничным обменом: - когда передавать страницу в основную память; - где размещать страницу в физической памяти; - какую страницу основной памяти выбирать для замещения, если в основной памяти нет свободных страниц; - сколько страниц процесса следует загрузить в основную память; - когда измененная страница должна быть записана во вторичную память; - сколько процессов размещать в основной памяти.
Операционные системы 14 НАИМЕНОВАНИЕ ВОЗМОЖНЫЕ АЛГОРИТМЫ Стратегия выборки (когда?) По требованию, предварительная выборка Стратегия размещения (где?) Первый подходящий раздел для сегментной виртуальной памяти. Любая страница физической памяти для сегментно-страничной и страничной организации памяти. Стратегия замещения (какие?) Оптимальный выбор, дольше всех не использовавшиеся, первым вошел – первым вышел (FIFO), часовой, буферизация страниц. Управление резидентным множеством (сколько?) Фиксированный размер, переменный размер, локальная и глобальная области видимости. Стратегия очистки (когда?) По требованию, предварительная очистка Управление загрузкой (сколько?) и приостановкой процессов Рабочее множество, критерии L = S (среднее время между прерываниями = среднему времени обработки прерывания) и 50%
Операционные системы 15 Страница 9 use = 0 Страница 21 use = 1 Страница 1 use = 1 Страница 17 use = 1 Страница 19 use = 0 Страница 563 use = 0 Указатель буфера Страница 9 use = 0 Страница 21 use = 1 Страница 1 use = 0 Страница 17 use = 0 Страница 11 use = 1 Страница 563 use = 0 Указатель буфера N Часовая стратегия замещения Состояние буфера перед замещением страниц Состояние буфера после замещения страниц
Операционные системы Сегментная организация виртуальной памяти Таблица кодировки символов Таблица кодировки символов достигла таблицы с исходным текстом Исходный текст Таблица констант Свободно Дерево синтаксического анализа Стек вызовов Виртуальное адресное пространство При компиляции возможно создание следующих сегментов: 1. Исходный текст, сохраненный для печати листинга программы. 2. Символьная таблица, содержащая имена и атрибуты переменных. 3. Таблица констант. 4. Дерево грамматического разбора, содержащее синтаксический анализ программы. 5.Стек, используемый для процедурных вызовов внутри компилятора.