пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ


Архитектура памяти в OC Windows. Виртуальное адресное пространство. Особенности виртуального адресного пространства в Windows 95 и Windows NT

В Win32 виртуальное адресное пространство каждого процесса составляет 4 Гб, т.е. соответствующий 32-битный указатель может быть числом от $00000000 до $FFFFFFFF. 

Для 64-разрядных процессов размер адресного пространства равен 16 экзабайтам, поскольку 64-битный указатель может быть любым числом от 0x00000000 00000000 до 0xFFFFFFFF FFFFFFFF.

 В DOS или в 16-разрядной Windows все процессы находились в едином адресном пространстве, поэтому сбой в процессе A мог привести к краху процесса B или всей ОС.

В Win32 каждому процессу отводится закрытое адресное пространство:

Например, процесс А хранит массив информации по адресу $12345678. В то же время процесс B также хранит свою информацию по тому же адресу $12345678.

Но процесс A имеет доступ к своему массиву, а процесс В к своей информации. Обращаясь к памяти по адресу 0x12345678, потоки, выполняемые в процессе А, получают доступ к структуре данных процесса А, Но, когда по тому же адресу обращаются потоки, выполняемые в процессе В, они получают доступ к структуре данных процесса В. Иначе говоря, потоки процесса А не могут обратиться к структуре данных в адресном пространстве процесса В, и наоборот

 В Windows NT память ОС скрыта от других процессов, но в Windows 95 это не реализовано, поэтому любой процесс может случайным образом нарушить нормальную работу ОС.

Адресное пространство Windows 95:

Различные ОС разбивают адресное пространство на разделы по разному.

$FFFFFFFF

$C0000000

Размер 1Гб. Код ОС, драйвера устройств, диспетчер памяти и т.д. (не защищен, доступен из любых Win32 процессов)

$BFFFFFFF

$80000000

Размер 1 Гб. Используется для системных DLL: Kernel32, User32, GDI32 (не защищен, доступен из любых Win32 процессов)

$7FFFFFFF

$00400000

Размер 2 Гб. Используется для  "личных" нужд процесса.

$003FFFFF

$00001000

Размер 4 Мб-4Кб. Предназначен для поддержки 16 разрядных приложений DOS и Windows.(не защищен, доступен )

$00000FFF

$00000000

Размер 4 Кб. Недоступен для чтения и записи, что позволяет выявлять нулевые указатели

 

 

 

 

 

 

 

 

 

 

 

 

 

Адресное пространство Windows NT:

Различные ОС разбивают адресное пространство на разделы по разному.

$FFFFFFFF

$C0000000

Размер 2Гб. Код ОС, драйвера устройств, диспетчер памяти и т.д. (Недоступен для чтения и записи)

$7FFFFFFF

$7FFF0000

Размер 64 Кб. Недоступен для чтения и записи, что позволяет выявлять неправильные указатели.

$7FFEFFFF

$00010000

Размер 2 Гб-2*64 Кб. Используется для  "личных" нужд процесса.(сюда же загружаются системные DLL)

$0000FFFF

$00000000

Размер 64 Кб. Недоступен для чтения и записи, что позволяет выявлять нулевые указатели.


26.12.2015; 23:13
хиты: 0
рейтинг:0
Точные науки
информатика
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь