
- •Введение
- •Эволюция ос.
- •Классификация ос.
- •Краткий обзор архитектуры 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.
- •Словарь терминов.
Загрузочный сектор.
В загрузочном секторе содержится программа начальной загрузки.
Размер сектора в байтах.
Размер кластера в секторах.
Число зарезервированных секторов (в FAT16 оно равно 1).
Число таблиц размещения файлов в секторах.
Число записей в корневом каталоге.
Число секторов на томе.
Число секторов на дорожке.
Число сторон.
Число скрытых секторов.
Служебная информация (серийный номер тома, метка тома, идентификатор изготовителя).
Скрытые сектора. Количество секторов, предшествующих данному логическому диску. Жест-кий диск можно разбить на несколько дисков или томов.
MBR C: D: E: …
скрытые сектора
скрытые сектора
скрытые сектора
скрытые сектора
Главная загрузочная запись содержит программу стартовой загрузки и таблицу разделов. Таблица разделов содержит список логических дисков, информацию о том, какой логический диск активный.
Загрузчик из ПЗУ BIOS передаёт управлению стартовому загрузчику. Стартовый загрузчик находит логический диск и запускает программу начальной загрузки активного диска. В случае файловой системы FAT программа начальной загрузки находится в загрузочном секторе. Начальный загрузчик загружает ОС. Существует два вида нумерации секторов: абсолютная и логическая.
Абсолютная нумерация используется для диска в целом. В случае абсолютной нумерации каждый сектор идентифицируется:
Номером поверхности, иногда номер поверхности называется номером головки.
Номером дорожки, иногда говорят номером цилиндра.
Номером сектора на дорожке.
Драйвер диска работает с абсолютными секторами.
Логическая нумерация используется в пределах одного логического диска. Начинается с нуля. Загрузочный сектор имеет номер 0. FAT имеет номер 1 и так далее. Файловая система работает с логической нумерацией секторов.
Приложение
Диспетчер
ввода-вывода
Драйвер файловой
системы
Драйвер диска
Драйвер файловой системы добавляет к номеру сектора количество скрытых секторов. Драйвер диска преобразует полученный номер сектор в абсолютный. ОС считывает информацию из загрузочного сектора и создаёт специальную структуру DPB (Disk Parameter Block). Это сделано, чтобы не обращаться к BR диска.
Таблица размещения файлов (FAT).
Имеет по одной записи для каждого кластера тома.
/////
1 2 3 4 …
Размер записи определяется индексом в названиии файловой системы (12, 16, 32). Первая запись содержит дескриптор носителя. Это константа, определяющая тип диска, поэтому нумерация кластеров начинается с двух. Записи в таблице FAT определяют цепочки размещения файлов и каталогов, то есть каждая запись в FAT содержит номер следующего кластера, принадлежащего конкретному файлу или каталогу. Если очередная запись FAT содержит FFFF (FAT16), или FFF (FAT12), то значит этот кластер является последним для файла. Если запись содержит 0, то кластер свободен, если FFF7 (FAT16) или FF7 (FAT12), то значит кластер является сбойным (BAD).
Пример.
Элементы каталога
FILE1 2
FILE2 5
FILE3 7
2 3 4 5 6 7 8 9 10 11
3 4 FFFF
6 8 FFFF FFFF 0 0 …
FAT
FILE1 занимает кластеры 2, 3, 4.
FILE2 фрагментирован и содержится в кластерах 5, 6, 8.
FILE3 занимает только один кластер.
В системную область диска входит корневой каталог. По сруктуре не отличается от всех остальных каталогов, содержит информацию о всех подкаталогах. Каждая запись о файле и каталоге имеет длину 32 байта и содержит следующую информацию: имя файла, атрибуты, дату и время создания и модификации, номер первого кластера, размер файла в байтах.
Размер корневого каталога в FAT12 и FAT16 ограничен. Задаётся при форматировании диска. В FAT32 корневой каталог не входит в системную область, то есть системная область включает загрузочную запись, состоящую из нескольких секторов и две копии FAT. В FAT32 размер корневого каталога не ограничен. В ОС DOS принято именование файлов в формате 8.3. Windows использует длинные имена файлов. В случае, если имя файла не соответствует формату 8.3 каждый каталог содержит для каждого файла несколько записей. Одна под короткое имя. Идёт 6 первых символов, затем ~номер. расширение. Несколько записей используется для длинного имени, причём в каждой записи каталога содержится 11 символов имени. FAT32 впервые появилась в Windows 95 OEM Service Release 2. Поддерживается Windows ME, 2000. Также поддерживается в Windows NT 4.0 с установкой специальных драйверов.
NTFS (New Technology File System).
Является основной файловой системой для Windows NT. Ориентирована на
Клиент-серверные приложения.
Сложные технические и научные приложения.
Сетевые приложения для больших корпоративных сетей.