Операционная система Windows 95 для программиста



    d8ef8794     

Адресация памяти - часть 2


Системная область хорошо защищена от обычных приложений и программ DOS, так как последние работают в третьем кольце защиты.

Третий гигабайт виртуального адресного пространства (область совместного использования) нужна для создания блоков памяти, доступных одновременно из нескольких приложений. Из этой области выделяется память для 16-разрядных приложений Windows, а также память, полученная от сервера DPMI.

32-разрядные приложения также работают с этой областью. В частности, здесь находятся некоторые системные 32-разрядные DLL-библиотеки (KERNEL32.DLL , USER32.DLL , GDI32.DLL ), из этой области выделяется память для работы с отображаемыми файлами (об отображаемых файлах мы расскажем в разделе "Изменения в файловой системе"). Кроме того, область совместного использования нужна виртуальным драйверам для создания глобальных блоков памяти, доступных в любой момент времени.

Область, которая простирается от границы первых 4 Мбайт до границы 2 Гбайт содержит адресное пространство текущего 32-разрядного процесса (который в данный момент активен). Здесь размещается исполнимый код процесса, его данные и полученные динамически блоки памяти. Защита адресных пространств разных процессов достигается при помощи механизма страничной адресации.

И, наконец, первые четыре мегабайта виртуального адресного пространства зарезервированы для системы. К этой области имеют доступ 16-разрядные приложения Windows и программы DOS, причем текущая виртуальная машина располагается в пределах первого мегабайта. Остальные три мегабайта нужны для загрузки резидентных программ и драйверов DOS (теперь вряд ли вы теперь сможете пожаловаться на то, что для резидентных программ и драйверов выделяется слишком мало памяти). Заметим также, что первые четыре мегабайта виртуального адресного пространства недоступны для 32-разрядных приложений.




Содержание  Назад  Вперед