Хелпикс

Главная

Контакты

Случайная статья





Объект-секция



Объект-секция

Как и в случае других объектов, диспетчер объектов создает и инициализирует заголовок объекта-секции. Диспетчер виртуальной памяти определяет тело объекта-секции и предоставляет сервисы, которые могут вызываться потоками пользовательского режима для чтения и изменения атрибутов, хранящихся в теле объекта-секции (см. Рис. 3. Объект секция).

 

Рис. 3. Объект секция

Максимальный размер – максимальное число байт, до которого может расти размер секции, а в случае проецируемого файла равен размеру файла.

Защита страниц – постраничная защита памяти назначается всем страницам секции при ее создании.

Файл подкачки/проецируемый файл – указывает создана ли секция пустой (резервное хранилище – файл подкачки) или загружена из файла (резервное хранилище – проецируемый файл).

Базированная/небазированная – секция должна располагаться по одному и тому же виртуальному адресу во всех использующих ее процессах или в разных процессах она может располагаться по разным виртуальным адресам.

Отображение проекции секции делает часть секции видимой в виртуальном адресном пространстве некоторого процесса. Аналогично, удаление проекции секции удаляет ее из адресного пространства процесса.

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

Для того чтобы отобразить проекцию секции, процесс должен сначала получить ее описатель. У процесса, создавшего секцию, этот описатель уже есть. Другие процессы могут получить этот описатель, используя именование, наследование или дублирование.

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

Проецируемые файлы применяются для:

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

9 Виртуальная память. Защита памяти в Windows NT.

 

 

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.