Составители:
страниц EXE - модуля происходит по мере необходимости. Образно говоря, программа
сперва начинает исполняться, а потом загружается в память. Если программа записана
на дискете, то она перед началом исполнения переписывается в файл подкачки.
Рис.4.6. Алгоритм организации доступа к данным.
Для поддержания иллюзии огромного адресного пространства менеджеру вирту-
альной памяти необходимо знать, как правильно организовать данные. Все операции
распределения памяти, которые процесс выполняет в выделенном ему диапазоне вирту-
альных адресов, записываются в виде дерева дескрипторов виртуальных адресов - VAD
(Virtual Address Descriptor). Каждый раз при выделении программе памяти VMM создает
дескриптор виртуального адреса (VAD) и добавляет его" к дереву (рис.4.7) [12]. VAD
содержит информацию о запрашиваемом диапазоне адресов, статусе защиты всех стра-
ниц в указанном диапазоне, а также о том, могут ли дочерние процессы наследовать
объекты, которые находятся в данном диапазоне адресов. Если поток использует адрес,
который не определен ни в одном дескрипторе, менеджер виртуальной памяти воспри-
нимает его как адрес, который никогда не резервировался, вследствие чего возникает
ошибка доступа.
Намного проще формировать VAD, чем создавать таблицу страниц и заполнять ее
адресами действительных страничных блоков. Кроме того, объем выделенной памяти не
влияет на скорость проведения операции. Резервирование 2 Кб происходит не быстрее,
чем выделение 2 Мб: по каждому запросу создается один дескриптор. Если поток ис-
109
страниц EXE - модуля происходит по мере необходимости. Образно говоря, программа
сперва начинает исполняться, а потом загружается в память. Если программа записана
на дискете, то она перед началом исполнения переписывается в файл подкачки.
Рис.4.6. Алгоритм организации доступа к данным.
Для поддержания иллюзии огромного адресного пространства менеджеру вирту-
альной памяти необходимо знать, как правильно организовать данные. Все операции
распределения памяти, которые процесс выполняет в выделенном ему диапазоне вирту-
альных адресов, записываются в виде дерева дескрипторов виртуальных адресов - VAD
(Virtual Address Descriptor). Каждый раз при выделении программе памяти VMM создает
дескриптор виртуального адреса (VAD) и добавляет его" к дереву (рис.4.7) [12]. VAD
содержит информацию о запрашиваемом диапазоне адресов, статусе защиты всех стра-
ниц в указанном диапазоне, а также о том, могут ли дочерние процессы наследовать
объекты, которые находятся в данном диапазоне адресов. Если поток использует адрес,
который не определен ни в одном дескрипторе, менеджер виртуальной памяти воспри-
нимает его как адрес, который никогда не резервировался, вследствие чего возникает
ошибка доступа.
Намного проще формировать VAD, чем создавать таблицу страниц и заполнять ее
адресами действительных страничных блоков. Кроме того, объем выделенной памяти не
влияет на скорость проведения операции. Резервирование 2 Кб происходит не быстрее,
чем выделение 2 Мб: по каждому запросу создается один дескриптор. Если поток ис-
109
Страницы
- « первая
- ‹ предыдущая
- …
- 105
- 106
- 107
- 108
- 109
- …
- следующая ›
- последняя »
