Электронный учебник:


Курс лекций:


Дополнительно:

Практикум:



Наши хостеры:

Механизмы управления памятью Windows

            Разделы 1 и 2 предназначены для совместимости с MS-DOS и 16-битной Windows. Разница в том, что 1 не доступен. При попытке доступа возникает нарушение доступа. Раздел 2 доступен по чтению/записи. Раздел 3 имеет размер 2 Гб - 4 Мб. В нем находится личное адресное пространство процесса. В Win32 никакой другой процесс не имеет доступа к этому разделу. Основной объем данных принадлежащий процессу хранится именно в этом разделе, то есть, если посмотреть заголовок, то адрес любого exe файла для Win 95, 98 будет 0040:0000. В разделе 4 размером 1 Гб Windows 95, 98 хранит данные, доступные всем Win32 процессам. Сюда загружаются kernel32.dll, gdi32.dll, user32.dll. Линейные адреса этого раздела отображаются на одни и те же страницы физической памяти, если сюда записать что-нибудь, то Windows зависнет. В разделе 5, размер которого 1 Гб, находится код ОС, то есть тот код, который находится в кольце 0. Это виртуальные драйверы, низкоуровневые процедуры управления файлами. Этот раздел также доступен всем процессам. Искажение информации в этом разделе грозит краху ОС.

            Деление на разделы в Windows NT, 2000.

0000:FFFF

0000:0000

 

7FFF:FFFF

7FFF:0000

 

FFFF:FFFF

8000:0000

 

7FFE:FFFF

0001:0000

 
           

                        4                                              ОС

                        3                                              Для выявления указателей с неправильным значением

                        2                                              Адресное пространство процесса

                        1                                              Для выявления указателей с неправильным значением

            Разделы 1 и 3 предназначены для выявления указателей с неправильным значением. При выявлении неправильного значения ОС генерирует нарушение доступа. Эти разделы "охраняют" разделы 2 и 4.

            Раздел 2 - это область размером 2 Гб-128 Кб. Это личное адресное пространство конкретного процесса, причем эта область доступна данному процессу. В этой же области находятся все системные библиотеки пользовательского режима kernel32.dll и user32.dll. Если какой-либо процесс искажает системную dll, то эта ошибка скажется только на этом процессе. Если посмотреть любое exe приложение под Windows NT, Windows 2000, то начальный адрес будет 0001:0000.

предыдущаяследующая