Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Запуск исполняемых файлов и динамически связываемых библиотек



При исполнении функции CreateProcess система обращается к VMM для выполнения следующих действий:

1. Создать адресное пространство процесса (размером 4Gb).

2. Резервировать в адресном пространстве процесса регион размером, достаточным для размещения исполняемого файла. Начальный адрес региона определяется в заголовке EXE-модуля. Обычно он равен 0x00400000, но может быть изменен при построении файла параметром /BASE компоновщика.

3. Отобразить исполняемый файл на зарезервированное адресное пространство. Тем самым VMM распределяет физические страницы не из файла подкачки, а непосредственно из EXE-модуля.

4. Таким же образом отобразить на адресное пространство процесса необходимые ему динамически связываемые библиотеки. Информация о необходимых библиотеках находится в заголовке EXE-модуля. Желательное расположение региона адресов описано внутри библиотеки.

При одновременном запуске нескольких приложений Win32® отображает один и тот же исполняемый файл и библиотеки на адресные пространства различных процессов. При этом возникает проблема независимого использования процессами статических переменных и областей данных.

Кроме того, изменение данных исполняющейся программой не должно приводить к изменению EXE-файла. При этом используется классический механизм отложенного копирования (copy-on-write — копирование при попытке записи). Все страницы адресного пространства процесса получают атрибут защиты PAGE_WRITECOPY. При попытке записи в такую страницу возникает исключение нарушения защиты и VMM копирует страницу для обратившегося процесса. В дальнейшем эта страница будет выгружаться в файл подкачки. После копирования происходит рестарт команды, вызвавшей исключение.





Дата публикования: 2015-10-09; Прочитано: 303 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...