Составители:
Рубрика:
ционной системы Windows, которая отвечает за преобразование ссылок на
виртуальные адреса памяти в ссылки на реальную физическую память. Ме-
неджер виртуальной памяти принимает решения о том, где размещать каждый
объект памяти и какие страницы памяти записать на диск. Он также выделяет
каждому выполняемому процессу отдельное адресное пространство, отказыва-
ясь преобразовывать виртуальные адреса одного процесса в адреса физической
памяти, используемой другим процессом. VMM поддерживает иллюзию
«идеализированного» адресного пространства объемом 2 Гб (подобно GDI, ко-
торый создает видимость того, что каждая программа выводит графические
данные в координатном пространстве «идеализированного» логического уст-
ройства). Система преобразует логические адреса памяти или логические ко-
ординаты в физические и предотвращает конфликты между программами из-за
попыток одновременного использования одного и того же ресурса. Рассмот-
рим более подробно механизм образования виртуальной памяти.
3.2. Механизм образования виртуальной памяти в ОС Windows
Физическая память делится на страницы (pages) размером 4 096 байт
(4 КБ). Следовательно, каждая страница начинается с адреса, в котором млад-
шие 12 бит нулевые. Машина, оснащенная 8 МБ памяти, содержит
2 048 страниц. Операционная система Windows хранит набор таблиц страниц
(каждая таблица сама представляет собой страницу) для преобразования вир-
туального адреса в физический.
Каждый процесс, выполняемый в Windows, имеет свою собственную
страницу каталога (directory page) таблиц страниц, которая содержит до 1 024
32-разрядных дескрипторов таблиц страниц. Физический адрес страницы ка-
талога таблиц страниц хранится в регистре CR3 микропроцессора. Содержи-
мое этого регистра изменяется при переключении Windows управления между
процессами. Старшие 10 бит виртуального адреса определяют один из 1 024
возможных дескрипторов в каталоге таблиц страниц. В свою очередь, старшие
20 бит дескриптора таблицы страниц определяют физический адрес таблицы
страниц (младшие 12 бит физического адреса равны нулю). Каждая таблица
страниц содержит в свою очередь до 1 024 32-разрядных дескрипторов стра-
ниц. Выбор одного из этих дескрипторов определяется содержимым средних
10 битов исходного виртуального адреса. Старшие 20 бит дескриптора страни-
цы определяют физический адрес начала страницы, а младшие 12 бит вирту-
ального адреса определяют физическое смещение в пределах этой страницы.
На рис. 3.3 представлена схема организации виртуального адресного про-
странства.
Очевидно, это сложно понять с первого раза. Проиллюстрируем этот про-
цесс еще раз в символьной форме [1]. Вы можете представить 32-разрядный
виртуальный адрес (с которым оперирует программа) в виде 10-разрядного
39
ционной системы Windows, которая отвечает за преобразование ссылок на
виртуальные адреса памяти в ссылки на реальную физическую память. Ме-
неджер виртуальной памяти принимает решения о том, где размещать каждый
объект памяти и какие страницы памяти записать на диск. Он также выделяет
каждому выполняемому процессу отдельное адресное пространство, отказыва-
ясь преобразовывать виртуальные адреса одного процесса в адреса физической
памяти, используемой другим процессом. VMM поддерживает иллюзию
«идеализированного» адресного пространства объемом 2 Гб (подобно GDI, ко-
торый создает видимость того, что каждая программа выводит графические
данные в координатном пространстве «идеализированного» логического уст-
ройства). Система преобразует логические адреса памяти или логические ко-
ординаты в физические и предотвращает конфликты между программами из-за
попыток одновременного использования одного и того же ресурса. Рассмот-
рим более подробно механизм образования виртуальной памяти.
3.2. Механизм образования виртуальной памяти в ОС Windows
Физическая память делится на страницы (pages) размером 4 096 байт
(4 КБ). Следовательно, каждая страница начинается с адреса, в котором млад-
шие 12 бит нулевые. Машина, оснащенная 8 МБ памяти, содержит
2 048 страниц. Операционная система Windows хранит набор таблиц страниц
(каждая таблица сама представляет собой страницу) для преобразования вир-
туального адреса в физический.
Каждый процесс, выполняемый в Windows, имеет свою собственную
страницу каталога (directory page) таблиц страниц, которая содержит до 1 024
32-разрядных дескрипторов таблиц страниц. Физический адрес страницы ка-
талога таблиц страниц хранится в регистре CR3 микропроцессора. Содержи-
мое этого регистра изменяется при переключении Windows управления между
процессами. Старшие 10 бит виртуального адреса определяют один из 1 024
возможных дескрипторов в каталоге таблиц страниц. В свою очередь, старшие
20 бит дескриптора таблицы страниц определяют физический адрес таблицы
страниц (младшие 12 бит физического адреса равны нулю). Каждая таблица
страниц содержит в свою очередь до 1 024 32-разрядных дескрипторов стра-
ниц. Выбор одного из этих дескрипторов определяется содержимым средних
10 битов исходного виртуального адреса. Старшие 20 бит дескриптора страни-
цы определяют физический адрес начала страницы, а младшие 12 бит вирту-
ального адреса определяют физическое смещение в пределах этой страницы.
На рис. 3.3 представлена схема организации виртуального адресного про-
странства.
Очевидно, это сложно понять с первого раза. Проиллюстрируем этот про-
цесс еще раз в символьной форме [1]. Вы можете представить 32-разрядный
виртуальный адрес (с которым оперирует программа) в виде 10-разрядного
39
Страницы
- « первая
- ‹ предыдущая
- …
- 37
- 38
- 39
- 40
- 41
- …
- следующая ›
- последняя »
