- •1. Операционные системы
- •2. Функциональные компоненты локальной ос
- •3. Назначение и функции сетевой ос
- •4. Функциональные компоненты сетевой ос
- •5. Коммуникационные средства
- •6. Классификация ос
- •8. Архитектура ос
- •9. Монолитные и многоярусные ядра
- •10. Функциональные компоненты Linux
- •11. Структура ядра
- •12. Функции слоёв ядра
- •13. Вспомогательные модули
- •14. Микроядерные системы
- •15. Объектная модель функционирования
- •16. Состав исполнительной системы WinNt
- •17. Совместимость
- •18. Множественные прикладные среды. Способы реализации
- •19. Интерфейсы ос
- •20. Файловая система
- •21. Логическая организация файла
- •22. Физическая организация файла
- •23. Общая модель фс
- •Непрерывное
- •2) Цепочечная
- •3) Фиксированный
- •Битовые карты (таблицы) – каждому блоку ставится в соответствие свой бит (1 – занят, 0 – свободен)
- •Цепочки сводных свободных порций
- •Список свободных блоков
- •Индексированный
- •24. Функции фс
- •25. Фс unix-подобных ос
- •26. Структура фс
- •27. Структура фс базовых unix-подобных ос
- •28. Архитектура виртуальной фс
- •29. Последовательность действий при монтировании
- •30. Файловые дескрипторы и трансляция имён
- •31. Физическая организация fat
- •32. Физическая организация ntfs
- •33. Управление процессами
- •34. Контекст и дескриптор
- •35. Структура контекста процесса
- •36. Планирование и диспетчеризация
- •37. Алгоритмы планирования
- •38. Планирование и диспетчеризация в unix системах
- •39. Управление процессами в unix-подобных системах
- •40. Атрибуты, инфраструктура процесса
- •41. Создание процессов
- •42. Этап exec()
- •43. Межпроцессные взаимодействия (ipc)
- •44. Каналы (pipe)
- •45. Fifo
- •46. Пространство имен
- •47. Сообщения
- •48. Семафоры
- •49. Разделяемая память
- •50. Сигналы
- •51. Последовательность событий
- •52. Функции управления процессами
- •53. Сообщения в микроядерных ос.
- •54. Процессы и потоки в WinNt
- •55. Базовая структура процесса, создание процесса в WinNt
- •56. Основные различия управления процессами в различных средах
- •57. Состав потока в WinNt и контекст потока
- •58. Передача сообщений с помощью lpc (локальный вызов процедур)
- •59. Распределенные системы. Удаленный вызов процедур. Rpc (Remote Procedure Call)
- •60. Система ввода-вывода в Win nt
- •61. Реализация свв в Windows nt
- •62. Унифицированная модель драйвера
- •63. Формат пакета irp
- •64. Структура драйвера
- •65. Редиректор и сервер. Встроенные сетевые компоненты
61. Реализация свв в Windows nt
СВВ – часть кода ОС, получающая запросы ВВ от процессов режима пользователя и режима ядра и передающая их в преобразованном виде в устройства ВВ.
Система управляется пакетами. Каждый запрос представляет IRP-пакет (Input Request Package).
IRP позволяет использовать иерархические настройки системы В/В и драйверов.
IRP – структура данных, управляющая обработкой выполнения операций на каждой стадии их выполнения.
Диспетчер В/В (IO Manager) – входит в состав системы В/В, управляет передачей запросов В/В в файловую систему, реализует процедуру общего назначения для разных драйверов.
Функции и этапы работы диспетчера:
Создание IRP определенного формата
Передача пакета соответствующему драйверу
Удаление IRP
Функции драйвера:
Получение IRP
Выполнение операции
Возвращение управления В/В, либо реализация завершения
В NT существуют драйверы файловой системы и драйверы устройств В/В. При любой операции В/В задействованы и драйверы ФС и драйверы устройств. Работают через IRP, контролируются диспетчером. Реализуется общая процедура для различных драйверов. Упрощаются отдельные драйвера и вносится универсальность.
Пример: 1) Функция вызова драйвером других устройств, управление буферизацией, поддержка таймаутов для драйверов, предоставление информации о об установленных ФС. Гибкие средства API представляют набор средств для пользовательского режима.
Принцип: виртуальные файлы устройств (как в UNIX) – объектная модель. Работа осуществляется посредством файловых описателей. Описатель ссылается на объект – файл.
Потоки пользовательского режима вызывают базовые сервисы файла объекта (чтение, запись, открытие). Диспетчер динамически преобразует эти запросы в запросы к реальным физическим устройствам (накопителям, сетям и т.д.)
Пример: 2) Функция открытия файла
После запроса ВВ поток обязан ждать у описателя объекта до передачи данных – синхронизация. Драйвер устройства и драйвер ФС одинаковы.
Пример: 3) Возврат описателя файл-объекта
Файл-объект выполняет функцию средства синхронизации. Для ОС абсолютно одинаково выглядят драйверы устройств и драйверы ФС.
Есть средства: именованные каналы и сетевые редиректоры, реализующиеся как драйверы.
Всякий драйвер – независимый элемент ОС, который может быть динамически загружен или удален без изменения конфигурации ОС.
62. Унифицированная модель драйвера
Требования, которые предъявляются для разработчиков драйверов под NT:
Драйверы пишутся на языках высокого уровня для обеспечения переносимости.
Операция В/В управляется IRP-пакетами. IRP используются многократно по слоям. Система динамически назначает драйверы для управления дополнительными новыми.
Драйверы должны синхронизировать доступ к глобальным данным
Должны позволять вытеснять потоками более высокого приоритета
Должны быть прерываемы другими потоками
Код драйвера должен быть способен выполняться на нескольких процессорах.
Драйверы должны восстанавливаться после сбоя и выполнять нереализованные операции (в NT 4.0 не реализовано)
Драйверы имеют унифицированную модель интерфейса => диспетчер В/В не видит их структуру и детали реализации. При взаимодействии различных драйверов диспетчер играет роль посредника.
Драйверы могут быть:
Однослойные (для последовательного порта и др.)
Многослойные (для ЗУ большой емкости)
Пример многослойного драйвера – при работе через SCSI-интерфейс драйвер дисков передает запрос на драйвер SCSI, который реализует обработку. Запрос к дискам реализует драйвер SCSI.
Передача может быть:
Асинхронной – более быстродействующий вариант и экономичный в плане ресурсов (всегда СВВ)
Синхронный – проще в плане реализации
Win32 автоматически выбирает синхронный/асинхронный вариант взаимодействия.
Поскольку асинхронный способ позволяет существенно увеличить производительность пользовательских приложений, то по умолчанию для 1/3 сервисов установлен асинхронный режим. Тем не менее поток может сам решать каким способом передавать данные.
Синхронная процедура:
-
Приложение WriteFile
(описатель файла, параметры)
Read(…) (приложение)
Подсистема Win32
Вызов NT сервиса
Запись в файл
Вернуть данные
Диспетчер В/В
проверка параметров
Создание IRP
Вызов драйвера устройства
Завершение IRP
возврат
Драйвер устройства
Направить запрос на устройство
обработка прерывания
Устройство
Выполнить передачу данных
прерывание
здесь ожидаем
Асинхронная процедура:
-
Приложение WriteFile
(описатель файла, параметры)
передача упр-я
<ожидание>
Подсистема Win32
Вызов NT сервиса
Запись в файл
wait (описатель файла); вернуть код завершения и В/В выполняется
возврат данных
Диспетчер В/В
проверка параметров
Создание IRP
Вызов драйвера устройства
возврат
1) завершить IRP
2) установить описатель объекта-файла в сигнализир. состояние
Драйвер устройства
Направить запрос на устройство
возврат
обработка прерывания
Устройство
1) выполнить передачу данных
2) перывание
В асинхронной перевод файла в сигнальное состояние необходим для защиты данных (т.к. произошла смена контекста для другой работы).
Атрибут файла «совмещённый» (overlapped) – асинхронный режим (специальная реализация обмена).