Скачать презентацию Операционные системы Лекция 7 Управление вводомвыводом ОС Скачать презентацию Операционные системы Лекция 7 Управление вводомвыводом ОС

7-Input-Output_Management.ppt

  • Количество слайдов: 46

Операционные системы Лекция № 7. Управление вводомвыводом ОС. (с) Кафедра ИСТ, Маракасов Ф. В. Операционные системы Лекция № 7. Управление вводомвыводом ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 1

Структурная организация компьютерных систем Дж. фон Неймана n n Устройство оперативной памяти для хранения Структурная организация компьютерных систем Дж. фон Неймана n n Устройство оперативной памяти для хранения данных и программ Центральное процессорное управление (ЦПУ) q q n n Арифметическое и логическое устройство Устройство управления выполнением программы Оборудование ввода-вывода Связи между компонентами – магистраль (шина) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 2

Структурная организация компьютерных систем Дж. фон Неймана ОС. (с) Кафедра ИСТ, Маракасов Ф. В. Структурная организация компьютерных систем Дж. фон Неймана ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 3

Магистраль n n n Средство соединения двух и более устройств в компьютерной системе Обычно Магистраль n n n Средство соединения двух и более устройств в компьютерной системе Обычно имеется общая магистраль для всех устройств в компьютере Структура магистрали q q q Линии адреса Линии данных Линии управления ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 4

Подключение устройств к магистрали (шине) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) Подключение устройств к магистрали (шине) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 5

Линии адреса n n Определяют адреса источника и приёмника данных Ширина адресной магистрали определяет Линии адреса 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 Передаёт данные (на уровни магистрали не делается различий между «данными» Линии данных 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 Сигналы на чтение/запись Линии управления n Передаёт управляющие и синхронизирующие сигналы q q q Сигналы на чтение/запись памяти Запросы на прерывание Тактовые импульсы (синхронизирующие сигналы) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 8

Иерархия магистралей в компьютерных системах ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) Иерархия магистралей в компьютерных системах ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 9

Сложность систем ввода-вывода n Широкий набор различных типов периферийных устройств q q q n Сложность систем ввода-вывода n Широкий набор различных типов периферийных устройств q q q n n Передача данных различного объёма На разных скоростях В различных форматах Устройства обладают меньшей производительностью, чем память или ЦПУ Требуют специальных модулей (контроллеров) ввода-вывода ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 10

Модуль (контроллер) ввода-вывода n n Имеет интерфейс для подключения к ЦПУ и памяти, т. Модуль (контроллер) ввода-вывода n n Имеет интерфейс для подключения к ЦПУ и памяти, т. е. к системной магистрали. Имеет интерфейс подключения к одному или нескольким периферийным устройствам ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 11

Структура модуля ввода-вывода ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, Структура модуля ввода-вывода ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 12

Функции модуля ввода-вывода n n n Управление и синхронизация Взаимодействие с ЦПУ Взаимодействие с Функции модуля ввода-вывода n n n Управление и синхронизация Взаимодействие с ЦПУ Взаимодействие с устройством Буферизация данных Обнаружение ошибок ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 13

Структура модуля ввода-вывода ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, Структура модуля ввода-вывода ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 14

Алгоритм работы с модулем вводавывода 1. 2. 3. 4. 5. 6. ЦПУ запрашивает статус Алгоритм работы с модулем вводавывода 1. 2. 3. 4. 5. 6. ЦПУ запрашивает статус устройства у модуля ввода-вывода. Модуль ввода-вывода возвращает статус. Если готово, ЦПУ запрашивает передачу данных. Модуль ввода-вывода получает данные с устройства. Модуль передаёт данные ЦПУ Для операций передачи данных существует несколько решений. ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 15

Решения для организации ввода-вывода n n n Программируемый (PIO) Управляемый прерываниями Прямой доступ к Решения для организации ввода-вывода n n n Программируемый (PIO) Управляемый прерываниями Прямой доступ к памяти (DMA) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 16

Решения для организации ввода-вывода ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Решения для организации ввода-вывода ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 17

Ввод-вывод в операционных системах n Эффективность q Большинство устройств ввода-вывода намного медленнее основной памяти. Ввод-вывод в операционных системах n Эффективность q Большинство устройств ввода-вывода намного медленнее основной памяти. n n q Использование мультипрограммирования позволяет некоторым процессам ждать завершения операций ввода-вывода, выполняя в это время другие процессы Операции подкачки в основную память являются операциями ввода-вывода. Даже при наличии большого объёма основной памяти операции ввода-вывода будут отставать от процессора ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 18

Ввод-вывод в операционных системах n Универсальность q q q Желательна единая модель управления различными Ввод-вывод в операционных системах n Универсальность q q q Желательна единая модель управления различными устройствами Требуется скрыть детали управления устройствами в низкоуровневых модулях (драйверах устройств). Предоставить процессам работу с устройствами посредством высокоуровневых вызовов: n Открытие/закрытие, чтение/запись, блокирование/разблокирование и т. п. ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 19

Подсистема ввода-вывода в ОС (1) n n Организация параллельной работы устройств ввода-вывода и процессора Подсистема ввода-вывода в ОС (1) n n Организация параллельной работы устройств ввода-вывода и процессора Согласование скоростей обмена и кэширование данных Безопасное и защищённое разделение устройств и данных между процессами Обеспечение удобного логического интерфейса между устройствами и остальной частью системы ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 20

Подсистема ввода-вывода в ОС (2) n n n Поддержка широкого спектра драйверов с возможностью Подсистема ввода-вывода в ОС (2) n n n Поддержка широкого спектра драйверов с возможностью простого включения в систему нового драйвера Динамическая загрузка и выгрузка драйверов по указанию пользователя или за счёт автоматического реконфигурирования (Pn. P) Поддержка нескольких файловых систем Поддержка синхронных и асинхронных операций ввода-вывода Поддержка перехода системы и отдельных устройств в состояния с низким энергопотреблением ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 21

Организация параллельной работы устройств ввода-вывода и процессора n n n Каждое устройство снабжено модулем Организация параллельной работы устройств ввода-вывода и процессора n n n Каждое устройство снабжено модулем (контроллером) ввода-вывода Модуль ввода-вывода взаимодействует с драйвером Под управлением модуля ввода-вывода устройство может некоторое время функционировать независимо от процессора ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 22

Организация параллельной работы устройств ввода-вывода и процессора n От подсистемы ввода-вывода требуется спланировать в Организация параллельной работы устройств ввода-вывода и процессора n От подсистемы ввода-вывода требуется спланировать в реальном времени запуск и приостановку большого количества драйверов и минимизировать загрузку процессора задачами ввода-вывода q Распределение всех драйверов по уровням приоритета обслуживания прерываний ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 23

Программные уровни обслуживания прерываний (IRQL) IRQL NMI Таймер Устройство n … Устройство 2 Устройство Программные уровни обслуживания прерываний (IRQL) IRQL NMI Таймер Устройство n … Устройство 2 Устройство 1 Операционная система Программные прерывания ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 24

Согласование скоростей обмена и кэширование данных n Все устройства имеют различные скоростные характеристики. q Согласование скоростей обмена и кэширование данных n Все устройства имеют различные скоростные характеристики. q n Например пересылка файла через модемное соединение (операция ввода-вывода с жёсткого диска на коммуникационный порт) Буферизация в операциях ввода-вывода q q Без буферизации (прямой ввод-вывод, direct I/O) Буферизированный ввод-вывод (buffered I/O) n n n С одним буфером С двумя буферами С круговым буфером ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 25

Буферизация в операциях ввода-вывода ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Буферизация в операциях ввода-вывода ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 26

Буферизация в операциях ввода-вывода n Двойная буферизация q q Используются два системных буфера Процесс Буферизация в операциях ввода-вывода n Двойная буферизация q q Используются два системных буфера Процесс может записывать или считывать из одного буфера, пока система заполняет или освобождает другой ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 27

Буферизация в операциях ввода-вывода n Круговой буфер q q q Используется больше двух буферов Буферизация в операциях ввода-вывода n Круговой буфер q q q Используется больше двух буферов Буферы организуются в круговой Используется при интенсивных операциях ввода-вывода процессом ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 28

Кэширование данных n Буферизация в основной памяти данных для всех драйверов файловых систем q Кэширование данных n Буферизация в основной памяти данных для всех драйверов файловых систем q q Кэширование на основе логических блоков (смещение внутри дисковых разделов) Кэширование на основе виртуальных блоков (смещение внутри файлов) n Опережающее кэширование ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 29

Обеспечение удобного логического интерфейса между устройствами и остальной частью системы n n Поддержка файловой Обеспечение удобного логического интерфейса между устройствами и остальной частью системы n n Поддержка файловой модели представления периферийных (базисная модель) q Любое устройство выглядит для прикладного программиста как последовательность байтов Подобная модель для некоторых устройств выглядит слишком бедной и на её основе строятся модели управления для конкретных устройств q Графический адаптер q Принтер q Сетевой обмен q и т. д. ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 30

Поддержка широкого спектра драйверов n n Необходимо наличие чёткого и открытого интерфейса между драйверами Поддержка широкого спектра драйверов 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 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) Подсистема Структура драйвера Windows 2000 Процедура инициализации ввода-вывода Процедуры диспетчеризации Процедура обслуживания прерываний (ISR) Подсистема вводавывода Процедура инициализации Процедура отложенной обработки прерываний (DPC) Процедура добавления устройства ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 33

Обработка прерывания драйвером Windows 2000 Фаза 1 1. 1. 2. 3. 4. Процессор функционирует Обработка прерывания драйвером 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) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. Обработка прерывания драйвером Windows 2000 (фаза 1) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 35

Обработка прерывания драйвером Windows 2000 (фаза 2) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. Обработка прерывания драйвером Windows 2000 (фаза 2) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 36

Поддержка асинхронного и синхронного ввода-вывода n n Синхронные операции блокируют инициировавший операцию ввода-вывода процесс Поддержка асинхронного и синхронного ввода-вывода n n Синхронные операции блокируют инициировавший операцию ввода-вывода процесс до окончания операции Асинхронные операции позволяют процессу продолжить своё выполнение параллельно с операцией ввода-вывода. q q n Сложно проектировать программы с использованием асинхронных операций Требуется сложная синхронизация Диспетчер ввода-вывода ОС обычно использует асинхронные операции ввода-вывода. Синхронные операции предоставляются пользователю в виде системных вызовов. ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 37

Асинхронный ввод-вывод в Windows 2000 (1) n Синхронизация на объекте ядра «файл» q n Асинхронный ввод-вывод в 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 Асинхронный ввод-вывод в 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, Архитектура Windows NT ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 41

Схема обработки ввода-вывода в API Windows NT пользовательского режима ПЕРЕХОД В РЕЖИМ ЯДРА Системные Схема обработки ввода-вывода в API Windows NT пользовательского режима ПЕРЕХОД В РЕЖИМ ЯДРА Системные сервисы Ввода-вывода (Ntxxx) Диспетчер ввода-вывода (Ioxxx) IRP СЕРВИСЫ ЯДРА Драйверы устройств режима ядра HAL-функции доступа к устройствам ввода-вывода ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 42

Завершение операции ввода-вывода в Windows 2000 Фаза 1 1. 1. 2. DCP-процедура вызывает диспетчер Завершение операции ввода-вывода в 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) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. Завершение операции ввода-вывода в Windows 2000 (1) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 44

Завершение операции ввода-вывода в Windows 2000 (2) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. Завершение операции ввода-вывода в Windows 2000 (2) ОС. (с) Кафедра ИСТ, Маракасов Ф. В. 2005. (c) D. Solomon, M. Russinovich 45

Список литературы n n Олифер В. Г. , Олифер Н. А. Сетевые операционные системы. Список литературы 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