Построение практикума по операционным системам на...
DESCRIPTION
Построение практикума по операционным системам на основе MS Windows. Коньков Константин Алексеевич ( [email protected] ) к.ф.-м.н., доцент Московский физико-технический институт, г. Москва. Аннотация - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/1.jpg)
Построение практикума по операционным системам на основе MS Windows
Коньков Константин Алексеевич ([email protected])к.ф.-м.н., доцентМосковский физико-технический институт, г. Москва
Аннотация
Основные положения учебного курса по операционным системам проиллюстрированы на примере изучения ОС MS Windows. Информация о поведении системы основана на активном использовались ее API, применении разнообразных инструментальных средств, изучении исходных текстов и трассировке ядра.
![Page 2: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/2.jpg)
Методика обучения
Практическое освоение ОС MS Windows основано на:
• Изучении специализированной и справочной литературы• Разработке небольших модельных консольных приложений• Применении разнообразных инструментальных средств• Изучении исходных текстов ядра• Трассировке ядра системы
![Page 3: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/3.jpg)
Введение в курс
История
MS-DOS и Windows 3.1, Windows 95, Windows NT
… понятие реентерабельности
ОС – виртуальная, абстрактная машина
ОС – менеджер ресурсов
![Page 4: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/4.jpg)
Упрощенная структура системы ОС Windows
![Page 5: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/5.jpg)
Структура ОС Windows
Основные компоненты ОС Windows реализованы в следующих системных файлах, находящихся в каталоге system32: • hal.dll - уровень абстрагирования от оборудования, • ntoskrnl.exe - исполнительная система и ядро, • ntdll.dll - внутренние функции поддержки и интерфейсы диспетчера системных сервисов с функциями исполнительной системы• win32k.sys - часть подсистемы Win32, работающая в режиме ядра• kernel32.dll, advapi32.dll, user32.dll, gdi32.dll - основные dll подсистемы Win32
… анализ состава отдельных модулей
![Page 6: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/6.jpg)
Архитектурные особенности ОС Windows
Схема ОС с микроядерной архитектурой.
Первые версии Windows имели микроядерный дизайн, основанный на микроядре Mach
Архитектура более поздних версий системы микроядерной уже не является.
![Page 7: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/7.jpg)
Различные маршруты выполнения вызовов Win32 API
![Page 8: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/8.jpg)
Техника разработки Win32 приложений
• Среда Visual C, Win32 API, MSDN
• Типы данных, используемые в Win32 приложениях
• Unicode
• Обработка ошибок
![Page 9: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/9.jpg)
Базовые механизмыПрерывания, системные вызовы, исключения• Единообразная обработка: фрейм ловушки, сохранение контекста, обобщенный вектор прерываний (Interrupt Dispatch Table)
![Page 10: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/10.jpg)
Базовые механизмыПрерывания, системные вызовы, исключения• Единообразная обработка: фрейм ловушки, сохранение контекста, обобщенный вектор прерываний (Interrupt Dispatch Table)
![Page 11: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/11.jpg)
Базовые механизмыПрерывания, системные вызовы, исключения• Единообразная обработка: фрейм ловушки, сохранение контекста, обобщенный вектор прерываний (Interrupt Dispatch Table)• Синхронность и асинхронность• Приоритеты IRQL, отложенная обработка
![Page 12: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/12.jpg)
Объекты ядраОбъекты – абстрактная концепция, которая активно используется в ОС Windows для регулирования доступа к системным ресурсам.Описатели объектовhSemaphore = CreateSemaphore(NULL, 0, MaxCount, "MySemaphore");
![Page 13: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/13.jpg)
Объекты и их описатели
![Page 14: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/14.jpg)
Именование объектовУтилита WinObj
Связь пространства имен объектов и пространства имен файловой системы.
![Page 15: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/15.jpg)
Реализация процеcсов и потоков1. Отличие процесса от программы2. Процесс базируется на двух независимых концепциях:• Владение ресурсами (память, файлы, семафоры, порты …)• Поток (thread) исполняемых команд или просто поток. Понятие потока определяется текстом программы и текущим состоянием, которое отражает динамику исполнения и подлежит сохранению при переключении потоков.
![Page 16: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/16.jpg)
Реализация процеcсовБлок управления процессом (PCB) реализован в виде набора связанных структур, главная из которых называется блоком процесса EPROCESS.
![Page 17: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/17.jpg)
Создание процессов в ОС WindowsОбычно процесс создается другим процессом вызовом Win32-функции CreateProcess (см. рис.).
![Page 18: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/18.jpg)
Реализация потоковКонтекст потока. Переключение контекстов
В типичном случае переключение контекста требует сохранения и восстановления следующих данных:
• счетчика программы (program counter);• регистра состояния процессора;• содержимого остальных регистров процессора;• указателей на стек ядра и пользовательский стек;• указателя на адресное пространство, в котором выполняется поток (каталог таблиц страниц процесса).
Структура CONTEXT (определена в файле WinNT.h).
Функции GetThreadContext и SetThreadContext.
![Page 19: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/19.jpg)
Поток 1Поток 1
Поток 2Поток 2
ОжиданиеОжидание
ИсполнениеИсполнение
ПрерываниеПрерывание
Выполнение кода Выполнение кода пользователяпользователя
Выполнение кода ОСВыполнение кода ОС
Работа Работа hardwarehardware
Сохранение Сохранение контекстаконтекста
Обработка Обработка прерыванияпрерывания
ГотовностьГотовность ИсполнениеИсполнение
ГотовностьГотовность
ПланированиеПланирование
Работа Работа hardwarehardware
Выполнение кода ОСВыполнение кода ОС
Выполнение кода Выполнение кода пользователяпользователя
Восстановление Восстановление контекстаконтекста
Пример цепочки операций при переключении контекстов
![Page 20: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/20.jpg)
Реализация потоковПодобно процессам, каждый поток имеет свой блок управления, реализованный в виде набора структур, главная из которых ETHREAD показана на рис.
![Page 21: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/21.jpg)
Реализация потоков
Создание потока инициируется Win32-функцией CreateThread, которая находится в библиотеке Kernel32.dll.
Этапы создания потока
![Page 22: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/22.jpg)
Состояния потоков
Каждый новый процесс содержит по крайней мере один поток, остальные потоки создаются динамически. Потоки составляют основу планирования и могут находиться в одном из состояний (см. рис.).
![Page 23: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/23.jpg)
Состояния потоков
Переход потоков из одного состояния в другое можно «увидеть» с помощью консоли «производительность»
Рис. Переход потока из состояния ожидания (5) в состояние готовности (1)
![Page 24: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/24.jpg)
Синхронизация
Race conditions, взаимоисключение, критические секцииИспользование переменной-замка в сочетании со спинблокировкой while(lock); lock = 1;Команда Test-and-Set (проверить и установить)
while(lock);
lock = 1;While(Test_and_Set(lock));
Семейство Interlocked-функций.
InterlockedCompareExchange, InterlockedExchangeAdd …
Адаптивные семафоры и мьютексы и их реализация
![Page 25: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/25.jpg)
Синхронизация в ядре• запрет прерываний (повышение IRQL уровня), • захват спинблокировки, • проблема тупиков, • синхронизация при «высоких» IRQL
![Page 26: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/26.jpg)
Планирование
Вытесняющая (preemptive) многозадачность, вытеснение ядра системы
Алгоритмы планирования• приоритетное планирование в сочетании с алгоритмом RR … • слой абстрагирования приоритетов динамическое повышение приоритетов …• поощрение интерактивных потоков
Планирование реального времени
Диспетчеризация, переключение контекстов
Планирование в условиях многопроцессорности
![Page 27: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/27.jpg)
Управление памятью
Наличие двух адресных пространств и трансляция (связывание) адреса
![Page 28: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/28.jpg)
Управление памятьюНаличие двух адресных пространств и трансляция (связывание) адреса
Рис. Трансляция адреса с использованием ассоциативной памяти и двухуровневой таблицы страниц.
![Page 29: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/29.jpg)
Управление памятьюВиртуальная память
![Page 30: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/30.jpg)
Управление памятьюРабочие наборы и обработка страничных нарушений (page faults)
Рис. Наблюдение за размером рабочего набора процесса и количеством страничных ошибок.
![Page 31: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/31.jpg)
Управление памятьюОтдельные аспекты функционирования менеджера памяти
• Локализация страниц в памяти• Копирование при записи (Сopy-On-Write )• Контроль процессом памяти другого процесса.
![Page 32: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/32.jpg)
Файловая системаФайлы и объекты, имеющие файловый интерфейс
Синхронный и асинхронный ввод-вывод
Методы выделения дискового пространства
Поиск в каталоге
![Page 33: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/33.jpg)
Файловая системаФайлы и объекты, имеющие файловый интерфейс
Синхронный и асинхронный ввод-вывод
Методы выделения дискового пространства
Поиск в каталоге
Монтирование и связывание … образование циклов
![Page 34: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/34.jpg)
Файловая системаСовместный доступ к файлам
… синхронизация доступа
![Page 35: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/35.jpg)
Файловая системаПроизводительность
Особенности кэширования в ОC Windows
Рис. Поведение счетчика «сбросов данных» кэша.
![Page 36: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/36.jpg)
Файловая системаЦелостность файловой системы
Журналирование
Поддержка нескольких файловых систем
![Page 37: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/37.jpg)
БезопасностьСистема управления доступом
Модели защищенности
Дискреционный и ролевой доступ
Пример графа доступа
Пример матрицы доступа
![Page 38: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/38.jpg)
БезопасностьСистема управления доступом
Пример проверки прав доступа к защищенному объекту
![Page 39: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/39.jpg)
БезопасностьПолитика безопасности
Аутентификация пользователя
Аудит системы защиты
Недопустимость повторного использования объектов
Защита от внешнего навязывания
Сложные сценарии настройки контекста пользователя
![Page 40: Построение практикума по операционным системам на основе MS Windows](https://reader033.vdocuments.mx/reader033/viewer/2022061612/568156f5550346895dc49b6f/html5/thumbnails/40.jpg)
Благодарю за внимание
Коньков Константин Алексеевич ([email protected])к.ф.-м.н., доцентМосковский физико-технический институт, г. Москва
Материал выступления базируется на книге
Коньков К.А. Устройство и функционирование ОС Windows. Практикум к курсу «Операционные системы». Издательство "Интуит.ру". 2008 г.