Разделы презентаций


Управление виртуальной памятью в Win32. Общие принципы.

Содержание

Менеджер виртуальной памятиуправление виртуальными адресными пространствами процессов; разделение памяти между процессами; защита виртуальной памяти одного процесса от других процессов.

Слайды и текст этой презентации

Слайд 1Операционные системы
Управление виртуальной памятью в Win32.
Общие принципы.

Операционные системыУправление виртуальной памятью в Win32. Общие принципы.

Слайд 2Менеджер виртуальной памяти
управление виртуальными адресными пространствами процессов;
разделение памяти между

процессами;
защита виртуальной памяти одного процесса от других процессов.

Менеджер виртуальной памятиуправление виртуальными адресными пространствами процессов; разделение памяти между процессами; защита виртуальной памяти одного процесса от

Слайд 3Менеджер виртуальной памяти
Менеджер виртуальной памяти (VMM) является составной частью ядра

ОС. Приложения не могут получить к нему прямой доступ.
Для

управления памятью прикладным программам предоставляются различные интерфейсы (API).
Virtual Memory API - набор функций, позволяющих приложению работать с виртуальным адресным пространством: назначать физические страницы блоку адресов и освобождать их, устанавливать атрибуты защиты.
Memory Mapped File API - набор функций, позволяющий работать с файлами, отображаемыми в память. Новый механизм, предоставляемый Win32 API для работы с файлами и взаимодействия процессов.
Heap Memory API - набор функций, позволяющих работать с динамически распределяемыми областями памяти (кучами).
Local, Global Memory API - набор функций работы с памятью, совместимых с 16-битной Windows. Следует избегать их использования.
CRT Memory API - функции стандартной библиотеки языка “С” периода исполнения (runtime).
Менеджер виртуальной памятиМенеджер виртуальной памяти (VMM) является составной частью ядра ОС. Приложения не могут получить к нему

Слайд 4Архитектура API управления памятью

Архитектура API управления памятью

Слайд 5Адресное пространство процесса
Standart

Enterprise

Адресное пространство процесса Standart

Слайд 6Средства защиты памяти
Объектно-ориентированная защита памяти. Каждый раз, когда процесс

открывает указатель на блок адресов, монитор ссылок безопасности проверяет, разрешен

ли доступ процесса к данному объекту.
Отдельное адресное пространство для каждого процесса. Аппаратура запрещает процессу доступ к физическим адресам другого процесса.
Два режима работы: режим ядра, в котором процессам разрешен доступ к системным данным, и пользовательский режим, в котором это запрещен.
Страничный механизм защиты. Каждая виртуальная страница имеет набор признаков, который определяет разрешенные типы доступа в пользовательском режиме и в режиме ядра.
Принудительная очистка страниц, освобождаемых процессами.
Средства защиты памяти Объектно-ориентированная защита памяти. Каждый раз, когда процесс открывает указатель на блок адресов, монитор ссылок

Слайд 7Операционные системы
Управление виртуальной памятью в Win32.
Страничное преобразование.

Операционные системыУправление виртуальной памятью в Win32. Страничное преобразование.

Слайд 8Страничное преобразование
Виртуальная память в Windows имеет страничную организацию, принятую во

многих современных ОС. Процессоры Intel начиная с Pentium Pro позволяют

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

Страничное преобразованиеВиртуальная память в Windows имеет страничную организацию, принятую во многих современных ОС. Процессоры Intel начиная с

Слайд 9Страничное преобразование
32-разрядный виртуальный адрес в ОС Windows разбивается на три

части:
Старшие 10 разрядов адреса определяют номер одного из 1024 элементов

в каталоге страниц, адрес которого находится в регистре процессора CR3. Этот элемент содержит физический адрес таблицы страниц.
Следующие 10 разрядов линейного адреса определяют номер элемента таблицы. Элемент, в свою очередь, содержит физический адрес страницы виртуальной памяти.
Размер страницы - 4 Кбайт, и младших 12 разрядов линейного адреса как раз хватает (212 = 4096), чтобы определить точный физический номер адресуемой ячейки памяти внутри этой страницы.

Страничное преобразование32-разрядный виртуальный адрес в ОС Windows разбивается на три части:Старшие 10 разрядов адреса определяют номер одного

Слайд 10Cвопинг
Для того, чтобы обеспечить все линейное адресное пространство процесса физическими

ячейками памяти, Windows применяет свопинг.
Организацией свопинга занимается VMM. При генерации

системы на диске образуется специальный файл свопинга, куда записываются те страницы, которым не находится места в физической памяти. Процессы могут захватывать память в своем ВАП и, затем, использовать ее. Страница может иметь различные состояния.
VMM использует локальный алгоритм LRU (Least Recently Used) – замещение дольше всех неиспользовавшихся страниц.
CвопингДля того, чтобы обеспечить все линейное адресное пространство процесса физическими ячейками памяти, Windows применяет свопинг.Организацией свопинга занимается

Слайд 11Страничное преобразование

Элемент таблицы страниц (Page Table Element)

Страничное преобразование Элемент таблицы страниц (Page Table Element)

Слайд 12Элемент таблицы страниц
Защита – Win32 API поддерживает ряд значений, в

том числе: PAGE_NOACCESS, PAGE_READONLY, PAGE_READWRITE, PAGE_EXECUTE.
Базовый физический адрес страницы в

памяти.
Pagefile – индекс используемого файла подкачки (один из 16 возможных в системе файлов).
State – состояние страницы в системе:
T (Transition) – отмечает страницу как переходную;
D (Dirty) – страница, в которую была произведена запись;
P (Present) – страница присутствует в ОП или находится в файле подкачки.
Элемент таблицы страницЗащита – Win32 API поддерживает ряд значений, в том числе: PAGE_NOACCESS, PAGE_READONLY, PAGE_READWRITE, PAGE_EXECUTE.Базовый физический

Слайд 13Отдельные состояния страниц
Valid – страница используется процессом. Она реально существует

в ОП и помечена в PTE как присутствующая в рабочем

множестве процесса (P=1, D=0,1).
Modified – содержимое страницы было изменено (D=1). В PTE страница помечена как отсутствующая (P=0) и переходная (T=1).
Standby – содержимое страницы не изменялось (D=0). В PTE страница помечена как отсутствующая (P=0) и переходная (T=1).
Free – страница, на которую не ссылается ни один PTE. Страница свободна, но подлежит обнулению, прежде чем будет использована.
Zeroed – свободная и обнуленная страница, пригодная к непосредственному использованию любым процессом.
Bad – страница, которая вызывает аппаратные ошибки и не может быть использована ни одним процессом.
Отдельные состояния страницValid – страница используется процессом. Она реально существует в ОП и помечена в PTE как

Слайд 14Отдельные состояния страниц

Отдельные состояния страниц

Слайд 15Стратегия управления виртуальной памятью
Стратегия  выборки (fetch policy)
Стратегия размещения (placement

policy)
Стратегия  замещения (replacement policy)

Стратегия управления виртуальной памятьюСтратегия  выборки (fetch policy) Стратегия размещения (placement policy) Стратегия  замещения (replacement policy)

Слайд 16Стратегия выборки
Стратегия  выборки (fetch policy):
Выборка определяет, в какой момент необходимо

переписать страницу с диска в ОП.
В Windows используется классическая

схема выборки с упреждением: система переписывает в память не только выбранную страницу, но и несколько следующих по принципу пространственной локальности, гласящему: наиболее вероятным является обращение к тем ячейкам памяти, которые находятся в непосредственной близости от ячейки, к которой производится обращение в настоящий момент. Поэтому вероятность того, что будут востребованы последовательные страницы, достаточна высока. Их упреждающая подкачка позволяет снизить накладные расходы, связанные с обработкой прерываний.
Стратегия размещения (placement policy)
Стратегия  замещения (replacement policy)
Стратегия выборкиСтратегия  выборки (fetch policy):Выборка определяет, в какой момент необходимо переписать страницу с диска в ОП. В

Слайд 17Стратегия размещения
Стратегия  выборки (fetch policy)
Стратегия размещения (placement policy):
Размещение определяет,

в какое место оперативной памяти необходимо поместить подгружаемую страницу.
Для

систем со страничной организацией данная стратегия практически не имеет никакого значения, и поэтому Windows выбирает первую попавшуюся свободную страницу.
Стратегия  замещения (replacement policy)
Стратегия размещенияСтратегия  выборки (fetch policy) Стратегия размещения (placement policy):Размещение определяет, в какое место оперативной памяти необходимо поместить

Слайд 18Стратегия замещения
Стратегия  выборки (fetch policy)
Стратегия размещения (placement policy)
Стратегия 

замещения (replacement policy):
Замещение начинает действовать с того момента, когда

в оперативной памяти компьютера не остается свободного места для размещения подгружаемой страницы. В этом случае необходимо решить, какую страницу вытеснить из физической памяти в файл подкачки (свопинг).
Стратегия замещенияСтратегия  выборки (fetch policy) Стратегия размещения (placement policy) Стратегия  замещения (replacement policy): Замещение начинает действовать с

Слайд 19Реализация свопинга

Реализация свопинга

Слайд 20Реализация алгоритма замещения LRU
VMM периодически просматривает список страниц с атрибутом

Valid и пытается похитить их у процесса (1). Он помечает

их как отсутствующие (P=0), но на самом деле оставляет их на месте, только переводит в разряд Modified или Standby в зависимости от значения бита D из PTE.
Если содержимое страницы была изменено в ОП (D=1), то VMM выполнит запись страницы на диск (4).
Если похищенная страница принадлежит рабочему множеству, то к ней в ближайшее время произойдет обращение. Это, конечно, вызовет исключение - ведь страница-то помечена как отсутствующая. Но VMM очень быстро сделает эту страницу вновь доступной процессу, поскольку она реально находится в памяти (2).
Далее если к странице не будет обращений (страница вне рабочего множества), то она со временем перейдет в состояние Free (5) и станет доступна для замещения страниц в рамках данного процесса (6).
Затем системный поток обнуляет страницу - Zeroed (7), и она станет доступна другим процессам системы (8).
Реализация алгоритма замещения LRUVMM периодически просматривает список страниц с атрибутом Valid и пытается похитить их у процесса

Слайд 21Переходы между состояниями страниц

Переходы между состояниями страниц

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика