
- •Введение
- •Эволюция ос.
- •Классификация ос.
- •Краткий обзор архитектуры 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.
- •Словарь терминов.
Сегментная организация памяти.
Работает в защищенном режиме процессора. Применяется, начиная с 80286. Процесс преоб-разования адреса состоит из двух этапов.
1) преобразование логического адреса в линейный
2) преобразование линейного адреса в физический
В некоторых случаях второй этап может отсутствовать. Также как и в режиме DOS логический адрес состоит из двух составляющих:
селектор
смещение
:
Размер селектора составляет 16 разрядов, а размер зависит от типа процессора. Чем селектор отличается от сегмента?
селектор
адрес в таблице
GDT/LDT
RPL
В защищенном режиме все блоки памяти перечислены в таблице GDT (Global Description Table) /LDT (Local Description Table). Адреса всех блоков памяти перечислены в специальных таблицах. GDT одна (0), а LDT может быть несколько (1).
селектор
смещение
DPL
GDT/LDT
Оперативная память
Допустимый
уровень
привилегий
Дескрипторная таблица содержит адреса блоков памяти. С помощью селектора определяется тип таблицы и смещение в таблице. По смещению находится адрес начала блока памяти. Начальный адрес складывается со смещением и получается реальный адрес.
Доступ к памяти будет тогда и только тогда, когда RPL DPL. Кроме того в дескрипторной таблице помимо адреса начала блока находится размер блока и ОС проверяет. Если исполнительный адрес превышает размер блока, то доступ запрещен.
Достоинства сегментной организации очевидны – адресация пространства до 4 Гб.
Лекция № 3
Страничная или сегментно-страничная организация памяти.
Память процессора разбивается на страницы, размер которых зависит от типа процессора (обычно 4 - 8 Кб).
1) С помощью сегментной организации из логического адреса формируется линейный. Начиная с Windows 95 используется плоская модель памяти FLAT. Согласно этой модели содержимое селектора равно нулю.
селектор
смещение
:
16 разрядов 32 разряда
В Windows 3.x использовалась FLAT только для организации драйверов.
2) Преобразование линейного адреса в физический. Вся память разбита на страницы.
10 10 12
индекс каталога индекс
таблицы индекс байта страниц страниц
СR3
Физическое адресное
пространство
1
///////////////////////////////////////////////////
2
/////////////////
///////////////
каталог таблица
страниц страниц
В физическом адресном пространстве выбрана страница. Выбранная страница 1.
Каждый процесс имеет свой каталог страниц. Как только процесс (программа) загружается на выполнение в системный регистр CR3 записывается адрес каталога страниц. Индекс каталога страниц требуется для получения физического адреса таблицы страниц. Затем по индексу таблицы страниц определяется требуемая страница.
С помощью индекса байта определяется адрес требуемой ячейки памяти на выбранной странице. Пользователи работают только с линейными адресами. Преобразование линейного адреса в физический – дело аппаратного и программного обеспечения, то есть в Windows пользователь в отличие от DOS не имеет доступа к физическому адресу памяти.