Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpora_1-10_bez_vosmogo1.docx
Скачиваний:
3
Добавлен:
16.04.2019
Размер:
108.79 Кб
Скачать

21. Исследование виртуальной памяти. Системная информация.

Формируется функцией GetSystemInfo:

VOID GetSystemInfo (LPSYSTEM_INFO lpSystemInfo);

lpSystemInfo – адрес начала структуры типа SYSTEM_INFO с системной информацией.

Структура SYSTEM_INFO:

Typedef struct_SYSTEM_INFO{ //sinf

union{

DWORD dwOemld; //остается для совместимости с предыдущими версиями WINDOWS

struct{

WORD wProcessorArchitecture; //определяет архитектуру системного процессора (UNKNOWN, INTEL, MIPS, ALPHA, PPC, IA64, IA32_ON_WIN64, AMD64)

WORD wReserved; //резерв

};

};

DWORD dwPageSize; //размер страницы

LPVOID lpMinimumApplicationAddress; //указатель на минимальный адрес, доступный приложению и DLL

LPVOID lpMaximumApplicationAddress; //указатель на максимально допустимый адрес, доступный приложению и DLL

DWORD dwActiveProcessorMask; //определяет маску для рассматриваемого процессора системы

DWORD dwNumberOfProcessors; //количество процессоров в системе

DWORD dwProcessorType; //используется для совместимости со старыми ОС

DWORD dwAllocationGranularity; //определяет адрес выравнивания и единицу измерения выделяемой виртуальной памяти

WORD wProcessorLevel; //дополнительные сведения о процессоре

WORD wProcessorRevision; //определяет архитектурно зависимую дополнительную информацию о процессоре

}SYSTEM_INFO;

22. Исследование виртуальной памяти. Статус виртуальной памяти.

Определяется функцией GlobalMemoryStatus, которая задает текущее состояние виртуальной и физической памяти.

VOID GlobalMemoryStatus (LPMEMORYSTATUS lpBuffer);

lpBuffer – указатель на структуру MEMORYSTATUS с информацией о памяти.

Структура MEMORYSTATUS:

typedef struct _MEMORYSTATUS {

DWORD dwLength; //размер структуры

DWORD dwMemoryLoad; //процент использования памяти

SIZE_T dwTotalPhys; //общее количество физической памяти

SIZE_T dwAvailPhys; //свободное количество байт физической памяти

SIZE_T dwTotalPageFile; //общее количество файла подкачки

SIZE_T dwAvailPageFile; //свободное количество байт файла подкачки

SIZE_T dwTotalVirtual; //общий размер виртуальной памяти

SIZE_T dwAvailVirtual; //свободное количество байт виртуальной памяти

} MEMORYSTATUS, *LPMEMORYSTATUS;

23. Исследование виртуальной памяти. Определение состояния адресного пространства.

Можно определить состояние заданного диапазона страниц в виртуальном адресном пространстве процесса с помощью функции VirtualQuery ( для того, чтобы получить информацию о диапазоне страниц произвольного процесса, следует воспользоваться функцией VirtualQueryEx).

DWORD VirtualQuery(

LPCVOID lpAddress,

PMEMORY_BASIC_INFORMATION lpBuffer,

DWORD dwLength

);

lpAddress – указатель на адрес области страниц, которые анализируются. Это значение округляется с учетом границ страницы.

lpBuffer – адрес буфера, куда записывается информация (типа MEMORY_BASIC_INFORMATION).

dwLength – размер буфера (байт).

Возвращаемое значение: действительное количество байт, занятых в буфере.

Структура MEMORY_BASIC_INFORMATION:

typedef struct _MEMORY_BASIC_INFORMATION { // mbi

PVOID BaseAddress;

PVOID AllocationBase;

DWORD AllocationProtect;

DWORD RegionSize;

DWORD State;

DWORD Protect;

DWORD Type;

} MEMORY_BASIC_INFORMATION;

BaseAddress – базовый адрес страничного диапазона (равный lpAddress, но округленный до границы в меньшую сторону).

AllocationBase – указатель на адрес региона, выделенного функцией VirtualAlloc (начало, конец). Страница, заданная в BaseAddress, содержится внутри этого диапазона.

AllocationProtect – определяет атрибуты доступа при первоначальном выделении памяти.

Могут использоваться флаги:

PAGE_READONLY

Страница только для чтения.

PAGE_READWRITE

Чтение и запись

PAGE_EXECUTE

Только исполнение програмного кода

PAGE_EXECUTE_READ

Исполнение и чтение

PAGE_EXECUTE_READWRITE

Исполнение, чтение, запись

PAGE_GUARD

Защищенная страница. Любой доступ к странице – ошибка

PAGE_NOACCESS

Выключен доступ к странице, отраженной в физической памяти

PAGE_NOCACHE

Не кэшируется содержимое страницы. Используется в драйверах

PAGE_WRITECOPY

Запись в страницу приводит к тому, что процессу предоставляется личная копия этой страницы физической памяти

PAGE_EXECUTE_WRITECOPY

Любые действия приводят к формированию новой копии

RegionSize – суммарный размер (в байтах) страниц, начиная с базисного адреса.

State – состояние страниц региона:

MEM_COMMIT – память выделена или в физической памяти или в страничном файле.

MEM_FREE – свободная страница, не связанная с процессом.

MEM_RESERVE – зарезервированная страница, но не связанная.

Protect – атрибуты защиты страниц региона. Могут быть заданы флаги защиты.

Type – определяет тип страниц:

MEM_IMAGE – показывает, что страницы памяти внутри области отражаются в секции изображения.

MEM_MAPPED – показывает, что страницы памяти внутри области отражаются в секции просмотра.

MEM_PRIVATE – показывает, что страницы памяти внутри области приватны (не разделяются с другими процессами).

24. Поняття та основні задачі файлових систем.

Файл – именованная область внешней памяти, в которую можно записывать и из которой можно считывать данные. Цели:  1. долговременное и надежное хранение информации; 2. обеспечение совместного использования информации.  Файловая система – часть ОС, включающая: 1. совокупность всех файлов на диске; 2. наборы структур данных, используемых для управления файлами (каталоги файлов, дескрипторы файлов, таблицы распределения пространства на диске); 3. комплекс системных программных средств, реализующих различные операции над файлами (создание, уничтожение, чтение и т.д.) Файловая система играет роль промежуточного слоя, экранирующего все сложности физической организации долговременного хранения данных и создающего более простую логическую модель этого хранилища, а так же предоставляющего им набор более удобных в использовании команд для манипулирования. Задачи, решаемые файловой системой зависят от способа реализации вычислительного процесса. Самый простой тип – это файловая система в однопользовательских и однопрограммных ОС.  Основные функции в такой файловой системы сводятся к следующим задачам:  1. программируемый интерфейс для приложений  2. отображение логической модели файловой системы на физическую организацию хранилища данных;  3. устойчивость файловой системы к сбоям питания, ошибкам аппаратно-программных средств. В операционных однопользовательских мультипрограммируемых системах добавляется задача совместного доступа к файлам из нескольких процессов. В многопользовательских системах появляется еще одна задача – защита файлов одного пользователя от несанкционированного доступа другого пользователя.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]