Управление памятью
Автор: Djeda99 • Октябрь 8, 2025 • Лабораторная работа • 7,649 Слов (31 Страниц) • 40 Просмотры
Цель работы: исследовать механизмы управления виртуальной памятью Win32.
Задание 2.1. Исследовать виртуальное адресное пространство процесса.
Меню:
1)получение информации о вычислительной системе.
Для получения информации о вычислительной системе используется функция GetSystemInfo().
Параметры, которые выводятся в коде:
wProcessorArchitecture - это свойство структуры SYSTEM_INFO в операционной системе Windows, которое указывает на архитектуру процессора текущей системы. Значение в этом поле может быть одним из следующих:
- PROCESSOR_ARCHITECTURE_INTEL (0) - процессор с архитектурой Intel (x86).
- PROCESSOR_ARCHITECTURE_AMD64 (9) - процессор с архитектурой AMD64 (x64).
- PROCESSOR_ARCHITECTURE_ARM (5) - процессор с архитектурой ARM.
- PROCESSOR_ARCHITECTURE_ARM64 (12) - процессор с архитектурой ARM64.
dwPageSize - это поле структуры SYSTEM_INFO, которое хранит размер страницы памяти в байтах. Страница памяти является минимальной единицей управления памятью в операционной системе.
lpMinimumApplicationAddress и lpMaximumApplicationAddress - это поля структуры SYSTEM_INFO, которые указывают на минимальный и максимальный адреса доступной виртуальной памяти для приложения соответственно. Эти адреса определяют диапазон, в пределах которого приложение может работать со своей виртуальной памятью.
dwNumberOfProcessors - это поле структуры SYSTEM_INFO, показывающее общее количество процессоров в системе.
dwAllocationGranularity - это поле структуры SYSTEM_INFO, которое содержит константу, определяющую гранулярность выделения виртуальной памяти. Гранулярность выделения определяет минимальный размер блока, который можно выделить или освободить в виртуальной памяти.
wProcessorLevel - это поле структуры SYSTEM_INFO, которое указывает на уровень процессора в системе.
wProcessorRevision - это поле структуры SYSTEM_INFO, которое указывает на ревизию процессора в системе.
Все эти поля предоставляют информацию о процессоре и памяти текущей системы, которую можно использовать для адаптации программного обеспечения к конкретной архитектуре и возможностям процессора.
2)определение статуса виртуальной памяти.
Функция GlobalMemoryStatus является частью Windows API и предоставляет информацию о состоянии памяти в системе. Она принимает указатель на структуру MEMORYSTATUS, чтобы заполнить ее данными о памяти. Вызов GlobalMemoryStatus(&MEMORYSTATUS) заполняет структуру MEMORYSTATUS данными о текущем состоянии памяти
- dwMemoryLoad: Поле dwMemoryLoad в структуре MEMORYSTATUS операционной системы Windows указывает на процентное использование памяти в системе. Значение этого поля может находиться в диапазоне от 0 до 100, где 0 означает, что память в системе практически не используется, а 100 означает, что память полностью загружена.
- dwTotalPhys: Поле dwTotalPhys в структуре MEMORYSTATUS указывает на общий объем физической памяти (в байтах) в системе. Он представляет собой общий объем физической памяти, доступной для работы приложений и операционной системы.
- dwAvailPhys: Поле dwAvailPhys в структуре MEMORYSTATUS указывает на доступный объем физической памяти (в байтах) в системе. Это количество памяти, которое свободно и может быть использовано для загрузки дополнительных данных или процессов.
- dwTotalPageFile: Поле dwTotalPageFile в структуре MEMORYSTATUS указывает на общий объем файла подкачки (в байтах), который доступен в системе. Файл подкачки используется операционной системой для расширения доступной памяти путем выгрузки неиспользуемых данных на жесткий диск.
- dwAvailPageFile: Поле dwAvailPageFile в структуре MEMORYSTATUS указывает на доступный объем файла подкачки (в байтах) в системе. Это количество места в файле подкачки, которое свободно и может быть использовано операционной системой при нехватке физической памяти.
- dwTotalVirtual: Поле dwTotalVirtual в структуре MEMORYSTATUS указывает на общий объем виртуальной памяти (в байтах), доступной в
...