Скачать презентацию Управление памятью Управление памятью Память является Скачать презентацию Управление памятью Управление памятью Память является

Лекция 06. Управление памятью.ppt

  • Количество слайдов: 46

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

Управление памятью • Память является важнейшим ресурсом, требующим тщательного управления со стороны мультипрограммной ОС. Управление памятью • Память является важнейшим ресурсом, требующим тщательного управления со стороны мультипрограммной ОС. • Распределению подлежит вся оперативная память, не занятая ОС.

Основные функции ОС по управлению памятью • учет свободной и занятой памяти; • выделение Основные функции ОС по управлению памятью • учет свободной и занятой памяти; • выделение памяти процессам и освобождение памяти при завершении процессов; • вытеснение процессов из оперативной памяти на диск, при нехватке основной памяти, и возвращение их в оперативную память, когда в ней освобождается место; • настройка адресов программы на конкретную область физической памяти.

Типы адресов • Для идентификации переменных и команд используются символьные имена, виртуальные и физические Типы адресов • Для идентификации переменных и команд используются символьные имена, виртуальные и физические адреса. • Символьные имена присваивает программист при написании программы. • Виртуальные адреса формируются транслятором. Совокупность виртуальных адресов процесса называется виртуальным адресным пространством. • Физические адреса соответствуют номерам ячеек оперативной памяти, где в действительности будут расположены переменные и команды.

Типы адресов Типы адресов

Переход от виртуальных адресов к физическим • Способ 1. Перемещающий загрузчик на основании исходных Переход от виртуальных адресов к физическим • Способ 1. Перемещающий загрузчик на основании исходных данных о начальном адресе физической памяти, в которую предстоит загружать программу, и информации, предоставленной транслятором об адресно-зависимых константах программы, выполняет загрузку программы, совмещая ее с заменой виртуальных адресов физическими. • Способ 2. Программа загружается в память в неизмененном виде в виртуальных адресах, а ОС фиксирует смещение действительного расположения программного кода относительно виртуального адресного пространства. Во время выполнения программы при каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический.

Переход от виртуальных адресов к физическим • Второй способ более гибок, он допускает перемещение Переход от виртуальных адресов к физическим • Второй способ более гибок, он допускает перемещение программы во время ее выполнения, в то время как перемещающий загрузчик жестко привязывает программу к первоначально выделенному ей участку памяти. • Но, использование перемещающего загрузчика уменьшает накладные расходы, так как преобразование каждого виртуального адреса происходит только один раз во время загрузки.

Методы распределения памяти без использования дискового пространства Методы распределения памяти без использования дискового пространства

Схема с фиксированными разделами (a) с общей очередью процессов, (b) с отдельными очередями процессов. Схема с фиксированными разделами (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. Активизация процесса и загрузка адреса таблицы страниц в Страничное распределение – схема работы 1. Активизация процесса и загрузка адреса таблицы страниц в спец. регистр ЦП. 2. Чтение из таблицы страниц информации о виртуальной странице, к которой произошло обращение. 3 а. Если данная виртуальная страница находится в оперативной памяти, выполняется преобразование виртуального адреса в физический. 3 б. Если нужная виртуальная страница выгружена на диск, происходит страничное прерывание. Активный процесс переводится в состояние ожидания, активизируется другой процесс из очереди готовых. Параллельно происходит поиск на диске и загрузка в ОП требуемой виртуальной страницы. Если в памяти имеется свободная физическая страница, то загрузка выполняется немедленно, если свободных страниц нет, то решается вопрос, какую страницу следует выгрузить из оперативной памяти.

Критерии выбора страницы на выгрузку • Выгружается: – дольше всего не использовавшаяся страница, – Критерии выбора страницы на выгрузку • Выгружается: – дольше всего не использовавшаяся страница, – первая попавшаяся страница, – страница, к которой в последнее время было меньше всего обращений.

Преобразования виртуального адреса в физический памяти Т. к. размер страницы равен степени 2 это Преобразования виртуального адреса в физический памяти Т. к. размер страницы равен степени 2 это позволяет применить операцию конкатенации (присоединения) вместо более длительной операции сложения, что уменьшает время получения физического адреса, а значит повышает производительность компьютера.

Недостатки страничного распределения • Невозможно дифференцировать способы доступа к разным частям программы (сегментам). • Недостатки страничного распределения • Невозможно дифференцировать способы доступа к разным частям программы (сегментам). • Невозможно разделение одного сегмента несколькими процессами.

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

Сегментное распределение – схема работы • • • При загрузке процесса часть сегментов помещается Сегментное распределение – схема работы • • • При загрузке процесса часть сегментов помещается в оперативную память, а часть сегментов размещается в дисковой памяти. Сегменты одной программы могут занимать в оперативной памяти несмежные участки. Во время загрузки ОС создает таблицу сегментов процесса, в которой для каждого сегмента указывается: – – • начальный физический адрес сегмента в оперативной памяти, размер сегмента, правила доступа, признаки модификации, обращения к сегменту и т. д. Если виртуальные адресные пространства нескольких процессов включают один и тот же сегмент, то в таблицах сегментов этих процессов делаются ссылки на один и тот же участок оперативной памяти, в который данный сегмент загружается в единственном экземпляре.

Сегментное распределение – схема работы • Система с сегментной организацией функционирует аналогично системе со Сегментное распределение – схема работы • Система с сегментной организацией функционирует аналогично системе со страничной организацией: – периодически происходят прерывания, связанные с отсутствием нужных сегментов в памяти, – при необходимости освобождения памяти некоторые сегменты выгружаются, – при каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический.

Сегментное распределение – недостатки • фрагментация на уровне сегментов; • более медленное по сравнению Сегментное распределение – недостатки • фрагментация на уровне сегментов; • более медленное по сравнению со страничной организацией преобразование адреса.

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

Иерархия запоминающих устройств. Иерархия запоминающих устройств.

Иерархия запоминающих устройств. • Память вычислительной машины представляет собой иерархию запоминающих устройств: внутренние регистры Иерархия запоминающих устройств. • Память вычислительной машины представляет собой иерархию запоминающих устройств: внутренние регистры процессора, различные типы сверхоперативной и оперативной памяти, диски, ленты), отличающихся средним временем доступа и стоимостью хранения данных в расчете на один бит.

Кэш-память • Кэш-память - это способ организации совместного функционирования двух типов запоминающих устройств, отличающихся Кэш-память • Кэш-память - это способ организации совместного функционирования двух типов запоминающих устройств, отличающихся временем доступа и стоимостью хранения данных, который позволяет уменьшить среднее время доступа к данным за счет динамического копирования в "быстрое" ЗУ наиболее часто используемой информации из "медленного" ЗУ.

 • В реальных системах вероятность попадания в кэш составляет примерно 0, 9. • • В реальных системах вероятность попадания в кэш составляет примерно 0, 9. • Высокое значение вероятности нахождения данных в кэш-памяти связано с наличием у данных объективных свойств: пространственной и временной локальности.

 • Пространственная локальность. Если произошло обращение по некоторому адресу, то с высокой степенью • Пространственная локальность. Если произошло обращение по некоторому адресу, то с высокой степенью вероятности в ближайшее время произойдет обращение к соседним адресам. • Временная локальность. Если произошло обращение по некоторому адресу, то следующее обращение по этому же адресу с большой вероятностью произойдет в ближайшее время.