Лекция 06. Управление памятью.ppt
- Количество слайдов: 46
Управление памятью
Управление памятью • Память является важнейшим ресурсом, требующим тщательного управления со стороны мультипрограммной ОС. • Распределению подлежит вся оперативная память, не занятая ОС.
Основные функции ОС по управлению памятью • учет свободной и занятой памяти; • выделение памяти процессам и освобождение памяти при завершении процессов; • вытеснение процессов из оперативной памяти на диск, при нехватке основной памяти, и возвращение их в оперативную память, когда в ней освобождается место; • настройка адресов программы на конкретную область физической памяти.
Типы адресов • Для идентификации переменных и команд используются символьные имена, виртуальные и физические адреса. • Символьные имена присваивает программист при написании программы. • Виртуальные адреса формируются транслятором. Совокупность виртуальных адресов процесса называется виртуальным адресным пространством. • Физические адреса соответствуют номерам ячеек оперативной памяти, где в действительности будут расположены переменные и команды.
Типы адресов
Переход от виртуальных адресов к физическим • Способ 1. Перемещающий загрузчик на основании исходных данных о начальном адресе физической памяти, в которую предстоит загружать программу, и информации, предоставленной транслятором об адресно-зависимых константах программы, выполняет загрузку программы, совмещая ее с заменой виртуальных адресов физическими. • Способ 2. Программа загружается в память в неизмененном виде в виртуальных адресах, а ОС фиксирует смещение действительного расположения программного кода относительно виртуального адресного пространства. Во время выполнения программы при каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический.
Переход от виртуальных адресов к физическим • Второй способ более гибок, он допускает перемещение программы во время ее выполнения, в то время как перемещающий загрузчик жестко привязывает программу к первоначально выделенному ей участку памяти. • Но, использование перемещающего загрузчика уменьшает накладные расходы, так как преобразование каждого виртуального адреса происходит только один раз во время загрузки.
Методы распределения памяти без использования дискового пространства
Схема с фиксированными разделами (a) с общей очередью процессов, (b) с отдельными очередями процессов.
Схема с фиксированными разделами • Достоинства: – простота реализации. • Недостатки: – число одновременно выполняемых процессов ограничено числом разделов; – нерациональное использование памяти.
Распределение памяти динамическими разделами
Распределение памяти динамическими разделами • Программный код не перемещается во время выполнения, следовательно может быть проведена единовременная настройка адресов посредством использования перемещающего загрузчика.
Задачи ОС при распределении памяти динамическими разделами • ведение таблиц свободных и занятых областей, в которых указываются начальные адреса и размеры участков памяти; • при поступлении новой задачи - анализ запроса, просмотр таблицы свободных областей и выбор раздела, размер которого достаточен для размещения поступившей задачи, • загрузка задачи в выделенный ей раздел и корректировка таблиц свободных и занятых областей, • после завершения задачи корректировка таблиц свободных и занятых областей.
Распределение памяти динамическими разделами • Выбор раздела для вновь поступившей задачи может осуществляться по разным правилам: – Стратегия первого подходящего (First fit). Задание помещается в первый подходящий по размеру раздел. – Стратегия наиболее подходящего (Best fit). Задание помещается в тот раздел, где ему наиболее тесно. – Стратегия наименее подходящего (Worst fit). При помещении в самый большой раздел в нем остается достаточно места для возможного размещения еще одного процесса.
Распределение памяти динамическими разделами • Достоинства: – Лишен недостатков предыдущего метода; • Недостатки: – фрагментация памяти. • Фрагментация - это наличие большого числа несмежных участков свободной памяти очень маленького размера. Причем, ни одна из вновь поступающих программ не может поместиться ни в одном из участков, хотя суммарный объем фрагментов может составить значительную величину, намного превышающую требуемый объем памяти.
Перемещаемые разделы
Перемещаемые разделы • Так как программы перемещаются по оперативной памяти в ходе своего выполнения, то преобразование адресов из виртуальной формы в физическую должно выполняться динамическим способом.
Перемещаемые разделы • Достоинства: – Лишен недостатков двух предыдущих методов – более эффективное использование памяти • Недостатки: – процедура сжатия может потребовать значительного времени.
Методы распределения памяти с использованием дискового пространства
Оверлеи • • Оверлеями называются части кода программы, совместно использующие общую область памяти. Одновременно в памяти находятся только те части программы, которые в текущий момент нужны данной функции. При помощи оверлеев можно создавать программы, значительно превышающие по размеру общую доступную память системы, поскольку одновременно в памяти находится лишь часть данной программы. Все оверлеи хранятся на диске и перемещаются между памятью и диском средствами ОС. Однако разбиение программы на части и планирование их загрузки в оперативную память должен осуществлять программист.
Оверлеи
Свопинг (обычная подкачка) • Свопинг – метод управления памятью, при котором любой процесс до завершения своей работы временно может быть выгружен на диск с целью освобождения ОЗУ.
Понятие виртуальной памяти • Виртуальным называется ресурс, который пользователю или пользовательской программе представляется обладающим свойствами, которыми он в действительности не обладает. • Виртуальная память - это совокупность программно-аппаратных средств, позволяющих пользователям писать программы, размер которых превосходит имеющуюся оперативную память; для этого виртуальная память решает следующие задачи: – размещает данные в запоминающих устройствах разного типа, например, часть программы в оперативной памяти, а часть на диске; – перемещает по мере необходимости данные между запоминающими устройствами разного типа, например, подгружает нужную часть программы с диска в оперативную память; – преобразует виртуальные адреса в физические.
Страничное распределение
Страничное распределение • Виртуальное адресное пространство каждого процесса делится на части одинакового, фиксированного для данной системы размера – виртуальные страницы. • Обычно размер виртуального адресного пространства не является кратным размеру страницы, поэтому последняя страница каждого процесса дополняется фиктивной областью. • Вся оперативная память делится на части такого же размера - физические страницы (блоками). • Размер страницы обычно выбирается равным степени двойки: 512, 1024 и т. д. , это позволяет упростить механизм преобразования адресов.
Страничное распределение • При загрузке процесса часть его виртуальных страниц помещается в оперативную память, а остальные - на диск. • При загрузке ОС создает для каждого процесса таблицу страниц, где устанавливается соответствие между номерами виртуальных и физических страниц для страниц, загруженных в оперативную память, или делается отметка о том, что виртуальная страница выгружена на диск. • Дополнительно таблице страниц содержится управляющая информация: – признак модификации страницы, – признак невыгружаемости, – признак обращения к странице и т. д.
В и р т у а л ь н ы е с т р а н и ц ы Виртуальное адресное пространство процесса 1 Таблица страниц пр. 1 0 N в. с. N ф. с. 1 0 5 2 1 ВП 3 2 ВП 4 3 10 4 2 Фиктивная область с т р а н и ц ы Виртуальное адресное пространство процесса 2 Упр. инф. Физическая память 0 1 4 пр. 1 N ф. с. 0 0 8 1 1 ВП 2 2 ВП 3 3 ВП 4 4 4 0 пр. 1 5 7 11 Vвирт. стр. = Vфиз. стр. = 2 k Регистр адреса таблицы страниц Упр. инф. 5 6 ВП 5 2 3 Таблица страниц пр. 2 N в. с. N физ. стр. 0 пр. 2 8 9 3 пр. 1 10 5 пр. 2 11 12 13 14 Страничный обмен
Страничное распределение – схема работы 1. Активизация процесса и загрузка адреса таблицы страниц в спец. регистр ЦП. 2. Чтение из таблицы страниц информации о виртуальной странице, к которой произошло обращение. 3 а. Если данная виртуальная страница находится в оперативной памяти, выполняется преобразование виртуального адреса в физический. 3 б. Если нужная виртуальная страница выгружена на диск, происходит страничное прерывание. Активный процесс переводится в состояние ожидания, активизируется другой процесс из очереди готовых. Параллельно происходит поиск на диске и загрузка в ОП требуемой виртуальной страницы. Если в памяти имеется свободная физическая страница, то загрузка выполняется немедленно, если свободных страниц нет, то решается вопрос, какую страницу следует выгрузить из оперативной памяти.
Критерии выбора страницы на выгрузку • Выгружается: – дольше всего не использовавшаяся страница, – первая попавшаяся страница, – страница, к которой в последнее время было меньше всего обращений.
Преобразования виртуального адреса в физический памяти Т. к. размер страницы равен степени 2 это позволяет применить операцию конкатенации (присоединения) вместо более длительной операции сложения, что уменьшает время получения физического адреса, а значит повышает производительность компьютера.
Недостатки страничного распределения • Невозможно дифференцировать способы доступа к разным частям программы (сегментам). • Невозможно разделение одного сегмента несколькими процессами.
Сегментное распределение
Сегментное распределение – схема работы • • • При загрузке процесса часть сегментов помещается в оперативную память, а часть сегментов размещается в дисковой памяти. Сегменты одной программы могут занимать в оперативной памяти несмежные участки. Во время загрузки ОС создает таблицу сегментов процесса, в которой для каждого сегмента указывается: – – • начальный физический адрес сегмента в оперативной памяти, размер сегмента, правила доступа, признаки модификации, обращения к сегменту и т. д. Если виртуальные адресные пространства нескольких процессов включают один и тот же сегмент, то в таблицах сегментов этих процессов делаются ссылки на один и тот же участок оперативной памяти, в который данный сегмент загружается в единственном экземпляре.
Сегментное распределение – схема работы • Система с сегментной организацией функционирует аналогично системе со страничной организацией: – периодически происходят прерывания, связанные с отсутствием нужных сегментов в памяти, – при необходимости освобождения памяти некоторые сегменты выгружаются, – при каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический.
Сегментное распределение – недостатки • фрагментация на уровне сегментов; • более медленное по сравнению со страничной организацией преобразование адреса.
Странично-сегментное распределение
Иерархия запоминающих устройств.
Иерархия запоминающих устройств. • Память вычислительной машины представляет собой иерархию запоминающих устройств: внутренние регистры процессора, различные типы сверхоперативной и оперативной памяти, диски, ленты), отличающихся средним временем доступа и стоимостью хранения данных в расчете на один бит.
Кэш-память • Кэш-память - это способ организации совместного функционирования двух типов запоминающих устройств, отличающихся временем доступа и стоимостью хранения данных, который позволяет уменьшить среднее время доступа к данным за счет динамического копирования в "быстрое" ЗУ наиболее часто используемой информации из "медленного" ЗУ.
• В реальных системах вероятность попадания в кэш составляет примерно 0, 9. • Высокое значение вероятности нахождения данных в кэш-памяти связано с наличием у данных объективных свойств: пространственной и временной локальности.
• Пространственная локальность. Если произошло обращение по некоторому адресу, то с высокой степенью вероятности в ближайшее время произойдет обращение к соседним адресам. • Временная локальность. Если произошло обращение по некоторому адресу, то следующее обращение по этому же адресу с большой вероятностью произойдет в ближайшее время.


