
- •Основные понятия и концепции ос
- •Классификация ос
- •Управление процессами
- •Операции над процессом
- •13092012 Лекция 2
- •Алгоритмы планирования
- •Средства взаимодействия и синхронизации процессов
- •Синхронизация процессов
- •20092012 Лекция 3 Взаимоблокировки
- •Ликвидация взаимоблокировок
- •Неделимые транзакции
- •04102012 Лекция 4 Архитектура и управление процессами в ос семейства Windows
- •11102012 Лекция 5 Синхронизация потоков
- •Архитектура и процессы unix
- •Управление процессами
- •Создание новых процессов
- •18102012 Лекция 6 Межпроцессное взаимодействие
- •Файловая система
- •Структуризация файлов
- •25102012 Лекция 7 Адресация доступа к файлам
- •Операции над файлами
- •Обобщенная модель файловой системы
- •Отображаемые в память файлы
- •Современная архитектура файловых систем
- •Файловые системы Windows
- •01112012 Лекция 8 Файловая система fat
- •Файловая система ntfs
- •081112 Лекция 9
- •Файловые системы unix Традиционная фс s5
- •Виртуальная фс vfs (Virtual File System)
- •Монтирование файловых систем vfs
- •15112012 Лекция 10 Управление вводом/выводом
- •Драйверы устройств
- •Система ввода/вывода unix
- •29112012 Лекция 11 Подсистема ввода/вывода Windows
- •06122012 Лекция 12 Основные процедуры драйверов устройств
- •Процедуры обслуживания прерывания isr (interrupt Service Routine)
- •Дерево устройств
- •Диспетчер электропитания
- •13122012 Лекция 13 Основные требования ос
- •Множественные прикладные среды
- •Способы построения множественных прикладных сред
- •Реализация множества прикладных средств в Windows системах
Система ввода/вывода unix
Включает в себя драйвер внешних устройств и средство буферизации (буферный пул и комплекс программ по управлению им). Буферы располагаются в области ядра, размер каждого соответствует размеру блоку данных диска. С каждым буфером связана структура данных (заголовок), содержащая:
Данные о состояния буфера (занят/свободен, чтения/запись, признак отложенной записи, адрес, ошибки ввода/вывода, ссылка на следующий в очереди к устройству).
Данные об устройстве (тип устройства, номер устройства, номер блока на устройстве).
Синхронная запись инициируется функцией bwrite и начинает немедленный обмен данными с физическими устройствами. В процессе может быть предусмотрена собственная реакция на ошибки.
Асинхронная запись инициируется функцией bawrite и так же начинает немедленный обмен данными с устройствами. Но ошибки ввода\вывода переданы в процесс быть не могут.
Отложенная запись инициируется функцией bdwrite, передача данных из системного буфера не производится, а в его заголовке делается отметка, что буфер заполнен и может быть выгружен.
Организация связи ядра с драйвером
1.Таблица входа драйверов блок ориентированных устройств
2. Таблица входов драйверов байт-ориентированных устройств
Индексный дескриптор специального файла содержит класс устройства, тип устройства и номер. Каждый тип устройства на соответствующую строку таблицы, соответствующую конкретному драйверу. Номер устройства передается драйверу в качестве параметра.
Драйвер байт-ориентированного устройства состоит в общем случае из секции открытия, чтения и записи файлов и секции управления режимом работы.
Драйвер блок-ориентированного устройства в общем случае состоит из секции закрытия/открытия файлов и секции стратегии. В таблице входа драйверов так же указаны адреса таблиц устройств rkrab, содержащих информацию об состоянии устройств.
29112012 Лекция 11 Подсистема ввода/вывода Windows
Функции диспетчера ввода/вывода:
Создание пакетов запроса ввода/вывода (IRP – I/O Request Packet) и направление их соответствующему драйверу.
Удаление и освобождение пакетов после завершения операций.
Взаимодействие с диспетчером виртуальной памяти для предоставления файловым системам функции ввода/вывода с записью данных в память.
Мониторинг загруженных файловых систем и их вызов по требованию.
Предоставление поддержки синхронного и асинхронного ввода/вывода.
Управление буфером для операции ввода/вывода.
Высокоуровневые функции диспетчера объединены в программный интерфейс ввода/вывода I/O API. Драйверы устройств аналогичны драйверам файловых систем. В отличие от драйверов устройств, драйверы ФС:
Всегда вызываются в контексте потока, запрашивающего операцию ввода/вывода.
Взаимодействуют с диспетчерами КЭШа и виртуальной памяти для буферизации данных.
Драйверы фильтров ФС реализуют логические функции шифрования, удаленного хранения и так далее.
Каждый драйвер устройства взаимодействует с тремя типами объектов:
Объект драйвера – создается выполняемым модулем при загрузке драйвера. Содержит таблицу вызовов драйвера с адресами его процедур.
Объект устройства – представляет физическое устройство и описывает его характеристики. Может быть трех типов:
Объект физического устройства PDO – Physical Driver Object. Представляет устройство, подключенное к шине, и создается драйвером шины. Постоянно поддерживает связь с устройством.
Объект функционального устройства FDO – Functional Device Object. Создается драйвером класса устройств и драйвером порта.
Объект фильтра устройства DO – Filter Device Object. Устройство для драйвера фильтра.
Пакеты запросов ввода/вывода – используются для взаимодействия драйверов устройств в режиме ядра и выделяют в невыгружаемой памятью.
Элементы стека пакета IRP представляют собой структуры данных для отдельных драйверов, обрабатывающих IRP. Каждый драйвер получает закрытую область данных в стеке пакетов.