
- •Введение
- •Эволюция ос.
- •Классификация ос.
- •Краткий обзор архитектуры 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.
- •Словарь терминов.
Индексация имён файлов.
Здесь мы будем говорить о структуре каталогов NTFS. Каталог в NTFS представляет собой индекс имён файлов, то есть список имён, упорядоченных по любому признаку. В настоящий момент упорядочивание файлов происходит только по имени. Для индексации или упорядочивания используется b+ дерево.
Стандартная Имя Корень Размещение Битовая
информация индекса индекса карта
“\”
f4 f10 f15
0 1 2 3
f0 f1 f3
8 9 10 11
f11 f12 f13 f14
4 5 6 7
f6 f8
f9
В случае больших каталогов списки файлов располагаются в отрезках. Атрибут корень индекса содержит первый уровень структуры b+ дерева и указывает на индексные буферы, содержащие следующий уровень. То есть в данном случае корень индекса создаёт только несколько имён. Атрибут корень индекса и каждый отрезок, содержащий список файлов, содержащий имя файла, файловую ссылку на запись MFT, метку времени и информацию о размере файла. Эта информация дублируется из соответствующих записей. Дублируется для того, чтобы ускорить просмотр. Атрибут размещения индекса содержит отображение VCN-LCN для индексных буферов.
Битовая карта.
Используется для отслеживания того, какие VCN в индексных буферах заняты, а какие свободны. Каждый индексный буфер размером 2 Кб может содержать около 15 записей для имён файлов. Это 3-4 записи на кластер, размером 512 байт. Рассмторим пример. Файл f4 – это элемент первого уровня b+ дерева, он указывает на индексный буфер, содержащий имена файлов, которые меньше чем f4 (в смысле символа). Например, мы создали файл с именем f31. Он будет расположен раньше, чем f4.
Хранение имён файлов в виде b+ дерева даёт следующие преимущества:
Поиск в каталоге выполняется быстрее.
Так как b+ дерево имеет тенденцию к росту в ширину, а не в глубину, то скорость поиска не уменьшается с ростом каталогов.
Восстанавливаемость ntfs.
NTFS представляет собой восстанавливающуюся файловую систему. Файловые системы делятся на
Файловые системы с точной записью.
Файловые системы с отложенной записью или восстанавливающиеся файловые системы.
Файловые системы с точной записью организованы таким образом, чтобы после сбоя были повреждены некритические участки структуры файловой системы, например, любая файловая опера-ция распадается на ряд подопераций. Например, авария произошла при копировании файлов:
Производится запись в кластеры диска.
Кластеры помечаются как занятые.
Записывается информация о файле в подкаталог.
То есть в этом случае если будет сбой, то максимальный урон, который может быть – это будет потерян доступ к части кластеров. Запись на диск производится сразу же. Пример файловой системы с точной записью – это файловая система DOS.
Файловые системы с отложенной записью. Информация предварительно записывается в кэш, а затем кэш сбрасывется на диск. Преимуществом данного метода является высокая скорость работы. Обеспечивается при помощи техники обработки транзакции и техники протоколирования. Прежде чем выполнить над содержимым диска какую-либо операцию, изменяющую файловую структуру, NTFS записывает эту транзакцию в файл журнала транзакций. Таким образом, в случае сбоя системы незавершённые транзакции можно повторить или отменить после перезагрузки компьютера. Средства протоколирования NTFS состоят из двух компонент, это:
Журнал транзакций.
Сервис журнала транзакций (LFS – Log File Service).
Сервис журнала транзакций представляет собой набор программ. Сервис журнала транзакций отделён от файловой системы NTFS. Это сделано для того, чтобы производители программного обеспечения могли создавать свои сервисы. В качестве параметра NTFS передаёт LFS. LFS делит журнал транзакций на две части: область рестарта и бесконечную область протоколирования.
Копия 1 Копия
2 Запись журнала
область рестарта область протоколирования
контрольная точка
Область рестарта содержит указатель на контрольную точку. Контрольна точка – это точка, с которой надо восстанавливать файловую систему. Копия контрольной точки создаётся для надёжности. Для идентификации записи, помещённой в журнал транзакций LFS использует номера логических последовательностей LSN (Logical Sequence Numbers). Номер LSN постоянно увеличи-вается. Область протоколирования используется циклически. После восстановления эта область становится доступной. В процессе восстановления NTFS вызывает LFS для чтения-записи журнала в прямом направлении, чтобы просмотреть все транзакции, которые были запртоколированы но не были записаны на диск в момент сбоя и в обратном направлении, чтобы откатить транзакции.