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

Содержание

Слайд 2

Одиночное непрерывное распределение Распределение разделами Распределение перемещаемыми разделами Страничное распределение Сегментное

Одиночное непрерывное распределение
Распределение разделами
Распределение перемещаемыми разделами
Страничное распределение
Сегментное распределение
Сегментно-страничное распределение

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

Основные

концепции
Необходимые аппаратные средства
Основные алгоритмы
Достоинства, недостатки

Стратегии и методы управления

План рассмотрения стратегий управления

Слайд 3

Одиночное непрерывное распределение Основные концепции Реально используется Выделено, но не используется Доступно (выделено) ОС

Одиночное непрерывное распределение

Основные концепции

Реально
используется

Выделено, но
не используется

Доступно
(выделено)

ОС

Слайд 4

Одиночное непрерывное распределение Регистр границ + режим ОС / режим пользователя

Одиночное непрерывное распределение

Регистр границ + режим ОС / режим пользователя
Если ЦП

в режиме пользователя попытается обратиться в область ОС, то возникает прерывание

Алгоритмы: очевидны.

Часть памяти не используется
Процессом/заданием память занимается все время выполнения
Ограничение на размеры задания

Достоинства: простота.

Необходимые аппаратные средства

Недостатки

Слайд 5

Распределение неперемещаемыми разделами Основные концепции Раздел1 Раздел2 РазделN N входных очередей

Распределение неперемещаемыми разделами

Основные концепции

Раздел1

Раздел2

РазделN

N входных очередей
(Вариант А)

Одна очередь
(Вариант B)

Слайд 6

Распределение неперемещаемыми разделами Два регистра границ Ключи защиты (PSW) Необходимые аппаратные средства

Распределение неперемещаемыми разделами

Два регистра границ
Ключи защиты (PSW)

Необходимые аппаратные средства

Слайд 7

Распределение неперемещаемыми разделами Модель статического определения разделов А. Сортировка входной очереди

Распределение неперемещаемыми разделами

Модель статического определения разделов
А. Сортировка входной очереди процессов по отдельным

очередям к разделам. Процесс размещается в разделе минимального размера, достаточного для размещения данного процесса. В случае отсутствия процессов в каких-то подочередях — неэффективность использования памяти.

Алгоритмы

Слайд 8

Распределение неперемещаемыми разделами Модель статического определения разделов Б. Одна входная очередь

Распределение неперемещаемыми разделами

Модель статического определения разделов
Б. Одна входная очередь процессов
Освобождение раздела ⇒

поиск (в начале очереди) первого процесса, который может разместиться в разделе.
Проблема: большие разделы ↔ маленькие процессы
Освобождение раздела ⇒ поиск процесса максимального размера, не превосходящего размер раздела.
Проблема: дискриминация «маленьких» процессов
Оптимизация варианта 2. Каждый процесс имеет счетчик дискриминации. Если значение счетчика процесса ≥ K, то обход его в очереди невозможен

Алгоритмы

Слайд 9

Распределение неперемещаемыми разделами Фрагментация Ограничение размерами физической памяти Весь процесс размещается

Распределение неперемещаемыми разделами

Фрагментация
Ограничение размерами физической памяти
Весь процесс размещается в памяти —

возможно неэффективное использование

Простое средство организации мультипрограммирования
Простые средства аппаратной поддержки
Простые алгоритмы

Достоинства

Недостатки

Слайд 10

Распределение перемещаемыми разделами Основные концепции Виртуальная память Процесс4 (например, V = V2+ ½ V5 )

Распределение перемещаемыми разделами

Основные концепции

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

Процесс4
(например, V = V2+ ½ V5 )

Слайд 11

Распределение перемещаемыми разделами Регистры границ + регистр базы Ключи + регистр базы Алгоритмы: Необходимые аппаратные средства

Распределение перемещаемыми разделами

Регистры границ + регистр базы
Ключи + регистр базы

Алгоритмы:

Необходимые аппаратные

средства
Слайд 12

Распределение перемещаемыми разделами Ограничение размером физической памяти Затраты на перекомпоновку Ликвидация фрагментации Достоинства Недостатки

Распределение перемещаемыми разделами

Ограничение размером физической памяти
Затраты на перекомпоновку

Ликвидация фрагментации

Достоинства

Недостатки

Слайд 13

Страничное распределение Основные концепции Виртуальное адресное пространство виртуальная страница Пространство физической памяти Таблица страниц

Страничное распределение

Основные концепции

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

виртуальная
страница

Пространство
физической памяти

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

Слайд 14

Страничное распределение Таблица страниц — отображение номеров виртуальных страниц на номера

Страничное распределение

Таблица страниц — отображение номеров виртуальных страниц на номера физических.

Основные

концепции

Размер таблицы страниц (количество 4KB страниц при 32-х разрядной адресации — 1 000 000; любой процесс имеет собственную таблицу страниц)
Скорость отображения

Проблемы

 

 

 

 

 

 

 

 

 

         

         

Слайд 15

Страничное распределение Полностью аппаратная таблица страниц (стоимость, полная перегрузка при смене

Страничное распределение

Полностью аппаратная таблица страниц (стоимость, полная перегрузка при смене контекстов,

скорость преобразования)
Таблица страниц в ОЗУ + Регистр начала таблицы страниц в памяти (простота, управление смены контекстов, медленное преобразование)
Гибридные решения

Необходимые аппаратные средства

Слайд 16

Страничное распределение Размер и организация таблицы страниц ??? α — присутствие/отсутствие

Страничное распределение

Размер и организация таблицы страниц ???

α — присутствие/отсутствие
β — защита (чтение, чтение/запись,

выполнение)
γ — изменения
δ — обращение (чтение, запись, выполнение)
ε — ……………………..

Алгоритмы и организация данных

Модельная структура записи таблицы страниц

Слайд 17

TLB (Translation Lookaside Buffer) TLB miss hit Виртуальный адрес Физический адрес Таблица страниц Физическая память

TLB (Translation Lookaside Buffer)

TLB

miss

hit

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

Физический
адрес

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

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

Слайд 18

Иерархическая организация таблицы страниц Пример Проблема — размер таблицы страниц. Объем

Иерархическая организация таблицы страниц

Пример

Проблема — размер таблицы страниц.

Объем виртуальной памяти современного

компьютера — 232…264 байт

Vвирт.= 232

Vстр. = 212 (4KB)

Количество виртуальных страниц — 220 (много)

Решение — использование многоуровневых таблиц страниц (2х, 3х, 4х)

Слайд 19

Иерархическая организация таблицы страниц Двухуровневая организация 10 10 12 20 Индекс

Иерархическая организация таблицы страниц

Двухуровневая организация

10

10

12

20

Индекс по «внешней» таблице страниц

Смещение по странице,

указанной через VP1

12

Слайд 20

Иерархическая организация таблицы страниц Внешняя таблица страниц Таблица страниц второго уровня Физическая память VP2 VP1

Иерархическая организация таблицы страниц

Внешняя таблица страниц

Таблица страниц второго уровня

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

VP2

VP1

Слайд 21

Использование хэш-таблиц (функция расстановки) … … Физическая память f(VP) Хэш таблица Хэш функция

Использование хэш-таблиц (функция расстановки)



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

f(VP)

Хэш
таблица

Хэш
функция

Слайд 22

Инвертированные таблицы страниц поиск: FP Таблица страниц Проблема — поиск по

Инвертированные таблицы страниц

поиск:

FP

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

Проблема — поиск по таблице (хэширование)

Решение проблемы перезагрузки

таблицы страниц при смене обрабатываемых ЦП процессов
Слайд 23

Замещение страниц Проблема загрузки «новой» страницы в память. Необходимо выбрать страницу

Замещение страниц

Проблема загрузки «новой» страницы в память. Необходимо выбрать страницу для

удаления из памяти (с учетом ее модификации и пр.)

Алгоритм NRU (Not Recently Used — не использовавшийся в последнее время)

Используются биты статуса страницы в записях таблицы страниц

R — обращение

M — изменение

устанавливаются аппаратно

обнуление — программно (ОС)

Слайд 24

Замещение страниц Алгоритм При запуске процесса M и R для всех

Замещение страниц

Алгоритм

При запуске процесса M и R для всех страниц процесса

обнуляются
По таймеру происходит обнуление всех битов R
При возникновении страничного прерывания ОС делит все страниц на классы:
Класс 0:
Класс 1:
Класс 2:
Класс 3:
Случайная выборка страницы для удаления в непустом классе с минимальным номером
Слайд 25

Замещение страниц Стратегия: лучше выгрузить измененную страницу, к которой не было

Замещение страниц

Стратегия: лучше выгрузить измененную страницу, к которой не было обращений

как минимум в течение 1 «тика» таймера, чем часто используемую страницу
Слайд 26

Замещение страниц Алгоритм FIFO «Первым прибыл — первым удален» — простейший

Замещение страниц

Алгоритм FIFO

«Первым прибыл — первым удален» — простейший вариант FIFO.

Проблема «справедливости»

Выбирается самая «старая страница». Если R=0, то она заменяется
Если R = 1, то R обнуляется, обновляется время загрузки страницы в память (т.е. переносится в конец очереди). На п.1

Модификация алгоритма (алгоритм вторая попытка)

Слайд 27

Замещение страниц Алгоритм «Часы» Если R = 0, то выгрузка страницы

Замещение страниц

Алгоритм «Часы»

Если R = 0, то выгрузка страницы и стрелка

на позицию вправо
Если R = 1, то R обнуляется, стрелка на позицию вправо и на п.1
Слайд 28

Замещение страниц Алгоритм NFU (Not Frequently Used — редко использовавшаяся страница)

Замещение страниц

Алгоритм NFU (Not Frequently Used — редко использовавшаяся страница)

Для каждой

физической страницы i – программный счетчик Counti
0. Изначально Counti – обнуляется для всех i.
1. По таймеру Counti = Counti + Ri
Выбор страницы с минимальным значением Counti

«помнит» старую активность
при большой активности, возможно переполнение счетчика

Недостатки

Слайд 29

Замещение страниц Модификация NFU — алгоритм старения Модификация: Значение счетчика сдвигается

Замещение страниц

Модификация NFU — алгоритм старения

Модификация:
Значение счетчика сдвигается на 1 разряд

вправо
Значение R добавляется в крайний левый разряд счетчика
Слайд 30

Сегментная организация памяти Виртуальное адресное пространство представляется в виде совокупности сегментов

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

Виртуальное адресное пространство представляется в виде совокупности сегментов
Каждый сегмент

имеет свою виртуальную адресацию (от 0 до N – 1)
Виртуальный адрес: <номер_сегмента, смещение>

Основные концепции

Слайд 31

Сегментная организация памяти Виртуальный адрес: Nseg Таблица сегментов offset > size

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

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

Nseg

Таблица
сегментов

offset > size

да

Прерывание

нет

base + offset

Физический
адрес

Необходимые аппаратные средства

Слайд 32

Сегментно-страничная организация памяти Основные концепции:

Сегментно-страничная организация памяти

Основные концепции:

Слайд 33

Сегментно-страничная организация памяти Модельный пример (Intel): Таблицы локальных дескрипторов (сегменты доступные

Сегментно-страничная организация памяти

Модельный пример (Intel):

Таблицы локальных дескрипторов
(сегменты доступные

для данного процесса) LDT (Local Descriptor Table)

Таблица глобальных дескрипторов
(разделяемые между процессами сегменты) GDT (Global Descriptor Table)

Каждая запись LDT и GDT – полная информация о
сегменте (адрес базы, размер и т.д.).

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