double arrow

Адресное пространство процесса Win32 в ОС Windows

В версиях Windows, предшествующих Windows 95, все запущенные программы работали в одном адресном пространстве. Это значит, что любая программа могла читать из памяти другой программы. Более того, программа могла модифицировать память другой программы, что вызвало серьезные неприятности при работе ненадежных программ.

В Windows 2000 каждый процесс Win32 работает в своем собственном адресном пространстве.

Несмотря на важность разделения адресного пространства, некоторые области памяти должны совместно использоваться всеми процессами (например, системные библиотеки DLL).

 
 

В адресном пространстве 4 Гбайт Windows резервирует снизу 2 Гбайт под память приложения. Адреса свыше 2 Гбайт отведены для ОС.

Нижние 4 Мбайт отводятся под образ MS DOS, загрузка которого является частью загрузочного процесса Windows, и под сегменты 16 - разрядного пространства.

Область от 4 Мбайт до 2 Гбайт отводится под адресное пространство процессов.

Верхняя половина адресного пространства разделена на две области. Область между 2 и 3 Гбайтом предназначена для использования программами операционной системы.

В нижних адресах этой области расположен остаток 16 – разрядной глобальной кучи. Над глобальной кучей находятся отображенные в память файлы.

Верхушка промежутка между вторым и третьим Гбайтом отведена для 32–разрядных системных DLL (KERNEL32.DLL, GDI32.DLL, ADVAPI32.DLL, USER32.DLL).

Последняя область адресного пространства отведена для компонентов ядра Windows 2000 (VхD).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: