Лекция 5 Управление памятью Виртуальное адресное пространство
Управление памятью Иерархическая структура Модуль управления памятью Менеджер памяти Какая часть используется Выделяет процессам Освобождает ресурсы Управляет обменом между оперативной памятью и диском
Настройка адресов и защита Проблема перемещения программ в памяти Разделение памяти на блоки по 2 КБ и добавление защитного кода 4бита Появление Базовых и предельных регистров Минус. Выполнение операции сравнения при каждом обращении к памяти
Основное управление памятью СУП SwappingPaging
Swapping механизм при котором отдельные запущенные процессы (обычно неактивные) перемещаются из ОЗУ на жёсткий диск, освобождая ОЗУ для загрузки других процессов. Основное отличие этого механизма от страничного заключается в том, что процессы перемещаются между ОЗУ и жестким диском целиком, поэтому иногда некоторые процессы могут полностью отсутствовать в ОЗУ. При наступлении условий активизации процесса он возвращается диспетчером памяти в ОЗУ. Существуют различные алгоритмы выбора процессов на загрузку и выгрузку, а также различные способы выделения оперативной и дисковой памяти загружаемому процессу.
Paging Оперативная память делится на страницы: области памяти фиксированной длины (например, 4096 байт), которые являются минимальной единицей выделяемой памяти (то есть даже запрос на 1 байт от приложения приведёт к выделению ему страницы памяти). Процесс обращается к памяти с помощью адреса виртуальной памяти, который содержит в себе номер страницы и смещение внутри страницы. Операционная система преобразует виртуальный адрес в физический, при необходимости подгружая страницу с жёсткого диска в оперативную память. При запросе на выделение памяти операционная система может «сбросить» на жёсткий диск страницы, к которым давно не было обращений. Критические данные (например, код запущенных и работающих программ, код и память ядра системы) обычно находятся в оперативной памяти (исключения существуют, однако они не касаются той части, которая отвечает за использование файла подкачки).
Подкачка ОС А А B А B C B C B C D B C D
Механизмы. Битовые массивы Делят на блоки от нескольких слов до нескольких килобайт. Каждый свободный блок – 0, занятый 1 Чем меньше блок – тем больше битовый массив Основная проблема при перемещении k- блоков, необходимо найти k следующих друг за другом 0-битов
Механизмы. Связных списки Отслеживание занятых и свободных фрагментов памяти Простое изменение списка Простые алгоритмы поиска Первый подходящий участок Следующий подходящий участок Самый подходящий участок Подлежат ускорению если иметь 2 списка (процессов и свободных фрагментов) – самый подходящий победит.
Пример A BC D P05H53P86P144 AXB AX XB X AB A B
Семинар Планировщик Windows Планировщики Linux Алгоритмы свопинга Понятие «Утечки памяти», примеры.