Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная 9 (2 сем)

.docx
Скачиваний:
2
Добавлен:
18.07.2022
Размер:
343.56 Кб
Скачать

Санкт-Петербургский политехнический университет Петра Великого

Институт компьютерных наук и технологий

Высшая школа интеллектуальных систем и суперкомпьютерных технологий

ЛАБОРАТОРНАЯ РАБОТА №9

«Виртуальная память»

по дисциплине «Архитектура вычислительных систем»

Выполнил

студент гр. 3530903/80001 А. В. Шильникова

Руководитель Н. М. Вербова

«___» __________ 2021 г.

Санкт-Петербург

2021

Задание 1. Определить значения системных переменных, отвечающих за границы областей виртуального адресного пространства (ВАП)

Узнаем значения 4-х системных переменных:

Задание 2 Создать программу, которая выделяет область памяти.

Задание 3. В приложении расставить точки останова.

Задание 5. Просмотреть содержимое памяти, изменяемое приложением.

Задание 6. Исследовать дескрипторы виртуальных адресов VAD.

Адрес корня 86164628

После резервирования

После коммита

Задания для самостоятельного выполнения

Задание 1. Исследуйте действие различных значений параметров защиты памяти функции VirtualAlloc на примере приложения MemoryAlloc.

Параметры защиты. ReadWrite – можем читать и писать, NoAccess – вообще нет доступа, ReadOnly – только чтение.

И для параметра PAGE_NOACCESS и для PAGE_READONLY запись в зарезервированную область невозможна.

Задание 3. Исследовать процесс трансляции виртуальных адресов.

В адресе 0xC24F054 последние три байта 0x054 – это индекс байта.

PROCESS ff779190 SessionId: 0 Cid: 04fc Peb: 7ffdf000 ParentCid: 0394

DirBase: 098fd000 ObjectTable: e1646b30 TableSize: 8.

Image: lab.exe

Номер фрейма страницы это directory base без трёх последних байт: 0x098fd

kd> !vtop 098fd с24а054

Pdi 0 Pti 12f

0012f980 09de9000 pfn(09de9)

Прибавляем к полученному адресу начала страницы индекс байта:

0x09de9000 + 0x054 = 0x09de9054.

Это искомый физический адрес.

Задание 4. Исследовать утилиту для работы с виртуальной памятью VMMap от Sysinternals.

С помощью данной программы можно узнать распределение памяти для того или иного процесса. К примеру, по данному скрину видно, что под ConsoleApplication1 выделено 72,64 МБ оперативной памяти, но из них только 46,02 commited.

Вывод

В ходе выполнения лабораторной работы были изучены принципы работы виртуальной памяти, её трансляции на физическую память и получены навыки отлаживания программ в WinDbg.