ТЕМА 3 ОССО Студ АНХ.ppt
- Количество слайдов: 35
3. 1. Организация памяти современного компьютера 3. 1. 1. Логическая организация памяти: Линейное (одномерное) адресное пространство, отражающее особенности аппаратного обеспечения, но не соответствующее современной технологии создания программного обеспечения. Для эффективной работы с пользовательскими программами необходимо чтобы: Ø Модули могли быть созданы и скомпилированы независимо друг от друга, при этом все ссылки из одного модуля в другой разрешаются системой во время работы программы. Ø Разные модули могли получать разные степени защиты (только чтение, только исполнение и т. п. ) за счет весьма умеренных накладных расходов. Ø Возможно применение механизма, обеспечивающего совместное использование модулей разными процессами (для случая сотрудничества разных процессов в работе над одной задачей). Операционные системы 1
3. 1. 2. Физическая организация памяти Основная память Центральный процессор Кэш второго уровня Жесткий диск Кэш диска Внутренние регистры (0, 3 -0, 5 нс. ) МЛ Сотни с. Внутренний кэш, 64 Кбайт, 0, 3 -0, 5 нс. 8 Мбайт 100 Гбайт, 1 Мбайт SRAM, 1 -3 нс. 512 Мбайт DDRAM, 3 -6 нс. . Операционные системы 10 мс. 2
Z =1 – Pn, где n – число процессов 20 % 50 20% 50% % 80% Операционные системы 3
3. 1. 3. Виртуальная память Виртуализация оперативной памяти осуществляется совокупностью аппаратных и программных (ОС) средств вычислительной системы автоматически без участия программиста и не сказывается на работе приложения. Методы виртуализации памяти: свопинг (swapping), виртуальная память (virtual memory). Достоинства свопинга: малые затраты времени на преобразование адресов в кодах программ. Недостатки: : избыточность перемещаемых данных, замедление работы системы, неэффективное использование памяти, невозможность загрузить процесс, адресное пространство которого превышает объем свободной оперативной памяти. Недостатки виртуальной памяти: необходимость преобразования виртуальных адресов в физические, сложность аппаратной и программной (ОС) поддержки. Операционные системы 4
3. 2. Функции операционной системы по управлению памятью 1 Мбайт ОС в ПЗУ BIOS Скрытая память Программа пользователя 640 Кбайт Программа пользователя 60 Кбайт ОС в ОЗУ Распределение памяти в однопрограммных ОС Операционные системы 5
Функции операционной системы по управлению памятью в мультипрограммных системах Øотслеживание (учет) свободной и занятой памяти; Øпервоначальное и динамическое распределение памяти процесса приложений и сомой ОС; Ø освобождение памяти при завершении процессов; Øнастройка адресов программы на конкретную область физической памяти; Øполное или частичное вытеснение кодов и данных процессов из ОП на диск, когда размеры ОП недостаточны для размещения всех процессов и возвращение их в ОП; Øзащита памяти, выделенной процессу, от возможных вмешательств со стороны других процессов; Øдефрагментация памяти. Операционные системы 6
Типы адресов Идентификаторы переменных в программе на алгоритмическом языке Символьные имена Транслятор Виртуальные адреса Условные адреса, вырабатываемые транслятором 1. Перемещающий загрузчик (статическое преобразование) 2. Динамическое преобразование (аппаратные средства) Физические адреса Номера ячеек физической памяти Операционные системы 7
3. 3. Алгоритмы распределение памяти 3. 3. 1. Классификация методов распределения памяти Методы распределения памяти Без использования внешней памяти С использованием внешней памяти Фиксированными разделами Страничное распределение Динамическими разделами Сегментное распределение Перемещаемыми разделами Операционные системы Сегментно-страничное распределение 8
3. 3. 2. Распределение памяти фиксированными разделами (MFT в OS/360) Операционная система 8 М Программа № 1, 4 М 8 М 8 М 8 М Программа № 2, 3 М Программа № 3, 7 М Неиспользованная память Разделы одинакового размера Разделы разного размера Операционные системы 9
1 М 1 М 2 М 4 М Новые процессы 2 М Общая очередь для всех разделов 8 М 4 М 8 М Новые процессы 12 М Очереди для каждого раздела Операционные системы 10
Распределение памяти фиксированными разделами 1. Разделы одинакового размера. Недостатки: Øнеобходимость разработки оверлеев при больших размерах программ; Øнеэффективное использование памяти (внутренняя фрагментация) 2. Разделы разного размера. Очередь к каждому разделу. Достоинство: возможность распределения процессов между разделами с Достоинство минимизацией внутренней фрагментации. Недостаток: возможно неэффективное использование памяти за счет «простоя» больших разделов при наличии только небольших процессов. 3. Разделы разного размера. Общая очередь к разделам. Достоинство: улучшается использование памяти. Достоинство Достоинства: простота, минимальные требования к операционной системе. Недостатки: 1) количество разделов, определенных во время генерации ОС (режим MFT OS/360), ограничивает число активных процессов; 2) неэффективное использование памяти. Операционные системы 11
3. 3. 3. Распределение памяти динамическими разделами ОС ОС ОС P 1 P 2 P 3 P 6 P 3 P 4 ОС P 1 P 3 P 6 P 5 t 0 ОС P 5 t 1 t 2 t 3 Операционные системы tk 12
Распределение памяти динамическими разделами Достоинства: большая гибкость по сравнению с фиксированными разделами. Недостаток: внешняя фрагментация Функции ОС для реализации метода MVT OS/360 (ЕС ЭВМ): Ø ведение таблиц свободных и занятых областей ОП с указанием начального адреса и размера ; Ø при создании нового раздела просмотр таблиц и выбор раздела, достаточного для размещения процесса (наименьший или наибольший достаточный из свободных); Ø загрузка процесса в выделенный раздел и корректировка таблиц свободных и занятых областей основной памяти; Ø после завершения процесса корректировка таблиц свободных и занятых областей. Операционные системы 13
3. 3. 4. Распределение памяти перемещаемыми разделами ОС ОС P 1 P 2 a P 3 P 4 P 2 P 3 b P 5 P 4 c P 6 P 7 P 5 d P 6 P 7 e a+b+c+d+e Процедура сжатия Операционные системы 14
Распределение памяти перемещаемыми разделами 1. Перемещение всех занятых участков в сторону старших или младших адресов при каждом завершении процесса или для вновь создаваемого процесса в случае отсутствия раздела достаточного размера. 2. Коррекция таблиц свободных и занятых областей. 3. Изменение адресов команд и данных, к которым обращаются процессы при их перемещении в памяти за счет использования относительной адресации. 4. Аппаратная поддержка процесса динамического преобразования относительных адресов в абсолютные адреса основной памяти. 5. Защита памяти, выделяемой процессу, от взаимного влияния других процессов. Достоинства распределения памяти перемещаемыми разделами: эффективное использование оперативной памяти, исключение внутренней и внешней фрагментации. Недостаток: дополнительные накладные расходы ОС. Операционные системы 15
ОС Базовый регистр ОС Начальный адрес процесса Относительный адрес Управляющий блок процесса Программа Сумматор ОС Граничный регистр Компаратор Прерывание ОС Данные Абсолютный адрес Стек Аппаратная поддержка перемещения Операционные системы 16
3. 4. Виртуальная память 3. 4. 1. Методы структуризации виртуального адресного пространства 1962 г. – Kilburn T. и др. “One –Level Storage System” Методы реализации виртуальной памяти: 1. Страничная виртуальная память – организует перемещение данных между ОП и диском страницами – частями виртуального адресного пространства фиксированного и сравнительно небольшого размера. 2. Сегментная виртуальная память предусматривает перемещение данных сегментами – частями виртуального адресного пространства произвольного размера, полученными с учетом смыслового значения данных. 3. Сегментно-страничная виртуальная память использует двухуровневое деление: виртуальное адресное пространство делится на сегменты, а затем сегменты делятся на страницы. Единицей перемещения данных является страница. 4. Для временного хранения сегментов и страниц на диске отводится специальная область – страничный файл или файл подкачки (paging file). Операционные системы 17
3. 4. 2. Страничная организация виртуальной памяти Таблица страниц процесса 1 Nф. с. P A D W Виртуальные страницы Виртуальное адресное пространство процесса 1 0 1 2. . 0 1 2 3 4 k Виртуальные страницы Виртуальное адресное пространство процесса 2 0 1 2 n 5 1 1 0 1 ВП ВП Стр. 4 процесса 1 Стр. 1 процесса 2 9 2 Таблица страниц процесса 2 Nф. с. 0 1 2 3 4 3 Физическая память P A D W 1 1 0 Стр. 0 процесса 1 0 Стр. 3 процесса 1 Страничный обмен Магнитный диск Операционные системы 18 0 1 2 3 4 5 6 7 8 9. .
Виртуальный адрес ОС Номер виртуальной Смещение в страницы виртуальной странице SV P Начальный адрес таблицы страниц P 0 1 0 N 1 1 + A D W Nф. с. 1 АТ 0 0 1 N 2 1 Оперативная память 0 SF SF N 2 Таблица страниц Операционные системы 0 19
3. 4. 3. Оптимизация функционирования страничной виртуальной памяти Методы повышения эффективности функционирования страничной виртуальной памяти: 1. Структуризация виртуального адресного пространства, например, двухуровневая (типичная для 32 -битовой адресации). 2. Хранение активной части записей таблицы страниц в высокоскоростном КЭШе или буфере быстрого преобразования адреса (translation lookaside buffer – TLB). 3. Выбор оптимального размера страниц. 4. Эффективное управление страничным обменом, использование оптимальных алгоритмов замены страниц. Операционные системы 20
Двухуровневая страничная организация Виртуальный адрес 10 бит 12 бит N физ. стр. Смещение Регистр процессора Указатель на корневую таблицу страниц 4 Кбайт + + Корневая таблица страниц (1024 записи) Страничное прерывание Операционные системы Оперативная память Таблица страниц размером 4 Кбайт (1024 записи) 21
Виртуальный адрес Номер страницы Смещение Буфер быстрого преобразования адреса Основная память TLB Поиск в TLB успешен Внешняя память Поиск в TLB неуспешен Таблица страниц Загрузка страницы N физ. Стр Смещение Обновление таблицы страниц Ошибка обращения к странице (страничное прерывание) Операционные системы 22
Ассоциативное отображение Номер страницы Смещение 452 674 Номер страницы Управляющая информация Номер физической страницы 512 65 1 1 1 0 45312 7812 0 1 1 0 22233 912 0 1 1 1 6253 452 1 1 1 0 1234 34233 1 1 1 0 53 1234 674 Номер физической страницы 11233 0 1 1 0 453 Смещение Реальный адрес TLB Операционные системы 23
Виртуальный адрес N вирт. стр. Значение Смещение Отсутствует TLB Кэш Отсутствует Имеется N физ. стр. Смещение Таблица страниц Взаимодействие кэша основной памяти и TLB Операционные системы Оперативная память 24
Оптимальный размер страниц 2. С уменьшением размера страницы увеличивается объем страничных таблиц и следовательно, накладные расходы на работу виртуальной памяти. 3. С увеличением размера страниц повышается скорость работы диска. 4. Частота возникновения прерываний из-за отсутствия страниц С уменьшением размера страницы уменьшается внутренняя фрагментация. Частота возникновения прерываний из-за отсутствия страниц 1. Частота страничных прерываний нелинейно зависит от размера страниц Размер страницы P P – размер процесса в страницах N – общее количество страниц процесса W N Количество выделенных физических страниц W – размер рабочего множества Операционные системы 25
Управление страничным обменом Задачи управления страничным обменом: v - когда передавать страницу в основную память; v - где размещать страницу в физической памяти; v - какую страницу основной памяти выбирать для замещения, если в основной памяти нет свободных страниц; v - сколько страниц процесса следует загрузить в основную память; v - когда измененная страница должна быть записана во вторичную память; v - сколько процессов размещать в основной памяти. Операционные системы 26
НАИМЕНОВАНИЕ Стратегия выборки (когда? ) Стратегия размещения (где? ) Стратегия замещения (какие? ) Управление резидентным множеством (сколько? ) Стратегия очистки (когда? ) Управление загрузкой (сколько? ) и приостановкой процессов ВОЗМОЖНЫЕ АЛГОРИТМЫ По требованию, предварительная выборка Первый подходящий раздел для сегментной виртуальной памяти. Любая страница физической памяти для сегментно-страничной и страничной организации памяти. Оптимальный выбор, дольше всех не использовавшиеся, первым вошел – первым вышел (FIFO), часовой, буферизация страниц. Фиксированный размер, переменный размер, локальная и глобальная области видимости. По требованию, предварительная очистка Рабочее множество, критерии L = S (среднее время между прерываниями = среднему времени обработки прерывания) и 50% Операционные системы 27
Часовая стратегия замещения 0 N-1 Указатель буфера Страница 9 use = 0 Страница 563 use = 0 4 Страница 21 use = 1 1 Страница 9 Страница 21 use = 0 use = 1 Страница 1 use = 1 Указатель буфера Страница 17 use = 1 Страница 19 use = 0 0 N-1 2 3 Страница 1 use = 0 Страница 17 use = 0 Страница 563 Страница 11 use = 0 4 Состояние буфера перед замещением страниц 1 2 3 Состояние буфера после замещения страниц Операционные системы 28
3. 4. 4. Сегментная организация виртуальной памяти Виртуальное адресное пространство При компиляции возможно создание следующих сегментов: 1. Исходный текст, сохраненный для печати листинга программы. 2. Символьная таблица, содержащая имена и атрибуты переменных. 3. Таблица констант 4. Дерево грамматического разбора, содержащее синтаксический анализ программы. Свободно 5. Стек, используемый для процедурных вызовов внутри компилятора. Стек вызовов Дерево синтаксического анализа Исходный текст Таблица кодировки символов достигла таблицы с исходным текстом Операционные системы 29
Сравнение страничной и сегментной организации памяти Вопрос Страничная Сегментация Нужно ли программисту знать о том, что используется эта техника? Нет Да Сколько в системе линейных адресных пространств? 1 Много Может ли суммарное адресное пространство превышать размеры физической памяти? Да Да Нет Да Легко ли размещаются таблицы с непостоянными размерами? Нет Да Облегчен ли совместный доступ пользователей к процедурам? Зачем была придумана эта техника? Нет Да Возможно ли разделение процедур и данных, а также раздельная защита для них? Чтобы получить большое линейное адресное пространство без затрат на Операционные системы физическую память Для разбиения программ и данных на независимые адресные пространства, облегчения защиты и 30 совместного доступа
Виртуальный адрес Номер сегмента - N Смещение - S Таблица сегментов + Базовый Управляющая информация Размер адрес Управляющая информация: P – присутствие; M – модификация; U – использование; Sh – разделение; S – защита. Физический адрес Недостатки сегментной организации: 1. Увеличение времени преобразования виртуального адреса в физический. 2. Избыточность перемещаемых данных. 3. Внешняя фрагментация памяти. Операционные системы 31
Номер физ. Смещение страницы Сегментно-страничная организация виртуальной памяти Программа Указатель Начальный на таблицу адрес таблицы сегментов Смещение Механизм сегментации + Начальный адрес таблицы страниц Таблица страниц + Таблица сегментов Номер страницы Номер сегмента Номер страницы Смещение Виртуальный адрес Механизм страничной Операционные системы организации Основная память 32
ВП 2 ВП N Оперативная память ВП 1 Способы создания разделяемого сегмента памяти Операционные системы 33 36
Виртуальная память Windows обеспечивает каждому процессу: 4 Гбайт виртуального адресного пространства (2 Гбайт – ОС, 2 Гбайт – пользовательская программа). 2. 16 К независимых сегментов (8 к локальных и 8 К глобальных). Процесс LDTR ОС и системные сегменты СЕЛЕКТОР GDTR Индекс – номер сегмента (13 разр. ) LDT - локальная таблица дескрипторов прикладного процесса Дескриптор сегмента GDT – глобальная таблица дескрипторов процессов ОС и системных сегментов 1 2 Уровень привилегий RPL = 0 - 3 GDT – 0, LDT - 1 Начальный адрес сегмента в физической памяти Операционные системы 34
Система защиты использует переменные, характеризующие уровень привилегий: -DPL (Descriptor Privilege Level) – задается полем DPL в дескрипторе сегмента; Ядро 0 1 2 Обработчик системных вызовов 3 -RPL (Requested Privilege Level) – запрашиваемый уровень привилегий, задается полем RPL селектора сегмента; -CPL (Current Privilege Level) – текущий уровень привилегий выполняемого кода задается полем RPL селектора кодового сегмента (фиксируется в PSW); -EPR (Effective Privilege Level) – эффективный уровень привилегий запроса. Контроль доступа к сегменту данных осуществляется , если EPL <= DPL, где EPL = max { CPL, RPL }. Значение RPL – уровня запрашиваемых привилегий – определяется полем RPL селектора, указывающего на запрашиваемый сегмент. Операционные системы 35