Конспект лекций по дисциплине «Операционные системы и среды»
Вид материала | Конспект |
4.Система ввода-вывода 4.1.Общие сведения 4.1.1.Компоненты системы ввода-вывода Диспетчер ввода-вывода |
- Конспект лекций по дисциплине " Операционные системы", 1459.26kb.
- Ые системы", "Операционные системы, среды и оболочки" и "Операционные системы и системное, 1294.27kb.
- Рабочая программа по учебной дисциплине Операционные системы, среды и оболочки наименование, 623.3kb.
- В. Ф. Панин Конспект лекций по учебной дисциплине "Теоретические основы защиты окружающей, 1559.17kb.
- Программа предназначена для изучения учебного курса по дисциплине "Операционные системы,, 53.62kb.
- Методические указания для выполнения Курсовой работы по дисциплине «Операционные системы», 72.86kb.
- Программа по дисциплине «Технологии программирования и операционные системы», 42.87kb.
- Вопросы к экзамену по дисциплине «Операционные системы и среды», 34.81kb.
- Экзаменационные билеты по дисциплине «операционные системы и среды», 429.29kb.
- Конспект лекций по дисциплине «Маркетинг», 487.79kb.
4.СИСТЕМА ВВОДА-ВЫВОДА
Как отметил в книге "Fundamentals of Operating Systems" Листер: "По традиции, ввод-вывод считается одной из самых сложных областей проектирования ОС, в которой сложно применить общий подход и где изобилуют частные методы.'" В действительности источником сложности является огромное число устройств ввода-вывода невероятно разнообразной природы, которые должна поддерживать ОС. Перед проектировщиком системы ввода-вывода встает непростая задача — создать виртуальный интерфейс устройств ввода-вывода, позволяющий программистам просто считывать или сохранять данные, не обращая внимание на специфику устройства.
Система ввода-вывода, способная объединить в одной модели широкий набор устройств, должна быть универсальной. Она должна учитывать потребности существующих устройств, от простой мыши до клавиатур, принтеров, графических дисплеев, дисковых накопителей, компакт-дисков и даже сетей. Она должна также поддерживать будущие технологии хранения и ввода данных. Система ввода-вывода NT предоставляет унифицированный интерфейс высокого уровня для операций ввода-вывода на уровне исполнительной системы и изолирует прикладные программы от специфики физических устройств. Она также избавляет остальную часть ОС от деталей работы с устройствами и таким образом изолирует машинно-зависимый код и сокращает его объем.
Диспетчер ввода-вывода — унифицирующий компонент системы ввода-вывода — разработан Дэррилом Хэвенсом (Darryl Havens), который имеет более чем 12-летний опыт разработки и кодирования компонентов ОС. Ввод-вывод Windows 2000 заимствует некоторые черты тех ОС, над которыми работал Дэррил — в частности, ОС VAX/VMS и VAX ELN фирмы DEC. Поддержка Win32, OS/2 и POSIX также определила некоторые требования, повлиявшие на конструкцию системы ввода-вывода.
Цели проекта системы ввода-вывода состояли в следующем:
- Предоставить поддержку нескольких устанавливаемых файловых систем (installable file systems), включая FAT, высокопроизводительную файловую систему (HPFS), файловую систему компакт-дисков (CDFS) и файловую систему NT (NTFS) — новую, полностью восстанавливаемую файловую систему.
- Предоставить сервисные возможности, упрощающие разработку драйверов устройств и в то же время пригодные для многопроцессорной системы.
- Позволить администратору динамически добавлять к системе и удалять из нее драйверы устройств.
- Сделать обработку запросов на ввод-вывод быстрой и в то же время обеспечить возможность написания драйверов на языке высокого уровня.
- Предоставить средства проекционного файлового ввода-вывода для загрузки исполняемых программ, кэширования файлов и использования в приложениях.
Кроме этих специальных целей, подсистема ввода-вывода должна соответствовать и требованиям к ОС в целом. Например, она должна быть переносимой; должна защищать свои совместно используемые ресурсы с помощью объектов; предоставлять средства поддержки интерфейсов ввода-вывода Win32, OS/2 и POSIX, а также корректно работать в многопроцессорной среде.
В начале этой главы рассматривается структура и особенности построения системы ввода-вывода, после чего описывается обработка запросов ввода-вывода по мере их прохождения в системе. В заключение рассматривается послойная модель, используемая при создании драйверов.
4.1.Общие сведения
Система ввода-вывода исполнительной системы NT — это часть кода ОС, получающая запросы ввода-вывода от процессов пользовательского режима и режима ядра и передающая их, в преобразованном виде, устройствам ввода-вывода. Между сервисами пользовательского режима и аппаратурой ввода-вывода располагаются несколько отдельных системных компонентов, включая законченные файловые системы, многочисленные драйверы устройств и один или несколько драйверов сетевых транспортов.
Обзор ввода-вывода в NT мы начнем с выделения компонентов системы ввода-вывода и связей между ними. За этим последует обсуждение основных деталей устройства системы ввода-вывода — использования объектов, унифицированной модели драйверов файловых систем и драйверов устройств, асинхронной обработки и средств проекционного ввода-вывода.
4.1.1.Компоненты системы ввода-вывода
Чтобы понять конструкцию системы ввода-вывода NT, необходимо познакомиться с различными ее частями. На рисунке упрощенно показана структура системы.
Система ввода-вывода вправляется пакетами (packet driven). Это означает, что каждый запрос ввода-вывода представляется в виде пакета, запроса ввода-вывода (I/O request packet, IRP) во время его перехода от одного компонента системы к другому. IRP — это структура данных, управляющая обработкой операции ввода-вывода на каждой стадии ее выполнения.
Диспетчер ввода-вывода (I/O manager) определяет упорядоченный каркас — модель, внутри которой запросы ввода-вывода доставляются файловым системам и драйверам устройств. Диспетчер в действительности не управляет вводом-выводом. Его работа — создать IRP, который используется для представления операции ввода-вывода, передать пакет соответствующему драйверу и удалить по завершении операции ввода-вывода. В противоположность этому, драйвер получает IRP, выполняет указанную в нем операцию ввода-вывода и либо возвращает его обратно диспетчеру ввода-вывода для завершения обработки, либо передает для продолжения другому драйверу (через диспетчер). I— В системе ввода-вывода NT термин драйвер (driver) употребляется в более широком смысле, чем обычный термин драйвер устройства (device driver). Файловые системы NT — это тоже драйверы "устройств", но более сложные, они принимают запросы ввода-вывода и обрабатывают их, выдавая более конкретные запросы к драйверам физических устройств. Взаимодействие между драйверами файловых систем и драйверами устройств осуществляется посредством передачи IRP.
В дополнение к созданию и удалению IRP, диспетчер ввода-вывода предоставляет реализации процедур, общих для разных драйверов. Драйверы обращаются к этим процедурам во время обработки ввода-вывода. Благодаря объединению общих задач в диспетчере ввода-вывода, отдельные драйверы становятся проще и компактнее. Например, диспетчер предоставляет функцию вызова драйвером других драйверов. Он также управляет буферами для обработки запросов ввода-вывода, предоставляет драйверам поддержку тайм-аутов и сохраняет информацию о том, какие устанавливаемые файловые системы в данный момент загружены.
П

омимо этого, диспетчер ввода-вывода предоставляет гибкие средства, позволяющие подсистемам среды, таким как Win32 и POSIX, реализовывать свои API ввода-вывода. Сервисы, предоставляемые диспетчером ввода-вывода, имеют широкие функциональные возможности, позволяющие поддерживать различные схемы ввода-вывода пользовательского режима.
Рис. Части системы ввода-вывода.