Управление оперативной памятью. Основные задачи: 1.Контроль состояния каждой единицы памяти (свободна/распределена). 2.Стратегия распределения памяти.

Презентация:



Advertisements
Похожие презентации
Управление оперативной памятью 1.Контроль состояния каждой единицы памяти (свободна/распределена) 2.Стратегия распределения памяти (кому, когда и сколько.
Advertisements

Лекция 5 Управление памятью Виртуальное адресное пространство Непрерывное…..
Управление памятью. В ИРТУАЛЬНАЯ ПАМЯТЬ Основная идея заключается в разбиении программы на части, и в память эти части загружаются по очереди. Программа.
Процессоры Intel в защищенном режиме. Недостатки реального режима Невозможно адресовать пространство памяти свыше 1-го Мб Невозможно работать с массивами,
Операционные системы Управление памятью Скрипов Сергей Александрович 2009.
Управление памятью. Модели памяти Линейное адресное пространство Страничная организация Сегментная организация Комбинированное определение адреса Виртуальная.
Учебный курс Операционные среды, системы и оболочки Лекция 9 Лекции читает доктор технических наук, профессор Назаров Станислав Викторович.
Алгоритмы замещения страниц
1 Управление памятью Системное и прикладное программное обеспечение Малышенко Владислав Викторович.
Виртуальная память. Управление памятью объединяет три задачи Динамическое распределение памяти Отображение виртуальных адресов программы на физические.
Физические модели баз данных Файловые структуры, используемые для хранения информации в базах данных.
Основы операционных систем.
Лекция 7 Управление памятью Сегментная, страничная и сегментно- страничная организация памяти.
1 ЛЕКЦИЯ 3 ХАРАКТЕРИСТИКА ЗАЩИЩЕННОГО РЕЖИМА РАБОТЫ МИКРОПРОЦЕССОРА В реальном режиме работы поддерживается выполнение всего одной программы. Для этого.
Операционные системы, среды и оболочки Управление памятью.
Прерывания Определение прерывания Прерывания представляют собой механизм, позволяющий координировать параллельное функционирование отдельных устройств.
«Компьютер фон Неймана»: Джон фон Нейман (John Von Neumann) EDVAC (Electronic Discrete Variable Computer - Электронный Компьютер Дискретных Переменных)
Лекция 5 Управление памятью Виртуальное адресное пространство.
Операционные системы1 Тема 3. Управление памятью. Методы, алгоритмы и средства Методы, алгоритмы и средства Автор: доктор технических наук, профессор Назаров.
Операционные системы Управление памятью Скрипов Сергей Александрович 2009.
Транксрипт:

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

Основные задачи: 1.Контроль состояния каждой единицы памяти (свободна/распределена). 2.Стратегия распределения памяти (кому, когда и сколько памяти должно быть выделено). 3.Выделение памяти (выбор конкретной области, которая должна быть выделена). 4.Стратегия освобождения памяти (процесс освобождает, ОС забирает окончательно или временно).

Стратегии и методы управления: 1.Одиночное непрерывное распределение. 2.Распределение разделами. 3.Распределение перемещаемыми разделами. 4.Страничное распределение. 5.Сегментное распределение. 6.Сегменто-страничное распределение. Управление оперативной памятью План рассмотрения стратегий управления: 1.Основные концепции. 2.Необходимые аппаратные средства. 3.Основные алгоритмы. 4.Достоинства, недостатки.

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

Одиночное непрерывное распределение Необходимые аппаратные средства: Регистр границ + режим ОС / режим пользователя. Если ЦП в режиме пользователя попытается обратиться в область ОС, то возникает прерывание. Алгоритмы: очевидны. Недостатки: 1.Часть памяти не используется. 2.Процессом/заданием память занимается все время выполнения. 3.Ограничение на размеры задания. Достоинства: простота.

Распределение неперемещаемыми разделами Основные концепции: Раздел 1 Раздел 2 Раздел N ОС … … … … … N входных очередей (Вариант А) Одна очередь (Вариант Б)

Распределение неперемещаемыми разделами Необходимые аппаратные средства: 1.Два регистра границ. Недостатки: а. перегрузка регистра границ при каждой смене контекста; б. сложности при использовании каналов/процессоров ввода/вывода. 2.Ключи защиты (PSW).

Распределение неперемещаемыми разделами Алгоритмы: Модель статического определения разделов А. Сортировка входной очереди процессов по отдельным очередям к разделам. Процесс размещается в разделе минимального размера, достаточного для размещения данного процесса. В случае отсутствия процессов в каких-то под очередях – неэффективность использования памяти.

Распределение неперемещаемыми разделами Алгоритмы: Модель статического определения разделов Б. Одна входная очередь процессов. 1. Освобождение раздела поиск (в начале очереди) первого процесса, который может разместиться в разделе. Проблема: большие разделы маленькие процессы. 2. Освобождение раздела поиск процесса максимального размера, не превосходящего размер раздела. Проблема: дискриминация маленьких процессов. 3. Оптимизация варианта 2. Каждый процесс имеет счетчик дискриминации. Если значение счетчика процесса K, то обход его в очереди невозможен.

Распределение неперемещаемыми разделами Недостатки: 1.Фрагментация. 2.Ограничение размерами физической памяти. 3.Весь процесс размещается в памяти – возможно неэффективное использование. Достоинства: 1.Простое средство организации мультипрограммирования. 2.Простые средства аппаратной поддержки. 3.Простые алгоритмы.

Распределение перемещаемыми разделами Основные концепции: ОС V 1 процесс 1 V 2 свободно V 3 процесс 2 V 4 процесс 3 V 5 свободно V 1 процесс 1 V 3 процесс 2 V 4 процесс 3 V 2 +V 5 свободно Виртуальная память Процесс 4 (например, V= V 2 +1/2V 5 )

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

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

Страничное распределение Основные концепции: Виртуальное адр. пр-во виртуальная - страница K-3 K-2 K-1 × × × L-1 Пространство физической памяти Таблица страниц:

Страничное распределение Основные концепции: Таблица страниц – отображение номеров виртуальных страниц на номера физических. Проблемы: 1. Размер таблицы страниц (количество 4кб страниц при 32-х разрядной адресации – Любой процесс имеет собственную таблицу страниц). 2. Скорость отображения.

Страничное распределение Необходимые аппаратные средства: 1.Полностью аппаратная таблица страниц (стоимость, полная перегрузка при смене контекстов, скорость преобразования). 2.Регистр начала таблицы страниц в памяти (простота, управление смены контекстов, медленное преобразование). 3.Гибридные решения.

Страничное распределение Алгоритмы и организация данных: Размеры таблицы страниц – иерархическая организация таблицы страниц. Модельная структура записи таблицы страниц Номер физич. стр. α – присутствие/отсутствие β – защита (чтение, чтение/запись, выполнение) γ – изменения δ – обращение (чтение, запись, выполнение) ε – блокировка кэширование αβ γ δ ε

TLB (Translation Lookaside Buffer) TLB вирт. стр. физ. стр.... miss hit VP offset Вирт. адрес: fpoffset Физический адрес: Таблица страниц: Физическая память:...

Иерархическая организация таблицы страниц Пример: Проблема – размер таблицы страниц. Объем виртуальной памяти современного компьютера ,…2 64 V вирт. = 2 32 V стр. = 2 12 (4Kb) Количество виртуальных страниц – 2 20 (много) Решение – использование многоуровневых таблиц страниц (2 х, 3 х, 4 х )

Иерархическая организация таблицы страниц Двухуровневая организация VPOffset VP 1 VP Индекс по «внешней» таблице страниц Смещение по странице, указанной через VP 1

Иерархическая организация таблицы страниц Внешняя таблица страниц (в заштрихованных строках таблицы вид присутствия/отсутствия – вызовет прерывание) Таблица страниц второго уровня Физическая память VP 2 VP 1

Иерархическая организация таблицы страниц Остается проблема для 64-х разрядных вычислительных систем (иерархические решения => количество уровней неприемлемо).

Использование хэштаблиц Обычно используются для адресации Используется больше 32 разрядов. VP offset FP offset VP 1 FP 1 VP 2 FP 2 VPFP … … Физическая память f(VP) Хэш таблица Хэш функция

Инвертированные таблицы страниц PidVPOffset PidVP поиск: FP Offset Таблица страниц Проблема – поиск по таблице Использование хэширования

Замещение страниц Проблема загрузки «новой» страницы в память. Необходимо выбрать страницу для удаления из памяти (с учетом ее модификации и пр.) Алгоритм NRU (Not Recently Used – не использовавшийся в последнее время) Используются биты статуса страницы в записях таблицы страниц R - обращение M - изменение устанавливаются аппаратно обнуление – программно (ОС)

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

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

Замещение страниц Алгоритм FIFO «Первым прибыл – первым удален» - простейший вариант FIFO. (проблемы «справедливости») Модификация алгоритма (алгоритм вторая попытка): 1.Выбирается самая «старая страница». Если R=0, то она заменяется 2.Если R=1, то R – обнуляется, обновляется время загрузки страницы в память (т.е. переносится в конец очереди). На п.1

Замещение страниц Алгоритм «Часы» 1.Если R=0, то выгрузка страницы и стрелка на позицию вправо. 2.Если R=1, то R-обнуляется, стрелка на позицию вправо и на П.1.

Замещение страниц Алгоритм LDU (Least Recently Used – «менее недавно» - наиболее давно используемая страница) Вариант возможной аппаратной реализации. Памяти N – страниц. Битовая матрица NxN (изначально все биты обнулены). При каждом обращении к i ой странице происходит присваивание 1 всем битам i ой строки и обнуление все битов i го столбца. Строка с наименьшим 2 ным кодом соответствует искомой странице.

Замещение страниц Алгоритм NFU (Not Frequently Used – редко использовавшаяся страница) Программная модификация LRU. Для каждой физической страницы i – программный счетчик Count i 0. Изначально Count i – обнуляется для всех i. 1.По таймеру Count i = Count i + R i Выбор страницы с минимальным значением {Count i } Недостатки: - «помнит» старую активность; - при большой активности, возможно переполнение и обнуление счетчика.

Замещение страниц Модификация NFU – алгоритм старения Модификация: 1.Значение счетчика сдвигается на 1 разряд вправо. 2.Значение R добавляется в крайний левый разряд счетчика.

Сегментная организация памяти Основные концепции: Виртуальное адресное пространство представляется в виде совокупности сегментов Каждый сегмент имеет свою виртуальную адресацию (от 0 до N-1) Виртуальный адрес:

Сегментная организация памяти Необходимые аппаратные средства: Виртуальный адрес: N seg offset sizebase N seg Таблица сегментов offset > size да Прерывание нет base + offset Физический адрес

Сегменто-страничная организация памяти Основные концепции: N seg N page offset Необходимые аппаратные средства: Упрощенная модель Intel. селектор offset N seg локализация защита Таблицы локальных дескрипторов (сегменты доступные для данного процесса) LDT (Local Descriptor Table) Таблица глобальных дескрипторов (разделяемые между процессами сегменты) GDT (Global Descriptor Table) Каждая запись LDT и GDT – полная информация о сегменте (адрес базы, размер и т.д.). Виртуальный адрес:

Сегменто-страничная организация памяти Необходимые аппаратные средства: Виртуальный адресЛинейный адресФизический адресP1P1 P2P2 offset использование селектора и содержимого таблиц LDT и GDT двухуровневая страничная организация