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

Содержание

Слайд 2

Требования к управлению памятью Распределение памяти Фиксированное распределение Распределение разделами переменной

Требования к управлению памятью
Распределение памяти
Фиксированное распределение
Распределение разделами переменной длины
Страничная организация
Свопинг
Виртуальная

память
Понятие и организация
Стратегии размещения и замещения
Управление памятью в UNIX и Linux
Управление памятью в Windows
Слайд 3

Требования к управлению памятью Перемещение Защита Совместное использование Логическая организация Физическая организация

Требования к управлению памятью

Перемещение
Защита
Совместное использование
Логическая организация
Физическая организация

Слайд 4

Распределение памяти Однозадачная система 0 0 0 ОС Программа пользователя Программа

Распределение памяти

Однозадачная система

0

0

0

ОС

Программа пользователя

Программа пользователя

Программа пользователя

Драйверы в ПЗУ

Слайд 5

Распределение статическими разделами одинаковой длины

Распределение статическими разделами одинаковой длины

Слайд 6

Задача А Задача Б Задача В Задача А Задача Б Задача

Задача А

Задача Б

Задача В

Задача А

Задача Б

Задача В

Задача Г

Задача Г

Распределение статическими разделами

переменной длины

Свободная память

Слайд 7

Распределение динамическими разделами 10М 10М 20М 25М 5М 20М 10М 5М 12М

Распределение динамическими разделами

10М

10М

20М

25М


20М

10М


12М

Слайд 8

Алгоритмы размещения Наилучший подходящий Список свободных участков упорядочен по возрастанию объема

Алгоритмы размещения

Наилучший подходящий
Список свободных участков упорядочен по возрастанию объема
Оставшийся свободный фрагмент

попадет в начало списка
Этот фрагмент будет настолько мал, что в нем не сможет разместиться какой-либо раздел
Первый подходящий
Список свободных участков упорядочивается по адресам
В среднем необходимо просматривать половину списка
Память для небольших задач будет выделяться в начале списка
Наименее подходящий
Список свободных участков упорядочивается по убыванию объема
Остаток после размещения задачи достаточно большой для размещения любой задачи
Слайд 9

Страничная организация Память 0 1 2 3 4 5 6 7

Страничная организация

Память

0

1

2

3

4

5

6

7

8

Процесс А

Таблица страниц

1
5
2

А1

А2

А3

Процесс Б

Таблица страниц

7
3
6
8

Б1

Б2

Б3

Б4

Сегментная организация требует дополнительно хранить длину

сегмента
Слайд 10

Свопинг Регистры Кэш ОП ВЗУ Рабочая область памяти Обмен процессов или страниц

Свопинг

Регистры

Кэш

ОП

ВЗУ

Рабочая область памяти

Обмен процессов или страниц

Слайд 11

Виртуальная память Пространство ядра Пространство задачи Каталог таблиц страниц Физическая память

Виртуальная память

Пространство ядра

Пространство задачи

Каталог таблиц страниц

Физическая память

Слайд 12

a b d + + Таблица отображения Адрес таблицы отображения Виртуальный адрес Реальная память d b

a

b

d

+

+

Таблица отображения

Адрес таблицы отображения

Виртуальный адрес

Реальная память

d

b

Слайд 13

Страничная организация Виртуальный адрес Номер страницы Смещение Запись таблицы страниц

Страничная организация

Виртуальный адрес

Номер страницы

Смещение

Запись таблицы страниц

Слайд 14

Сегментная организация Виртуальный адрес Номер сегмента Смещение Запись таблицы страниц Р

Сегментная организация

Виртуальный адрес

Номер сегмента

Смещение

Запись таблицы страниц

Р

М

Начальный адрес сегмента

Управляющие биты

Длина

Слайд 15

Стратегии размещения и замещения Стратегии выборки – определяет какие блоки загружать

Стратегии размещения и замещения

Стратегии выборки – определяет какие блоки загружать из

ВЗУ
По требованию
Предварительно
Стратегии размещения - где размещать подгружаемые блоки (сегментная организация)
Первый подходящий
Очередной подходящий
Наименее подходящий
Стратегии замещения – какие блоки выгружать из оперативной памяти на диск
Самая старая страница
Не использовавшаяся в последнее время страница
Страница, не использовавшаяся дольше всего
Слайд 16

Управление памятью в UNIX SVR4 использует две раздельные схемы управления памятью.

Управление памятью в UNIX

SVR4 использует две раздельные схемы управления памятью.
Страничная система

распределяет кадры основной памяти среди процессов.
Для управления памятью ядра используется другой механизм.
Слайд 17

Страничная система Таблица страниц Для каждого процесса используется одна таблица страниц,

Страничная система

Таблица страниц
Для каждого процесса используется одна таблица страниц, в которой

каждой странице виртуальной памяти процесса соответствует одна запись. Эта запись имеет следующую структуру.
Номер кадра. Указывает кадр в физической памяти.
Возраст. Указывает, как долго страница находится в памяти без обращения к ней.
Копирование при записи. Устанавливается, когда страница разделяется несколькими процессами. Если один из процессов производит запись в страницу, сначала должны быть сделаны отдельные копии страницы для каждого из совместно использующих ее процессов.
Модифицирована. Указывает, изменено ли содержимое страницы.
Обращения. Указывает, что к странице было обращение.
В памяти. Указывает, что страница находится в оперативной памяти.
Защита. Указывает, что разрешена запись.
Слайд 18

Дескриптор дискового блока В этой таблице каждой странице процесса соответствует запись,

Дескриптор дискового блока
В этой таблице каждой странице процесса соответствует запись, описывающая

дисковую копию этой страницы.
Номер устройства свопинга. Номер логического устройства вторичной памяти, хранящего соответствующую страницу.
Номер блока устройства. Расположение блока страницы на устройстве вторичной памяти.
Тип памяти. Вторичная память может представлять модуль свопинга или исполнимый файл. В последнем случае имеется признак, указывающий, должна ли распределяемая виртуальная память быть предварительной очищенной.
Слайд 19

Запись таблицы кадров Описывает каждый кадр реальной памяти, таблица проиндексирована номерами

Запись таблицы кадров
Описывает каждый кадр реальной памяти, таблица проиндексирована номерами кадров.
Состояние

страницы. Указывает свободен ли кадр или содержит страницу. В этом случае указывает статус страницы: на устройстве свопинга, в выполнимом файле или выполняется прямое обращение к памяти.
Количество ссылок. Количество процессов, использующих страницу.
Логическое устройство. Логическое устройство, содержащее копию страницы.
Номер блока. Расположение блока копии страницы на логическом устройстве.
Указатель на данные кадра. Указатель на другие записи таблицы в списке свободных страниц или в хэш-таблице.
Слайд 20

Таблица использования свопинга Для каждого устройства свопинга имеется своя таблица, в

Таблица использования свопинга
Для каждого устройства свопинга имеется своя таблица, в которой

для каждой страницы на этом устройстве имеется своя запись.
Количество ссылок. Количество записей таблицы страниц, указывающих на страницы на устройстве свопинга.
Идентификатор страницы. Идентификатор страницы в модуле страничной памяти.
Слайд 21

Откачку страниц, не входящих в рабочие наборы процессов, производит специальный системный

Откачку страниц, не входящих в рабочие наборы процессов, производит специальный

системный процесс - stealer. Он начинает работать, когда количество страниц в списке свободных страниц достигает установленного нижнего порога.
Алгоритм замещения в SVR4 представляет собой усовершенствованный часовой алгоритм (алгоритм с двумя стрелками). Алгоритм использует бит обращений для каждой из страниц памяти.
Работа алгоритма характеризуется двумя параметрами.
Частота сканирования. Частота, с которой указатели сканируют список страниц (кадров в секунду).
Охват. Интервал между передним и задним указателями.
Слайд 22

Слайд 23

Распределение памяти ядра В системе двойников память распределяется блоками длиной 2K.

Распределение памяти ядра

В системе двойников память распределяется блоками длиной 2K.
L<=K<=U,
где 2L

– min размер выделяемого блока памяти,
2U – max распределяемый блок (2U – размер всей доступной для распределения памяти).
При запросе памяти размером S, таким, что
2U-1выделяется весь блок
В противном случае, блок разделяется на два эквивалентных двойника с размерами 2U-1
Если 2U-2
Слайд 24

Управление памятью в Windows Невыгружаемый пул Выгружаемый пул Таблицы страниц процесса

Управление памятью в Windows

Невыгружаемый пул

Выгружаемый пул

Таблицы страниц процесса

Стек, данные и т.д.

HAL+OS

Системные

данные

Приватные данные и программа

0

2 Гб

4 Гб

Нижние и верхние 64 Кб не действительны

Виртуальное адресное пространство процесса

Слайд 25

Backing store on disk Файл подкачки lib.dll Prog1.exe Prog2.exe

Backing store on disk

Файл подкачки

lib.dll
Prog1.exe

Prog2.exe

Слайд 26

Системные вызовы

Системные вызовы

Слайд 27

Слайд 28

Запись таблицы страниц (PTE)

Запись таблицы страниц (PTE)