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

Презентация:



Advertisements
Похожие презентации
Архитектура операционных систем. Архитектура ОС Состав модулей (компонент) ОС Структура связей между отдельными модулями ОС Принципы взаимодействия модулей.
Advertisements

Архитектура операционных систем Семестр 2, Лекция 1.
Учебный курс Основы операционных систем Лекция 2 кандидат физико-математических наук, доцент Карпов Владимир Ефимович.
Архитектура операционной системы. Ядро и вспомогательные модули операционной системы При функциональной декомпозиции ОС модули разделяются на две группы:
Операционная система MS Windows* Развитие ОС: пакетная обработка, интерактивные системы, ОС реального времени, системы с разделением времени. Истинная.
Системные механизмы Windows. Системные механизмы диспетчеризация ловушек, в т.ч. прерываний, DPC (deferred procedure call), APC (asynchronous procedure.
Операционная система. Базовые понятия Операционная система – это комплекс программ, обеспечивающий контроль за существованием, распределением и использованием.
Основы операционных систем. Литература к курсу (основная) В.Е.Карпов, К.А.Коньков Основы операционных систем.
Прерывания Определение прерывания Прерывания представляют собой механизм, позволяющий координировать параллельное функционирование отдельных устройств.
Обзор операционных систем ВОУНБ им. М. Горького «Операционная система - это совокупность программ, обеспечивающих управление процессом обработки информации.
Основы современных операционных систем Лекция 27.
1. Этапы развития вычислительной техники и программного обеспечения. 2.Структура вычислительной системы. Ресурсы ВС- физические ресурсы, виртуальные ресурсы.
Лабораторный практикум по курсу Принципы построения современных ОС Линёв А.В. – ассистент, кафедра ИИСиГИ ВМК ННГУ Свистунов А.Н. – ассистент, кафедра.
Операционные системы Введение (часть 4) 4.Основы архитектуры операционных систем 4.1.Базовые понятия 4.2.Свойства ОС 4.3.Структура ОС 4.4.Логические функции.
Демидов А.В г. Операционные системы Лекция 4 Работа с файлами.
Учебный курс Основы операционных систем Лекция 1 кандидат физико-математических наук, доцент Карпов Владимир Ефимович.
Подсистема среды (подсистема окружения режима пользователя Процесс входа в систему Приложение OS/2 MS DOS VDM Win16 VDM Приложение Win 32 Приложение POSIX.
Операционные системы Процессы и потоки Скрипов Сергей Александрович 2009.
Лекция 6 Понятие операционных систем Учебные вопросы: 1. Характеристики ОС 2. Свободные и проприетарные ОС.
Выполнили: Мартышкин А. И. Кутузов В. В., Трояшкин П. В., Руководитель проекта – Мартышкин А. И., аспирант, ассистент кафедры ВМиС ПГТА.
Транксрипт:

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

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

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

Введение Структура системы Упрощенная структура ОС Windows

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

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

Введение Архитектурные особенности ОС Windows Различные маршруты выполнения вызовов Win32 API.

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

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

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

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

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

Объекты ядра Описатели объектов Объекты и их описатели

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

Реестр

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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