Системное ПО
Системное ПО
Системное ПО
Системное ПО
Системное ПО
Системное ПО
Системное ПО
Системное ПО
Системное ПО
290.00K
Category: softwaresoftware

Системное ПО. Память Windows

1. Системное ПО

Память Windows

2. Системное ПО

Общая информация о памяти процесса
Часть адресного пространства процесса используется системой.
Поэтому приложение может использовать далеко не все адреса
своего виртуального адресного пространства.

3. Системное ПО

Общая информация о памяти процесса
Функция GetSystemInfo позволяет получить общую информацию о
памяти:
Как получить информацию:
1. Объявить структуру типа SYSTEM_INFO
2.
Вызвать функцию, передать ей указатель на структуру

4. Системное ПО

Структура SYSTEM_INFO
Общая информация о памяти процесса
dwPageSize – размер
страницы
lpMinimumApplicationAddress,
lpMaximumApplicationAddress –
диапазон виртуальных
адресов, которые может
использовать процесс
dwAllocationGranularity –
определяет
«дискретность» выделения
памяти

5. Системное ПО

Общая информация о памяти процесса
Размер страницы – 4 кб
Память выделяется
минимальным шагом в 64
кб
Возможные адреса
0x00010000-0x7ffeffff

6. Системное ПО

Общая информация о памяти процесса
Пример для x86-64
Доступно к использованию
почти 8 Тб виртуального
адресного пространства

7. Системное ПО

Пример выделения памяти.
Запрашиваются 3 участка по 10 байт
393216=6*65536
458752=7*65536
524288=8*65536
Выделение памяти

8. Системное ПО

Выделяем память только для чтения
Выделение памяти
Чтение данных – успешно
Запись - ошибка

9. Системное ПО

Другие функции для работы с виртуальной памятью:
VirtualFree – освобождает ранее выделенный участок
VirtualLock – делает страницы заданного участка
«невыгружаемыми», т.е. они всегда находятся в физической
памяти
VirtualProtect – изменяет параметры защиты региона памяти
VirtualQuery – получить информацию о регионе памяти
Другой способ выделить память – функция HeapAlloc,
которая позволяет выделять память «из кучи», т.е. не
постранично. В этом случае два региона памяти могут
располагаться в одной странице.
English     Русский Rules