
7-Input-Output_Management.ppt
- Количество слайдов: 46
Операционные системы Лекция № 7. Управление вводомвыводом ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 1
Структурная организация компьютерных систем Дж. фон Неймана n n Устройство оперативной памяти для хранения данных и программ Центральное процессорное управление (ЦПУ) q q n n Арифметическое и логическое устройство Устройство управления выполнением программы Оборудование ввода-вывода Связи между компонентами – магистраль (шина) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 2
Структурная организация компьютерных систем Дж. фон Неймана ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 3
Магистраль n n n Средство соединения двух и более устройств в компьютерной системе Обычно имеется общая магистраль для всех устройств в компьютере Структура магистрали q q q Линии адреса Линии данных Линии управления ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 4
Подключение устройств к магистрали (шине) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 5
Линии адреса n n Определяют адреса источника и приёмника данных Ширина адресной магистрали определяет максимальный объём адресуемой памяти. q Типичные разрядности (битов): 16 (Intel 8080), 20 (Intel 8086), 32 (Intel 80386), 36 (Intel Pentium), 64 (Intel Itanium /Itanium 2) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 6
Линии данных n n Передаёт данные (на уровни магистрали не делается различий между «данными» и «инструкциями» ) Ширина магистрали данных определяет производительность системы q Типичные разрядности (битов): 8 (Intel 8080), 16 (Intel 8086), 32 (Intel 80386), 64 (Intel Pentium) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 7
Линии управления n Передаёт управляющие и синхронизирующие сигналы q q q Сигналы на чтение/запись памяти Запросы на прерывание Тактовые импульсы (синхронизирующие сигналы) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 8
Иерархия магистралей в компьютерных системах ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 9
Сложность систем ввода-вывода n Широкий набор различных типов периферийных устройств q q q n n Передача данных различного объёма На разных скоростях В различных форматах Устройства обладают меньшей производительностью, чем память или ЦПУ Требуют специальных модулей (контроллеров) ввода-вывода ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 10
Модуль (контроллер) ввода-вывода n n Имеет интерфейс для подключения к ЦПУ и памяти, т. е. к системной магистрали. Имеет интерфейс подключения к одному или нескольким периферийным устройствам ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 11
Структура модуля ввода-вывода ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 12
Функции модуля ввода-вывода n n n Управление и синхронизация Взаимодействие с ЦПУ Взаимодействие с устройством Буферизация данных Обнаружение ошибок ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 13
Структура модуля ввода-вывода ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 14
Алгоритм работы с модулем вводавывода 1. 2. 3. 4. 5. 6. ЦПУ запрашивает статус устройства у модуля ввода-вывода. Модуль ввода-вывода возвращает статус. Если готово, ЦПУ запрашивает передачу данных. Модуль ввода-вывода получает данные с устройства. Модуль передаёт данные ЦПУ Для операций передачи данных существует несколько решений. ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 15
Решения для организации ввода-вывода n n n Программируемый (PIO) Управляемый прерываниями Прямой доступ к памяти (DMA) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 16
Решения для организации ввода-вывода ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 17
Ввод-вывод в операционных системах n Эффективность q Большинство устройств ввода-вывода намного медленнее основной памяти. n n q Использование мультипрограммирования позволяет некоторым процессам ждать завершения операций ввода-вывода, выполняя в это время другие процессы Операции подкачки в основную память являются операциями ввода-вывода. Даже при наличии большого объёма основной памяти операции ввода-вывода будут отставать от процессора ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 18
Ввод-вывод в операционных системах n Универсальность q q q Желательна единая модель управления различными устройствами Требуется скрыть детали управления устройствами в низкоуровневых модулях (драйверах устройств). Предоставить процессам работу с устройствами посредством высокоуровневых вызовов: n Открытие/закрытие, чтение/запись, блокирование/разблокирование и т. п. ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 19
Подсистема ввода-вывода в ОС (1) n n Организация параллельной работы устройств ввода-вывода и процессора Согласование скоростей обмена и кэширование данных Безопасное и защищённое разделение устройств и данных между процессами Обеспечение удобного логического интерфейса между устройствами и остальной частью системы ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 20
Подсистема ввода-вывода в ОС (2) n n n Поддержка широкого спектра драйверов с возможностью простого включения в систему нового драйвера Динамическая загрузка и выгрузка драйверов по указанию пользователя или за счёт автоматического реконфигурирования (Pn. P) Поддержка нескольких файловых систем Поддержка синхронных и асинхронных операций ввода-вывода Поддержка перехода системы и отдельных устройств в состояния с низким энергопотреблением ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 21
Организация параллельной работы устройств ввода-вывода и процессора n n n Каждое устройство снабжено модулем (контроллером) ввода-вывода Модуль ввода-вывода взаимодействует с драйвером Под управлением модуля ввода-вывода устройство может некоторое время функционировать независимо от процессора ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 22
Организация параллельной работы устройств ввода-вывода и процессора n От подсистемы ввода-вывода требуется спланировать в реальном времени запуск и приостановку большого количества драйверов и минимизировать загрузку процессора задачами ввода-вывода q Распределение всех драйверов по уровням приоритета обслуживания прерываний ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 23
Программные уровни обслуживания прерываний (IRQL) IRQL NMI Таймер Устройство n … Устройство 2 Устройство 1 Операционная система Программные прерывания ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 24
Согласование скоростей обмена и кэширование данных n Все устройства имеют различные скоростные характеристики. q n Например пересылка файла через модемное соединение (операция ввода-вывода с жёсткого диска на коммуникационный порт) Буферизация в операциях ввода-вывода q q Без буферизации (прямой ввод-вывод, direct I/O) Буферизированный ввод-вывод (buffered I/O) n n n С одним буфером С двумя буферами С круговым буфером ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 25
Буферизация в операциях ввода-вывода ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 26
Буферизация в операциях ввода-вывода n Двойная буферизация q q Используются два системных буфера Процесс может записывать или считывать из одного буфера, пока система заполняет или освобождает другой ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 27
Буферизация в операциях ввода-вывода n Круговой буфер q q q Используется больше двух буферов Буферы организуются в круговой Используется при интенсивных операциях ввода-вывода процессом ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 28
Кэширование данных n Буферизация в основной памяти данных для всех драйверов файловых систем q q Кэширование на основе логических блоков (смещение внутри дисковых разделов) Кэширование на основе виртуальных блоков (смещение внутри файлов) n Опережающее кэширование ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 29
Обеспечение удобного логического интерфейса между устройствами и остальной частью системы n n Поддержка файловой модели представления периферийных (базисная модель) q Любое устройство выглядит для прикладного программиста как последовательность байтов Подобная модель для некоторых устройств выглядит слишком бедной и на её основе строятся модели управления для конкретных устройств q Графический адаптер q Принтер q Сетевой обмен q и т. д. ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 30
Поддержка широкого спектра драйверов n n Необходимо наличие чёткого и открытого интерфейса между драйверами и другими компонентами ОС Драйвер взаимодействует с модулями ядра ОС и с модулем ввода-вывода q Два типа интерфейсов для драйвера n n q q «Драйвер-ядро» (Driver Kernel Interface, DKI) «Драйвер-устройство» (Driver Device Interface, DDI) ОС может поддерживать несколько типов DKI/DDI для устройств различных классов Для разработки драйверов разработчики ОС предоставляют Driver Development Kit (DDK) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 31
Драйверы устройств в Windows 2000 n Типы драйверов q q q Драйверы файловой системы Драйверы Windows 2000 Унаследованные (Legacy) драйверы Windows NT Драйверы видеоадаптеров WDM (Windows Driver Model) n n Драйверы магистралей (шин) Функциональные драйверы Драйверы фильтров … ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 32
Структура драйвера Windows 2000 Процедура инициализации ввода-вывода Процедуры диспетчеризации Процедура обслуживания прерываний (ISR) Подсистема вводавывода Процедура инициализации Процедура отложенной обработки прерываний (DPC) Процедура добавления устройства ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 33
Обработка прерывания драйвером Windows 2000 Фаза 1 1. 1. 2. 3. 4. Процессор функционирует на некотором уровне IRQL. Устройство генерирует прерывание. Прерывание ловится (traps) ISR диспетчера прерываний ОС Диспетчер прерываний вызывает ISR драйвера с которым сопоставлено прерывание ISR производит минимальную обработку и оставляет менее приоритетные операции DPC, ставя её в очередь на обслуживание Фаза 2 2. 1. 2. IRQL процессора «падает» до DPC/Dispatch Происходит опустошение очереди отложенных процедур. ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 34
Обработка прерывания драйвером Windows 2000 (фаза 1) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 35
Обработка прерывания драйвером Windows 2000 (фаза 2) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 36
Поддержка асинхронного и синхронного ввода-вывода n n Синхронные операции блокируют инициировавший операцию ввода-вывода процесс до окончания операции Асинхронные операции позволяют процессу продолжить своё выполнение параллельно с операцией ввода-вывода. q q n Сложно проектировать программы с использованием асинхронных операций Требуется сложная синхронизация Диспетчер ввода-вывода ОС обычно использует асинхронные операции ввода-вывода. Синхронные операции предоставляются пользователю в виде системных вызовов. ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 37
Асинхронный ввод-вывод в Windows 2000 (1) n Синхронизация на объекте ядра «файл» q n Нет способа определить какая операция завершилась при множественных запросах на ввод-вывод. Синхронизация на объекте ядра «событие» , сопоставленное с операцией ввода-вывода q q q Выдать запрос и обработать результат могут различные потоки. Wait. For. Multiple. Objects может ожидать максимум на 64 объектах. Множественные запросы могут вызвать множественные переключения контекста. ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 38
Асинхронный ввод-вывод в Windows 2000 (2) n n Постановка результатов ввода-вывода в очередь APC (Asynchronous Procedure Call) q Выдать запрос ввода-вывода и обработать результаты должен один и тот же поток. Использование порта завершения ввода-вывода (Input. Output Completion Port) q Выдать запрос и обработать результат могут различные потоки. q Существует ограниченный пул готовых к обслуживанию результатов запросов потоков. q Система управляет активацией поток для предотвращения лишних переключений контекста. q Необходимо тщательно выбирать алгоритм управления размером пула. q Могут существовать временные перегрузки системы. ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 39
Многослойные модели операционных систем ПРИКЛАДНЫЕ ПРОГРАММЫ ПОДСИСТЕМЫ РЕЖИМА ПОЛЬЗОВАТЕЛЯ ДИСПЕТЧЕР СИСТЕМНЫХ ВЫЗОВОВ ПОДСИСТЕМА ВВОДАВЫВОДА МНОГОСЛОЙНЫЕ ДРАЙВЕРЫ УСТРОЙСТВ ПОДСИСТЕМА ЯДРО СЛОЙ ВЗАИМОДЕЙСТВИЯ С АППАРАТУРОЙ АППАРАТУРА ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 40
Архитектура Windows NT ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 41
Схема обработки ввода-вывода в API Windows NT пользовательского режима ПЕРЕХОД В РЕЖИМ ЯДРА Системные сервисы Ввода-вывода (Ntxxx) Диспетчер ввода-вывода (Ioxxx) IRP СЕРВИСЫ ЯДРА Драйверы устройств режима ядра HAL-функции доступа к устройствам ввода-вывода ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 42
Завершение операции ввода-вывода в Windows 2000 Фаза 1 1. 1. 2. DCP-процедура вызывает диспетчер ввода-вывода для обработки исходного запроса на ввод-вывод Диспетчер ввода-вывода ставить APC в очередь для завершения обработки запроса ввода-вывода в контексте вызывающего потока Фаза 2 2. 1. 2. 3. При следующем переключении на вызывающий поток генерируется прерывание APC. Диспетчер прерываний передаёт управление APCпроцедуре диспетчера ввода-вывода APC-процедура ядра записывает данные в адресное пространство потока и переводит описатель файла в свободное состояние. ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 43
Завершение операции ввода-вывода в Windows 2000 (1) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 44
Завершение операции ввода-вывода в Windows 2000 (2) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 45
Список литературы n n Олифер В. Г. , Олифер Н. А. Сетевые операционные системы. СПб. : Питер, 2002. Соломон Д. , Руссинович М. Внутреннее устройство Microsoft Windows: Windows Server 2003, Windows XP и Windows 2000. СПб. : Питер, «Русская Редакция» , 2005. Столлингс, Вильям. Операционные системы, 4 -е издание. «Вильямс» , 2002. Рихтер Дж. Windows для профессионалов: программирование для Windows 95 и Windows NT 4 на базе Win 32 API. «Русская Редакция» , 1997. ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 46