Операционные среды, системы и оболочки Тема 3. Управление памятью.

реклама
Операционные
среды, системы и
оболочки
Тема 3. Управление памятью.
Методы, алгоритмы и средства
Автор: доктор технических наук,
профессор Назаров С.В.
Операционные системы
1
Тема 3. Управление памятью. Методы, алгоритмы
и средства
3.1. Организация памяти современного компьютера
3.2. Функции операционной системы по управлению памятью
3.3. Алгоритмы распределение памяти
3.3.1. Классификация методов распределения памяти
3.3.2. Распределение памяти фиксированными разделами
3.3.3. Распределение памяти динамическими разделами
3.3.4. Распределение памяти перемещаемыми разделами
3.4. Виртуальная память
3.4.1. Методы структуризации виртуального адресного пространства
3.4.2. Страничная организация виртуальной памяти
3.4.3. Оптимизация функционирования страничной виртуальной памяти
3.4.4. Сегментная организация виртуальной памяти
Операционные системы
2
Литература
Базовый учебник с. 139 - 177
Л1 с. 162 – 210;
Л2 с. 357 – 380, 391 – 431;
Л4 с. 217 - 259
Операционные системы
3
3.1. Организация памяти современного компьютера
3.1.1. Логическая организация памяти: Линейное (одномерное)
адресное пространство, отражающее особенности аппаратного обеспечения,
но не соответствующее современной технологии создания программного
обеспечения.
Для эффективной работы с пользовательскими программами
необходимо чтобы:
 Модули могли быть созданы и скомпилированы независимо друг от
друга, при этом все ссылки из одного модуля в другой разрешаются
системой во время работы программы.
 Разные модули могли получать разные степени защиты (только чтение,
только исполнение и т. п.) за счет весьма умеренных накладных расходов.
 Возможно применение механизма, обеспечивающего совместное
использование модулей разными процессами (для случая сотрудничества
разных процессов в работе над одной задачей).
Операционные системы
4
3.1.2. Физическая организация памяти
Основная память
Центральный
процессор
Кэш второго
уровня
Жесткий
диск
Кэш
диска
Внутренние
регистры
(0,3-0,5 нс.)
МЛ
Сотни с.
Внутренний
кэш, 64 Кбайт,
0,3-0,5 нс.
8 Мбайт
100 Гбайт,
1Мбайт
SRAM, 1-3 нс.
512 Мбайт
DDRAM, 3-6 нс..
Операционные системы
10 мс.
5
Z =1 – Pn, где n – число процессов
20 %
50 %
20%
50%
80 %
80%
Операционные системы
6
3.1.3. Виртуальная память
Виртуализация оперативной памяти осуществляется
совокупностью аппаратных и программных (ОС) средств
вычислительной системы автоматически без участия
программиста и не сказывается на работе приложения.
Методы виртуализации памяти: свопинг (swapping),
виртуальная память (virtual memory).
Достоинства свопинга: малые затраты времени на преобразование адресов в
кодах программ. Недостатки:: избыточность перемещаемых данных, замедление
работы системы, неэффективное использование памяти, невозможность загрузить
процесс, адресное пространство которого превышает объем свободной оперативной
памяти.
Недостатки виртуальной памяти: необходимость преобразования
виртуальных адресов в физические, сложность аппаратной и программной
(ОС) поддержки.
Операционные системы
7
3.2. Функции операционной системы по управлению
памятью
1 Мбайт
ОС в ПЗУ
BIOS
Скрытая
память
Программа
пользователя
Программа
пользователя
640 Кбайт
Программа
пользователя
60 Кбайт
ОС в ОЗУ
ОС в ОЗУ
Распределение памяти в однопрограммных ОС
Операционные системы
8
Функции операционной системы по управлению
памятью в мультипрограммных системах
отслеживание (учет) свободной и занятой памяти;
первоначальное и динамическое распределение памяти процесса
приложений и сомой ОС;
 освобождение памяти при завершении процессов;
настройка адресов программы на конкретную область физической
памяти;
полное или частичное вытеснение кодов и данных процессов из ОП
на диск, когда размеры ОП недостаточны для размещения всех
процессов и возвращение их в ОП;
защита памяти, выделенной процессу, от возможных вмешательств
со стороны других процессов;
дефрагментация памяти.
Операционные системы
9
Типы адресов
Идентификаторы переменных в
программе на алгоритмическом языке
Символьные
имена
Транслятор
Виртуальные адреса
Условные адреса, вырабатываемые
транслятором
1. Перемещающий загрузчик (статическое
преобразование)
2. Динамическое преобразование
(аппаратные средства)
Физические адреса
Номера ячеек физической
памяти
Операционные системы
10
3.3. Алгоритмы распределение памяти
3.3.1. Классификация методов распределения памяти
Методы распределения памяти
Без использования
внешней памяти
С использованием
внешней памяти
Фиксированными
разделами
Страничное
распределение
Динамическими
разделами
Сегментное
распределение
Перемещаемыми
разделами
Операционные системы
Сегментно-страничное
распределение
11
3.3.2. Распределение памяти фиксированными
разделами (MFT в OS/360)
8М
Операционная
система 8 М
Операционная
система 8 М
Программа №1, 4М
Программа №1, 4М
8М
8М
8М
Программа №2, 3М
Программа №2, 3М
Программа №3, 7М
Программа №3, 7М
Неиспользованная
память
Разделы одинакового размера
Разделы разного размера
Операционные системы
12
1М
1М
2М
4М
Новые
процессы
2М
Общая очередь
для всех
разделов
8М
4М
8М
Новые
процессы
12 М
12 М
Очереди для
каждого раздела
Операционные системы
13
Распределение памяти фиксированными разделами
1. Разделы одинакового размера. Недостатки:
необходимость разработки оверлеев при больших размерах программ;
неэффективное использование памяти (внутренняя фрагментация)
2. Разделы разного размера. Очередь к каждому разделу.
Достоинство: возможность распределения процессов между разделами с
минимизацией внутренней фрагментации.
Недостаток: возможно неэффективное использование памяти за счет
«простоя» больших разделов при наличии только небольших процессов.
3. Разделы разного размера. Общая очередь к разделам.
Достоинство: улучшается использование памяти.
Достоинства: простота, минимальные требования к операционной
системе.
Недостатки: 1) количество разделов, определенных во
время генерации ОС (режим MFT OS/360), ограничивает число
активных процессов; 2) неэффективное использование памяти.
Операционные системы
14
3.3.3. Распределение памяти динамическими разделами
ОС
ОС
ОС
P1
P1
P2
P2
P3
P3
P6
P4
t0
ОС
ОС
P1
P3
P6
P5
P5
P5
t1
t2
t3
Операционные системы
tk
15
Распределение памяти динамическими разделами
Достоинства: большая гибкость по сравнению с
фиксированными разделами. Недостаток: внешняя
фрагментация
Функции ОС для реализации метода MVT OS/360 (ЕС ЭВМ):
 ведение таблиц свободных и занятых областей ОП с указанием
начального адреса и размера ;
 при создании нового раздела просмотр таблиц и выбор раздела,
достаточного для размещения процесса (наименьший или
наибольший достаточный из свободных);
 загрузка процесса в выделенный раздел и корректировка таблиц
свободных и занятых областей основной памяти;
 после завершения процесса корректировка таблиц свободных и
занятых областей.
Операционные системы
16
3.3.4. Распределение памяти перемещаемыми разделами
ОС
ОС
P1
P1
P2
a
P3
P4
P2
b
P3
P5
P5
P4
c
P6
P7
P5
d
P6
P7
e
a+b+c+d+e
Процедура
сжатия
Операционные системы
17
Распределение памяти перемещаемыми разделами
1.
Перемещение всех занятых участков в сторону старших или младших
адресов при каждом завершении процесса или для вновь создаваемого
процесса в случае отсутствия раздела достаточного размера.
2.
Коррекция таблиц свободных и занятых областей.
3.
Изменение адресов команд и данных, к которым обращаются процессы
при их перемещении в памяти за счет использования относительной
адресации.
4.
Аппаратная поддержка процесса динамического преобразования
относительных адресов в абсолютные адреса основной памяти.
5.
Защита памяти, выделяемой процессу, от взаимного влияния других
процессов.
Достоинства распределения памяти перемещаемыми разделами:
эффективное использование оперативной памяти, исключение внутренней и
внешней фрагментации. Недостаток: дополнительные накладные расходы
ОС.
Операционные системы
18
ОС
Базовый регистр ОС
Начальный
адрес процесса
Относительный
адрес
Управляющий
блок процесса
Программа
Сумматор
ОС
Граничный регистр
Компаратор
Прерывание ОС
Данные
Абсолютный
адрес
Стек
Аппаратная поддержка перемещения
Операционные системы
19
3.4. Виртуальная память
3.4.1. Методы структуризации виртуального адресного пространства
1962 г. – Kilburn T. и др. “One –Level Storage System”
Методы реализации виртуальной памяти:
1.
Страничная виртуальная память – организует перемещение данных
между ОП и диском страницами – частями виртуального адресного
пространства фиксированного и сравнительно небольшого размера.
2.
Сегментная виртуальная память предусматривает перемещение данных
сегментами – частями виртуального адресного пространства
произвольного размера, полученными с учетом смыслового значения
данных.
3.
Сегментно-страничная виртуальная память использует двухуровневое
деление: виртуальное адресное пространство делится на сегменты, а затем
сегменты делятся на страницы. Единицей перемещения данных является
страница.
4.
Для временного хранения сегментов и страниц на диске отводится
специальная область – страничный файл или файл подкачки (paging file).
Операционные системы
20
3.4.2. Страничная организация виртуальной памяти
Таблица страниц
процесса 1
Nф.с. P A D W
Виртуальные
страницы
Виртуальное адресное
пространство процесса 1
0
1
2
.
.
0
1
2
3
4
k
Виртуальное адресное
пространство процесса 2
n
Виртуальные
страницы
1
0
1
ВП
Стр. 4 процесса 1
Стр. 1 процесса 2
ВП
9
2
Таблица страниц
процесса 2
0
1
2
1
5
Nф.с.
0
1
2
3
4
3
Физическая
память
P A
D W
1
1 0
0
Стр. 0 процесса 1
Стр. 3 процесса 1
Страничный обмен
Магнитный диск
Операционные системы
21
0
1
2
3
4
5
6
7
8
9
..
..
Виртуальный адрес
ОС
Номер виртуальной
Смещение в
страницы
виртуальной странице
Начальный адрес
таблицы страниц
P
AT
+
SV
P
Оперативная память
N2
A D W Nф.с.
1 0
1 0
N1
1 0
0 0
N2
1 0
1 0
SF
SF
N2
Таблица
страниц
Операционные системы
0
22
3.4.3. Оптимизация функционирования страничной
виртуальной памяти
Методы повышения эффективности функционирования
страничной виртуальной памяти:
1. Структуризация виртуального адресного пространства,
например, двухуровневая (типичная для 32-битовой
адресации).
2. Хранение активной части записей таблицы страниц в
высокоскоростном КЭШе или буфере быстрого
преобразования адреса (translation lookaside buffer – TLB).
3. Выбор оптимального размера страниц.
4. Эффективное управление страничным обменом,
использование оптимальных алгоритмов замены страниц.
Операционные системы
23
Двухуровневая страничная организация
Виртуальный адрес
10 бит
10 бит
12 бит
N физ. стр. Смещение
Регистр
процессора
Указатель на
корневую
таблицу страниц
4 Кбайт
+
+
Корневая таблица
страниц (1024 записи)
Страничное
прерывание
Операционные системы
Оперативная
память
Таблица страниц размером
4 Кбайт (1024 записи)
24
Виртуальный адрес
Номер страницы
Смещение
Буфер быстрого преобразования адреса
Основная
память
TLB
Поиск в TLB
успешен
Внешняя
память
Поиск в TLB
неуспешен
Таблица
страниц
Загрузка
страницы
N физ. Стр
Смещение
Обновление
таблицы страниц
Ошибка обращения к странице (страничное прерывание)
Операционные системы
25
Ассоциативное отображение
Номер страницы
Смещение
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
Операционные системы
26
Виртуальный адрес
N вирт. стр.
Значение
Смещение
Отсутствует
TLB
Кэш
Отсутствует
Имеется
N физ. стр. Смещение
Таблица
страниц
Взаимодействие кэша основной памяти и TLB
Операционные системы
Оперативная
память
27
Оптимальный размер страниц
2.
С уменьшением размера страницы увеличивается объем страничных таблиц и
следовательно накладные расходы на работу виртуальной памяти.
3.
С увеличением размера страниц повышается скорость работы диска.
4.
Частота страничных прерываний нелинейно зависит от размера страниц
Размер страницы
P
P – размер процесса в страницах
Частота возникновения прерываний
из-за отсутствия страниц
С уменьшением размера страницы уменьшается внутренняя фрагментация.
Частота возникновения прерываний
из-за отсутствия страниц
1.
N – общее количество страниц процесса
W
N
Количество выделенных
физических страниц
W – размер рабочего множества
Операционные системы
28
Управление страничным обменом
Задачи управления страничным обменом:
 - когда передавать страницу в основную память;
 - где размещать страницу в физической памяти;
 - какую страницу основной памяти выбирать для
замещения, если в основной памяти нет свободных страниц;
 - сколько страниц процесса следует загрузить в основную
память;
 - когда измененная страница должна быть записана во
вторичную память;
 - сколько процессов размещать в основной памяти.
Операционные системы
29
НАИМЕНОВАНИЕ
Стратегия выборки
(когда?)
Стратегия размещения
(где?)
Стратегия замещения
(какие?)
Управление резидентным
множеством
(сколько?)
Стратегия очистки
(когда?)
Управление загрузкой
(сколько?) и
приостановкой
процессов
ВОЗМОЖНЫЕ АЛГОРИТМЫ
По требованию, предварительная выборка
Первый подходящий раздел для сегментной
виртуальной памяти. Любая страница физической
памяти для сегментно-страничной и страничной
организации памяти.
Оптимальный выбор, дольше всех не
использовавшиеся, первым вошел – первым вышел
(FIFO), часовой, буферизация страниц.
Фиксированный размер, переменный размер,
локальная и глобальная области видимости.
По требованию, предварительная очистка
Рабочее множество, критерии L = S (среднее
время между прерываниями = среднему
времени обработки прерывания) и 50%
Операционные системы
30
Часовая стратегия замещения
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 = 1
use = 0
4
Состояние буфера перед
замещением страниц
1
2
3
Состояние буфера после
замещения страниц
Операционные системы
31
3.4.4. Сегментная организация виртуальной памяти
Виртуальное адресное
пространство
При компиляции возможно создание следующих
сегментов:
1.
Исходный текст, сохраненный для печати
листинга программы.
2.
Символьная таблица, содержащая имена и
атрибуты переменных.
3.
Таблица констант.
Таблица констант
4.
Дерево грамматического разбора, содержащее
синтаксический анализ программы.
Свободно
5.
Стек, используемый для процедурных вызовов
внутри компилятора.
Стек вызовов
Дерево
синтаксического
анализа
Исходный текст
Таблица кодировки
символов
Таблица кодировки
символов достигла
таблицы с исходным
текстом
Операционные системы
32
Сравнение страничной и сегментной организации памяти
Вопрос
Страничная
Сегментация
Нужно ли программисту знать о том,
что используется эта техника?
Нет
Да
Сколько в системе линейных
адресных пространств?
1
Много
Может ли суммарное адресное
пространство превышать размеры
физической памяти?
Да
Да
Нет
Да
Легко ли размещаются таблицы с
непостоянными размерами?
Нет
Да
Облегчен ли совместный доступ
пользователей к процедурам?
Зачем была придумана
эта техника?
Нет
Да
Возможно ли разделение процедур и
данных, а также раздельная защита для
них?
Чтобы получить
большое линейное
адресное
пространство без
затрат
на
Операционные
системы
физическую память
Для разбиения
программ и данных на
независимые адресные
пространства,
облегчения защиты и
33
совместного доступа
Виртуальный адрес
Номер сегмента - N
Смещение - S
Таблица сегментов
+
Базовый
Управляющая
информация Размер адрес
Управляющая
информация:
P – присутствие;
M – модификация;
U – использование;
Sh – разделение;
S – защита.
Физический
адрес
Недостатки сегментной организации: 1. Увеличение времени
преобразования виртуального адреса в физический. 2. Избыточность
перемещаемых данных. 3. Внешняя фрагментация памяти.
Операционные системы
34
Номер физ. Смещение
страницы
Сегментно-страничная организация виртуальной памяти
Программа
Указатель Начальный
на таблицу адрес таблицы
сегментов сегментов
Смещение
Механизм сегментации
+
Начальный
адрес таблицы
страниц
Таблица
страниц
+
Таблица
сегментов
Номер страницы
Номер сегмента
Номер
сегмента
Номер
страницы Смещение
Виртуальный адрес
Механизм страничной
Операционные системы организации
Основная
память
35
ВП 2
ВП N
Оперативная
память
ВП 1
ВП 2
ВП N
Оперативная
память
ВП 1
Способы создания разделяемого сегмента памяти
Операционные системы
36
Виртуальная память Windows обеспечивает каждому процессу: 1. 4 Гбайт
виртуального адресного пространства (2 Гбайт – ОС, 2 Гбайт – пользовательская
программа). 2. 16 К независимых сегментов (8к локальных и 8К глобальных).
Процесс
LDTR
ОС и системные сегменты
СЕЛЕКТОР
GDTR
Индекс – номер сегмента (13 разр.)
LDT - локальная
таблица дескрипторов
прикладного процесса
Дескриптор сегмента
GDT – глобальная
таблица
дескрипторов
процессов ОС и
системных сегментов
1
2
Уровень привилегий
RPL = 0 - 3
GDT – 0, LDT - 1
Начальный адрес сегмента в
физической памяти
Операционные системы
37
Система защиты использует
переменные, характеризующие уровень
привилегий:
-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
селектора, указывающего на запрашиваемый сегмент.
Операционные системы
38
Скачать