Основы операционных систем
Часть III. Управление памятью Лекция 8. Простейшие схемы управления памятью
Иерархия памяти Вторичная память Оперативная память Кэш Регистры Стоимость одного бита Время доступа Объем Управляется ОС Управляется менеджером памяти
Принцип локальности Большинство реальных программ в течение некоторого отрезка времени работает с небольшим набором адресов памяти – это принцип локальности Принцип локальности связан с особенностями человеческого мышления
Проблема разрешения адресов Человеку свойственно символическое мышление. Адреса (имена) переменных описываются идентификаторами, формируя символьное адресное пространство Оперативная физическая память может быть представлена в виде массива ячеек с линейными адресами. Совокупность всех доступных физических адресов в вычислительной системе – это ее физическое адресное пространство Как ? Когда ?
Связывание адресов Другие объектные модули модули Загрузчик Двоичный образ в памяти Системные библиотеки Динамические библиотеки ПроцессориБУП Исходная программа Компилятор Объектныймодуль Редактор связей Загрузочный модуль Этап компиляции Этап загрузки Этап выполнения
Логическое адресное пространство Символьное адресное пространство – совокупность всех допустимых идентификаторов переменных Логическое адресное пространство – совокупность всех допустимых адресов, с которыми работает процессор Физическое адресное пространство – совокупность всех доступных физических адресов в вычислительной системе
Функции ОС и hardware для управления памятью Отображение логического адресного пространства процесса на физическое адресное пространство Отображение логического адресного пространства процесса на физическое адресное пространство Распределение памяти между конкурирующими процессами Распределение памяти между конкурирующими процессами Контроль доступа к адресным пространствам процессов Контроль доступа к адресным пространствам процессов Выгрузка процессов (целиком или частично) во внешнюю память Выгрузка процессов (целиком или частично) во внешнюю память Учет свободной и занятой памяти Учет свободной и занятой памяти
Однопрограммная вычислительная система ОС ОС 0 Процесс пользователя
Схема с фиксированными разделами ОС 0 Раздел 1 Раздел 2 Раздел 3 Задание 1 Задание 2 Задание 3 Задание 4 Очередь заданий Очереди заданий Процесс 1 Процесс 2 Процесс 3
Внутренняя фрагментация ОС 0 Раздел 1 Раздел 2 Раздел 3 Процесс 1 Процесс 2 Процесс 3 Внутренняя фрагментация – «потеря» части памяти, выделенной процессу, но не используемой им
Способы организации больших программ Оверлейная структура Оверлейная структура Программа разбивается на несколько частей. Постоянно в памяти находится только загрузчик оверлеев, небольшое количество общих данных и процедур, а части загружаются по очереди Динамическая загрузка процедур Динамическая загрузка процедур Процедуры загружаются в память только по мере необходимости, после обращения к ним Оба способа основаны на применении принципа локальности
Схема с динамическими разделами ОС память время Очередь заданий P1 время P2 время P3 время P4 время P1 время 5 P3 время 16 P3 время 11 P4 время 4 P5 270
Схема с динамическими разделами Стратегии размещения нового процесса в памяти Первый подходящий (first-fit). Процесс размещается в первое подходящее по размеру пустое место Первый подходящий (first-fit). Процесс размещается в первое подходящее по размеру пустое место Наиболее подходящий (best-fit). Процесс размещается в наименьшее подходящее по размеру пустое место Наиболее подходящий (best-fit). Процесс размещается в наименьшее подходящее по размеру пустое место Наименее подходящий (worst-fit). Процесс размещается в наибольшее пустое место Наименее подходящий (worst-fit). Процесс размещается в наибольшее пустое место
Схема с динамическими разделами ОС память время Очередь заданий P1 время P3 время P4 время 8 650
Схема с динамическими разделами ОС P1 время P3 время P4 время Внешняя фрагментация – невозможность использования памяти, неиспользуемой процессами, из-за ее раздробленности Возможна и внутренняя фрагментация при почти полном заполнении процессом пустого фрагмента
Схема с динамическими разделами ОС P4P4P4P4 650 P P3 Сборка мусора CPU Сегментный регистр + Память Логический адрес Физический адрес MMU – БУП
Линейное непрерывное отображение Логическое адресное пространство Физическое адресное пространство 0100 NN+100
Линейное кусочно-непрерывное отображение Логическое адресное пространство Физическое адресное пространство Page 0 Page 1 Page 2 Page 3 Page 4 Кадр 0 Кадр 1 Кадр 2 Кадр 3 Кадр 4 Кадр 5 Кадр 6 Кадр 7 Кадр 8 Логический адрес = Npage*size + offset (Npage, offset) Физический адрес = Nframe*size + offset (Nfrаme, offset) Страничная организация памяти Таблица страниц Npage -> Nframe Серый цвет – занятое место Свойственна внутренняя фрагментация
Линейное кусочно-непрерывное отображение Страничная организация памяти CPU Логический адрес offsetpage Таблица страниц кадр Память Физический адрес offsetкадр MMU атрибуты
Линейное кусочно-непрерывное отображение Логическое адресное пространство Физическое адресное пространство Логический адрес – двумерный = (Nseg, offset) Физический адрес линейный = физический адрес начала сегмента + offset Сегментная организация памяти Сег мент 1 Сег мент 2 Сег мент 3 Серый цвет – занятое место 0 00 Свойственна внешняя фрагментация
Линейное кусочно-непрерывное отображение адрес начала размер Сегментная организация памяти CPU Логический адрес offsetNseg Таблица сегментов Память Физический адрес Максимальный размер сегмента адрес начала +
Линейное кусочно-непрерывное отображение адрес начала размер Сегментная организация памяти CPU Логический адрес offsetNseg Таблица сегментов Память Физический адрес Максимальный размер сегмента Offset
Линейное кусочно-непрерывное отображение адресразмер Сегментно-страничная организация памяти CPU Логический адрес Offset внутри сегмента Nseg Таблица сегментов Память Физический адрес Максимальный размер сегмента Offset у сегмента