- •Введение
- •Эволюция ос.
- •Классификация ос.
- •Краткий обзор архитектуры Windows.
- •Основные системные файлы Windows 95, nt, 2000.
- •Средства аппаратной поддержки управления памятью.
- •Сегментная организация памяти.
- •Страничная или сегментно-страничная организация памяти.
- •Механизмы управления памятью Windows.
- •Раздел 4. В него загружаются ядро Windows nt и драйверы устройств. Этот раздел полностью защищен и по чтению, и по записи. Регионы в адресном пространстве.
- •Системные переменные и операционные системы.
- •Передача физической памяти региону.
- •Механизм выделения страниц физической памяти.
- •Выделение физической памяти под программный код.
- •Атрибуты защиты страниц.
- •Стек потока.
- •Стек потока под Windows 95, 98.
- •Функции компилятора для контроля стека.
- •Кучи (Heaps).
- •Особенности кучи в Windows 95, Windows nt.
- •Структура арены.
- •Рассмотрим функции работы с кучей.
- •Удаление кучи.
- •Выделение блока памяти в определённой куче.
- •Освобождение блока кучи.
- •Дополнительные кучи Win32 процесса.
- •Создание дополнительных куч для эффективного управления памятью.
- •Локальный доступ. Создание дополнительных куч для локализации доступа.
- •Файлы проецируемые в память (фпвп).
- •Проецирование в память exe и dll файлов.
- •Совместное использование статических данных несколькими экземплярами exe и dll модулей.
- •Иерархия функций работы с памятью.
- •Объекты kernel32.Dll.
- •Процессы.
- •Структуры данных процесса.
- •Структура блока pdb.
- •Блок kprocess.
- •Блок переменных окружения (peb).
- •Переменная ядра, связанная с процессами.
- •Последовательность действий, выполняемых функцией CreateProcess.
- •Потоки.
- •Основные функции для работы с потоками.
- •Управляющие структуры ос для работы с потоками.
- •Описание структур управления потоками.
- •Управление потоками.
- •Лекция № 11
- •Функции Win32 связанные с планированием.
- •Учёт квантов времени.
- •Сценарий планирования.
- •Поток простоя.
- •Динамическое повышение приоритета потока.
- •Планирование потоков в системах с симметричной мультипроцессорной системой (smp).
- •Синхронизация.
- •Синхронизация потоков без использования объектов синхронизации.
- •Синхронизация потоков.
- •Критические секции.
- •Работа потока с несколькими критическими секциями.
- •Синхронизация объектов.
- •События со сбросом вручную.
- •События с автоматическим сбросом.
- •Модули.
- •Структура imte.
- •Структура modref.
- •Файлы. Формат pe файла.
- •Особенности ре формата:
- •Заголовок ре файла.
- •Основные секции исполняемого файла.
- •.Idata bfc0847d .Text jmp dword ptr [00040042 … call 00014408 (Вызов GetMessage) Прикладная программа
- •Импортирование ре файлов.
- •Эскпорт ре файлов.
- •Лекция № 15
- •Ресурсы ре файла.
- •Базовые поправки ре файла.
- •Файловые системы.
- •Загрузочный сектор.
- •Особенности ntfs.
- •Новые возможности ntfs.
- •Структура ntfs на диске.
- •Кластеры.
- •Главная таблица файлов.
- •Структура файловых ссылок.
- •Записи о файлах.
- •Индексация имён файлов.
- •Битовая карта.
- •Восстанавливаемость ntfs.
- •Журнал транзакций.
- •Записи контрольной точки.
- •Восстановление данных в ntfs.
- •Проход повтора.
- •Проход отмены.
- •Отказоустойчивость ntfs.
- •Словарь терминов.
Журнал транзакций.
Используется несколько типов записей. Это записи модификации и записи контрольной точки.
Записи модификации. Большинство записей в журнале – это запись модификации. Каждая запись модификации содержит два вида информации:
Информация для повтора, которая содержит сведения о том, как вновь применить к тому подопе-рацию полностью запротоколированной подтверждённой транзакции. Если сбой системы произо-шёл до того, как транзакция была переписана из кэша на диск. Если какая-либо операция выполне-на, то её надо повторить.
Информация для отмены. Это сведения о том, как устранить изменения, вызванные первой опера-цией транзакции, которая в момент сбоя была запротоколирована лишь частично, то есть не подтверждена. Рассмотрим записи модификации в журнале транзакций для операции создания файла.
Область
рестарта Область протоколирования.
Записи журнала.
…
T1a
T1b
T1c
В журнал транзакций записано три модификации. Рассмотрим первую запись T1a.
T1a. Повтор. Выделить и инициализировать файловую запись в MFT.
Отмена. Освободить файловую запись в MFT.
T1b. Повтор. Добавить имя файла в каталог.
Отмена. Удалить имя файла из каталога.
T1c. Повтор. Установить биты 3-9 в битовой карте. Пометить кластеры как занятые.
Отмена. Очистить биты 3-9 в битовой карте. Пометить кластеры как свободные.
Транзакция была запротоколирована. После того как NTFS выполняет подоперации непос-редственно над томом в кэше. По окончанию обновления кэша NTFS помещает в журнал ещё одну запись, которая помечает транзакцию записью, как завершённую. В журнале транзакций появляется ещё одна запись подоперации. После того как транзакция подтверждена NTFS гарантирует, что все вызванные ею модификации произоёдут на томе, даже если после подтверждения будет сбой.
При восстановлении после сбоя NTFS просматривает журнал и восстанавливает все подтвер-ждённые транзакции, то есть NTFS ещё раз повторяет подтверждённую транзакцию. Это сделано для большей надёжности. После повтора всех подтверждённых транзакций NTFS отыскивает транзакции, которые не были подтверждены в момент сбоя и откатывает каждую запротоколированную операцию.
NTFS организована как реляционная база данных. Отмена транзакций проводится в обратном направлении. Если повторение идёт в прямом, то откат идёт в обратном направлении.
Информация для повтора и отмены может быть выражена либо физически, либо логически. Физическое описание задаёт модификацию тома как диапазон байт. Логическое описание представля-ет модификацию в терминах операций, например удалить файл a.dat. NTFS генерирует записи моди-фикации для каждой из следующих транзакций: создание файла (каталога), удаление файла (ката-лога), расширение файла (каталога), урезание файла (каталога), становка файловой информации, пере-нос, изменение прав доступа.
Записи контрольной точки.
Запись контрольной точки помогает NTFS определить, какая обработка необходима для тома после сбоя. Благодаря записи контрольной точки NTFS знает, как далеко ей надо пройти, чтобы начать восстановление.
Рестарт
запись, с которой
надо начать восстановление
контрольная точка
После восстановления после сбоя NTFS считает журнал пустым.
