Лабораторная 9 (2 сем)
.docxСанкт-Петербургский политехнический университет Петра Великого
Институт компьютерных наук и технологий
Высшая школа интеллектуальных систем и суперкомпьютерных технологий
ЛАБОРАТОРНАЯ РАБОТА №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.