
- •Введение
- •Эволюция ос.
- •Классификация ос.
- •Краткий обзор архитектуры 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 восстанавливает дисковые тома и возвращает их в целостное состояние. Восстановление проис-ходит автоматически при первом обращении к диску. NTFS дублирует наиболее важную систем-ную информацию.
Защита от несанкционированного доступа, то есть каждый файл имеет дескриптор защиты,каждый пользователь при входе в систему регистрируется, поэтому доступ к файлу получает тот пользова-тель, который имеет соответствующие права.
Избыточность данных и отказоустойчивость. В Windows файловая система NTFS организована с помощью драйвера отказоустойчивого диска. Данные дублируются на несколько дисков, создают-ся зеркальные диски.
Сжатие данных.
Шифрование данных, хранимых на диске.
Новые возможности ntfs.
Множественные потоки данных. В NTFS файл – это набор атрибутов, причём данные – это один из атрибутов файла. В файле можно создавать несколько атрибутов данных.
myfile.dat: stream2
Имена в UNICODE. Это 16-разрядная кодировка символов. В FAT используется 8-рязрядная кодировка символов. В UNICODE 65536 символов. Имена файлов могут содержать до 255 симво-лов, и содержать несколько точек и пробелов.
Универсальное средство индексирования. NTFS позволяет индексировать атрибуты файла. В настоящий момент поддерживается индексирование по имени файла. В каждом каталоге файлы и каталоги расположены упорядоченно, что ускоряет поиск.
Переназначение плохих кластеров. Позволяет динамически помечать плохие кластеры.
Структура ntfs на диске.
Здесь мы рассмотрим структуру тома NTFS, включая способы разбиения дискового прост-ранства и его организации в кластеры, принципы хранения на диске реальных файловых данных и информации об атрибутах, а также поясним, как работает механизм сжатия данных в NTFS.
Тома.
Структура NTFS начинается с тома. Том соответствует логическому разделу на диске и созда-ется при форматировании диска или его части под NTFS. Оснастка Disk Management (Управление дисками) консоли ММС также позволяет создать том RAID, охватывающий несколько дисков.
На диске может быть один или несколько томов. NTFS обрабатывает каждый том независимо от других. Три примера конфигурации 150-мегабайтного жесткого диска показаны на рисунке.
С: С:
С: (75 Мб) (60 Мб)
(
150
Мб)
D: D:
(75 Мб) (90 Мб)
Том состоит из набора файлов и свободного пространства, оставшегося в данном разделе диска. В FAT том также содержит области, специально отформатированные для использования файловой системой. Но в томе NTFS все данные файловой системы вроде битовых карт, каталогов и даже начального загрузочного кода хранятся как обычные файлы.
Кластеры.
Размер кластера на томе NTFS, или кластерный множитель (cluster factor), устанавливается при форматировании тома командой format или в оснастке Disk Management. Размер кластера по умолчанию определяется размером тома, но всегда содержит целое число физических секторов с дискретностью N2 (т.е. 1 сектор, 2 сектора, 4 сектора, 8 секторов и так далее). Кластерный множитель выражается числом байт в кластере, например 512 байт, 1 Кб или 2 Кб.
Внутренне NTFS работает только с кластерами. (Однако NTFS инициирует низкоуровневые операции ввода-вывода на томе, выравнивая передаваемые данные по размеру сектора и подгоняя их объем под значение, кратное размеру секторов.) NTFS использует кластер как единицу выделения пространства для поддержания независимости от размера физического сектора. Это позволяет NTFS эффективно работать с очень большими дисками, используя кластеры большего размера, и поддерживать нестандартные диски с размером секторов, отличным от 512 байт. Применение больших кластеров на больших томах уменьшает фрагментацию и ускоряет выделение свободного пространства за счет небольшого проигрыша в эффективности использования дискового простран-ства. Команда format или оснастка Disk Management выбирает кластерный множитель в зависимости от размера тома, но Вы можете изменить это значение.
NTFS адресуется к конкретным местам на диске, используя логические номера кластеров (logical cluster numbers, LCN). Для этого все кластеры на томе просто нумеруются по порядку — от начала до конца. Для преобразования LCN в физический адрес на диске NTFS умножает LCN на кластерный множитель и получает байтовое смещение от начала тома, воспринимаемое интерфейсом драйвера диска. На данные внутри файла NTFS ссылается по виртуальным номерам кластеров (virtual cluster numbers, VCN), нумеруя кластеры, которые принадлежат конкретному файлу (от 0 до т). VCN не обязательно должны быть физически непрерывными.