1 / 40

Построение практикума по операционным системам на основе MS Windows

Построение практикума по операционным системам на основе MS Windows. Коньков Константин Алексеевич ( K_Konkov@mail.ru ) к.ф.-м.н., доцент Московский физико-технический институт, г. Москва. Аннотация

zocha
Download Presentation

Построение практикума по операционным системам на основе MS Windows

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Построение практикума по операционным системам на основе MS Windows Коньков Константин Алексеевич (K_Konkov@mail.ru)к.ф.-м.н., доцентМосковский физико-технический институт, г. Москва Аннотация Основные положения учебного курса по операционным системам проиллюстрированы на примере изучения ОС MS Windows. Информация о поведении системы основана на активном использовались ее API, применении разнообразных инструментальных средств, изучении исходных текстов и трассировке ядра.

  2. Методика обучения Практическое освоение ОС MS Windows основано на: • Изучении специализированной и справочной литературы • Разработке небольших модельных консольных приложений • Применении разнообразных инструментальных средств • Изучении исходных текстов ядра • Трассировке ядра системы

  3. Введениев курс ОС – виртуальная, абстрактная машина ОС – менеджер ресурсов История MS-DOS и Windows 3.1, Windows 95, Windows NT … понятие реентерабельности

  4. Упрощенная структура системы ОС Windows

  5. Структура ОС Windows • Основные компоненты ОС Windows реализованы в следующих системных файлах, находящихся в каталоге system32: • hal.dll- уровень абстрагирования от оборудования, • ntoskrnl.exe- исполнительная система и ядро, • ntdll.dll - внутренние функции поддержки и интерфейсы диспетчера системных сервисов с функциями исполнительной системы • win32k.sys - часть подсистемы Win32, работающая в режиме ядра • kernel32.dll, advapi32.dll, user32.dll, gdi32.dll - основные dll подсистемы Win32 • … анализ состава отдельных модулей

  6. Первые версии Windows имели микроядерный дизайн, основанный на микроядре Mach Архитектурные особенности ОС Windows Схема ОС с микроядерной архитектурой. Архитектура более поздних версий системы микроядерной уже не является.

  7. Различные маршруты выполнения вызовов Win32 API

  8. Техника разработки Win32 приложений • Среда Visual C, Win32 API, MSDN • Типы данных, используемые в Win32 приложениях • Unicode • Обработка ошибок

  9. Прерывания, системные вызовы, исключения • Единообразная обработка: фрейм ловушки, сохранение контекста, обобщенный вектор прерываний (Interrupt Dispatch Table) Базовые механизмы

  10. Прерывания, системные вызовы, исключения • Единообразная обработка: фрейм ловушки, сохранение контекста, обобщенный вектор прерываний (Interrupt Dispatch Table) Базовые механизмы

  11. Прерывания, системные вызовы, исключения • Единообразная обработка: фрейм ловушки, сохранение контекста, обобщенный вектор прерываний (Interrupt Dispatch Table) • Синхронность и асинхронность • Приоритеты IRQL, отложенная обработка Базовые механизмы

  12. Объекты – абстрактная концепция, которая активно используется в ОС Windows для регулирования доступа к системным ресурсам. Описатели объектов hSemaphore = CreateSemaphore(NULL, 0, MaxCount, "MySemaphore"); Объекты ядра

  13. Объекты и их описатели

  14. Утилита WinObj Именование объектов Связь пространства имен объектов и пространства имен файловой системы.

  15. 1. Отличие процесса от программы • 2. Процесс базируется на двух независимых концепциях: • Владение ресурсами (память, файлы, семафоры, порты …) • Поток (thread) исполняемых команд или просто поток. Понятие потока определяется текстом программы и текущим состоянием, которое отражает динамику исполнения и подлежит сохранению при переключении потоков. Реализация процеcсов и потоков

  16. Блок управления процессом (PCB) реализован в виде набора связанных структур, главная из которых называется блоком процесса EPROCESS. Реализация процеcсов

  17. Обычно процесс создается другим процессом вызовом Win32-функции CreateProcess (см. рис.). Создание процессов в ОС Windows

  18. Реализация потоковКонтекст потока. Переключение контекстов • В типичном случае переключение контекста требует сохранения и восстановления следующих данных: • счетчика программы (program counter); • регистра состояния процессора; • содержимого остальных регистров процессора; • указателей на стек ядра и пользовательский стек; • указателя на адресное пространство, в котором выполняется поток (каталог таблиц страниц процесса). • Структура CONTEXT (определена в файле WinNT.h). • Функции GetThreadContext и SetThreadContext.

  19. Восстановление контекста Выполнение кода пользователя Работа hardware Поток 1 Выполнение кода ОС Работа hardware Исполнение Готовность Выполнение кода пользователя Поток 2 Готовность Исполнение Ожидание Выполнение кода ОС Прерывание Сохранение контекста Обработка прерывания Планирование Пример цепочки операций при переключении контекстов

  20. Подобно процессам, каждый поток имеет свой блок управления, реализованный в виде набора структур, главная из которых ETHREAD показана на рис. Реализация потоков

  21. Создание потока инициируется Win32-функцией CreateThread, которая находится в библиотеке Kernel32.dll. Этапы создания потока Реализация потоков

  22. Каждый новый процесс содержит по крайней мере один поток, остальные потоки создаются динамически. Потоки составляют основу планирования и могут находиться в одном из состояний (см. рис.). Состояния потоков

  23. Переход потоков из одного состояния в другое можно «увидеть» с помощью консоли «производительность» Состояния потоков Рис. Переход потока из состояния ожидания (5) в состояние готовности (1)

  24. while(lock); lock = 1; While(Test_and_Set(lock)); Race conditions, взаимоисключение, критические секции Использование переменной-замка в сочетании со спинблокировкой while(lock); lock = 1; Команда Test-and-Set (проверить и установить) Синхронизация Семейство Interlocked-функций. InterlockedCompareExchange, InterlockedExchangeAdd … Адаптивные семафоры и мьютексы и их реализация

  25. запрет прерываний (повышение IRQL уровня), • захват спинблокировки, • проблема тупиков, • синхронизация при «высоких» IRQL Синхронизация в ядре

  26. Планирование • Вытесняющая (preemptive) многозадачность, вытеснение ядра системы • Алгоритмы планирования • приоритетное планирование в сочетании с алгоритмом RR … • слой абстрагирования приоритетов динамическое повышение приоритетов … • поощрение интерактивных потоков • Планирование реального времени • Диспетчеризация, переключение контекстов • Планирование в условиях многопроцессорности

  27. Управление памятью Наличие двух адресных пространств и трансляция (связывание) адреса

  28. Наличие двух адресных пространств и трансляция (связывание) адреса Управление памятью Рис. Трансляция адреса с использованием ассоциативной памяти и двухуровневой таблицы страниц.

  29. Виртуальная память Управление памятью

  30. Рабочие наборы и обработка страничных нарушений (page faults) Управление памятью Рис. Наблюдение за размером рабочего набора процесса и количеством страничных ошибок.

  31. Отдельные аспекты функционирования менеджера памяти Управление памятью • Локализация страниц в памяти • Копирование при записи (Сopy-On-Write ) • Контроль процессом памяти другого процесса.

  32. Файлы и объекты, имеющие файловый интерфейс Синхронный и асинхронный ввод-вывод Методы выделения дискового пространства Поиск в каталоге Файловая система

  33. Файлы и объекты, имеющие файловый интерфейс Синхронный и асинхронный ввод-вывод Методы выделения дискового пространства Поиск в каталоге Монтирование и связывание … образование циклов Файловая система

  34. Совместный доступ к файлам Файловая система … синхронизация доступа

  35. Производительность Особенности кэширования в ОCWindows Файловая система Рис. Поведение счетчика «сбросов данных» кэша.

  36. Целостность файловой системы Журналирование Поддержка нескольких файловых систем Файловая система

  37. Система управления доступом Модели защищенности Дискреционный и ролевой доступ Безопасность Пример графа доступа Пример матрицы доступа

  38. Система управления доступом Безопасность Пример проверки прав доступа к защищенному объекту

  39. Политика безопасности Аутентификация пользователя Аудит системы защиты Недопустимость повторного использования объектов Защита от внешнего навязывания Сложные сценарии настройки контекста пользователя Безопасность

  40. Благодарю за внимание Коньков Константин Алексеевич (K_Konkov@mail.ru)к.ф.-м.н., доцентМосковский физико-технический институт, г. Москва Материал выступления базируется на книге Коньков К.А. Устройство и функционирование ОС Windows. Практикум к курсу «Операционные системы». Издательство "Интуит.ру". 2008 г.

More Related