Основы программирования в Win32API. Марапулец Ю.В. - 37 стр.

UptoLike

Составители: 

Глава 3. УПРАВЛЕНИЕ ПАМЯТЬЮ В ОС WINDOWS
3.1. Архитектура памяти в ОС Windows
В Win32 API используется плоская 32-разрядная модель памяти. Каждому
процессу выделяется «личное» (private) изолированное адресное пространство,
размер которого составляет 4Gb. Это пространство разбивается на регионы,
немного отличные для Windows 9x и Windows NT. В общем для той и другой
системы можно сказать, что нижние 2Gb этого пространства отведены процес-
су для свободного использования, а верхние 2Gb зарезервированы для исполь-
зования операционной системой. На рис. 3.1. представлена архитектура памяти
Windows 9x, а на рис. 3.2 – Windows NT.
Как видно из данных рисунков, код системы Windows NT лучше защищен
от процесса пользователя, чем код Windows 9x. Это обуславливает большую
устойчивость ОС к ошибкам в прикладной программе.
Используемые прикладными программами Windows 32-разрядные адреса
для доступа к коду и данным не являются 32-разрядными физическими адре-
сами, которые микропроцессор использует для адресации физической памяти
(в настоящее время физическая память размером 2–4 Гб не используется
в ПЭВМ). Поэтому адрес, который используется приложением, является вир-
туальным адресом (virtual address).
API-функции Windows, работающие в логическом адресном пространстве
объемом до 2 Гб, поддерживаются менеджером виртуальной памяти – VMM
(Virtual Memory Manager), который в свою очередь оптимизирован для работы
на современных 32-разрядных процессорах. Для того чтобы аппаратное обес-
печение системы могло использовать 32-разрядную адресацию памяти, Win-
dows обеспечивает отображение физических адресов в виртуальном адресном
пространстве и поддерживает страничную организацию памяти. На этой осно-
ве VMM формирует собственные механизмы и алгоритмы управления вирту-
альной памятью.
37
         Глава 3. УПРАВЛЕНИЕ ПАМЯТЬЮ В ОС WINDOWS


                 3.1. Архитектура памяти в ОС Windows

     В Win32 API используется плоская 32-разрядная модель памяти. Каждому
процессу выделяется «личное» (private) изолированное адресное пространство,
размер которого составляет 4Gb. Это пространство разбивается на регионы,
немного отличные для Windows 9x и Windows NT. В общем для той и другой
системы можно сказать, что нижние 2Gb этого пространства отведены процес-
су для свободного использования, а верхние 2Gb зарезервированы для исполь-
зования операционной системой. На рис. 3.1. представлена архитектура памяти
Windows 9x, а на рис. 3.2 – Windows NT.
     Как видно из данных рисунков, код системы Windows NT лучше защищен
от процесса пользователя, чем код Windows 9x. Это обуславливает большую
устойчивость ОС к ошибкам в прикладной программе.
     Используемые прикладными программами Windows 32-разрядные адреса
для доступа к коду и данным не являются 32-разрядными физическими адре-
сами, которые микропроцессор использует для адресации физической памяти
(в настоящее время физическая память размером 2–4 Гб не используется
в ПЭВМ). Поэтому адрес, который используется приложением, является вир-
туальным адресом (virtual address).
     API-функции Windows, работающие в логическом адресном пространстве
объемом до 2 Гб, поддерживаются менеджером виртуальной памяти – VMM
(Virtual Memory Manager), который в свою очередь оптимизирован для работы
на современных 32-разрядных процессорах. Для того чтобы аппаратное обес-
печение системы могло использовать 32-разрядную адресацию памяти, Win-
dows обеспечивает отображение физических адресов в виртуальном адресном
пространстве и поддерживает страничную организацию памяти. На этой осно-
ве VMM формирует собственные механизмы и алгоритмы управления вирту-
альной памятью.




                                    37