ВУЗ:
Составители:
Возвращаемое значение – ненулевое значение в случае успеха, ноль при ошибке. Устанавливает информацию
GetLastError.
Объекты ядра удаляются лишь после того, как будут закрыты все ссылки на них.
5. Функция прекращает отображение объекта в адресное пространство текущего процесса:
BOOL UnmapViewOfFile(
LPCVOID lpBaseAddress // Базовый адрес отображения,
// установленного ранее функцией
// MapViewOfFile.
);
ЗАДАНИЕ ДЛЯ ВЫПОЛНЕНИЯ ЛАБОРАТОРНОЙ РАБОТЫ
1. Провести исследование ОС с использованием системного монитора:
1) Определить количество процессов, потоков, дескрипторов в ОС, изменить их число, запуская на выполнение но-
вые приложения.
2) Определить процент работы в пользовательском режиме (% User Time), процент работы в привилегированном
режиме (% Privileged Time) и процент времени бездействия при выполнении, связанными с интенсивными графическими
операциями.
3) Включить в отчет полученные графики и привести их объяснение.
2. Разработать программу, реализующую следующую задачу:
1) Создать текстовый файл (можно с использованием notepad).
2) Создасть объект File на базе созданного в предыдущем пункте файла, используя АРI-функцию CreateFile. Вывес-
ти значение дескриптора объекта File.
3) Используя дескриптор объекта File-mapping, а также API-функцию MapViewOf File, отобразить части файла в
память. Данная функция назначает область виртуальной памяти, выделяемой этому файлу. Базовый адрес выделенной об-
ласти памяти является дескриптором представления этой области в виде отображения файла.
4) Используя базовый адрес и функцию CopyMemory, прочитайте информацию из отображаемого файла. Измените
регистр текста в тестовом файле, и запишите информацию в этот же файл.
5) Закрыть все дескрипторы.
На экране должны фиксироваться все этапы работы созданного приложения.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Что такое режим ядра и пользовательский режим?
2. Перечислите объекты ядра ОС.
3. Понятие сервиса ОС. Какие системные процессы вы знаете?
4. Опишите работу ядра ОС в привилегированном режиме.
5. Какие API-функции необходимы для отображения файла в адресное пространство?
6. Какая API-функция возвращает начальный адрес области отражения файла?
Лабораторная работа 3
АРХИТЕКТУРА ПАМЯТИ WINDOWS
Цель работы: получение практических навыков по использованию Win32 API для исследования памяти Windows.
ОСНОВНЫЕ ПОЛОЖЕНИЯ
Типы памяти
Физическая память – это реальные микросхемы RAM, установленные в компьютере. Каждый байт физической памяти
имеет физический адрес, который представляет собой число от нуля до числа на единицу меньшего, чем количество байтов
физической памяти. Например, ПК с установленными 64 Мб RAM имеет физические адреса &Н00000000-&Н04000000 в
шестнадцатеричной системе счисления, что в десятичной системе будет 0-67 108 863. Физическая память (в отличие от фай-
ла подкачки и виртуальной памяти) является исполняемой, т.е. памятью, из которой можно читать и в которую центральный
процессор может посредством системы команд записывать данные.
Виртуальная память – это просто набор чисел, о которых говорят как о виртуальных адресах. Программист может
использовать виртуальные адреса, но Windows не способна по этим адресам непосредственно обращаться к данным, по-
скольку такой адрес не является адресом реального физического запоминающего устройства, как в случае физических адре-
сов и адресов файла подкачки. Для того чтобы код с виртуальными адресами можно было выполнить, такие адреса должны
быть отображены на физические адреса, по которым действительно могут храниться коды и данные. Эту операцию выпол-
няет диспетчер виртуальной памяти (Virtual Memory Manager – VMM). Операционная система Windows обозначает некото-
рые области виртуальной памяти как области, к которым можно обратиться из программ пользовательского режима. Все
остальные области указываются как зарезервированные. Какие области памяти доступны, а какие зарезервированы, зависят
от версии операционной системы (Windows 9x или Windows NT).
Страницы
- « первая
- ‹ предыдущая
- …
- 12
- 13
- 14
- 15
- 16
- …
- следующая ›
- последняя »