- •4. Управление устройствами ввода-вывода
- •Задачи ос по управлению файлами и устройствами
- •Многослойная модель подсистемы ввода-вывода
- •Менеджер ввода-вывода
- •Многоуровневые драйверы
- •Специальные файлы
- •Избыточные дисковые подсистемы raid
- •Цели и задачи файловой системы
- •Типы файлов. Иерархическая структура файловой системы
- •Имена файлов. Атрибуты файлов. Логическая организация файла
- •Физическая организация и адресация файла
- •Файловые операции. Способы организации файловых операций.
- •Стандартные файлы ввода и вывода, перенаправление вывода
- •Контроль доступа к файлам. Механизм контроля доступа и защиты от сбоев
- •Отображаемые в память файлы
- •Восстанавливаемость файловых систем
- •Протоколирование транзакций
Многослойная модель подсистемы ввода-вывода
Многослойное построение программного обеспечения характерно для ОС вообще, оказывается особенно полезным при построении подсистемы ввода-вывода . При большом разнообразии устройств ввода-вывода, обладающих различными характерами, иерархическая структура программного обеспечения позволяет соблюсти баланс между двумя противоречивыми требованиями:
- с одной стороны необходимо учесть все особенности каждого устройства;
- с другой стороны обеспечить единое логическое представление и унифицированный интерфейс для устройств всех типов.
При этом нижние слои подсистемы должны включать индивидуальные драйверы для конкретных физических устройств, а вернее слои должны обобщать процедуру управления этими устройствами, предоставляя общий интерфейс для групп устройств, обладающих некоторыми общими характеристиками. Например, для принтеров производителя, матричных принтеров и так далее.
Общая структура подсистемы ввода-вывода приведена на рис.5.1.
Рис.5.1.Общая структура подсистемы ввода-вывода
Менеджер ввода-вывода
В подсистеме ввода-вывода наряду с модулями, отражающими специфику внешних устройств и образующими вертикальные подсистемы. Существуют модули универсального назначения. Эти модули согласуют согласованную работу всех остальных компонентов в/в и взаимодействие с пользовательскими процессами и другими подсистемами ОС.
Так же как и функции управления, устройствами эти, организующие функции, распределены по всем уровням, образуя оболочку, которую называют менеджером ввода-вывода.
Верхний слой менеджера составляет системные вызовы ввода-вывода, которые принимают от пользовательских процессов запросы на ввод-вывод и переадресуют их отвечающим за предельный класс устройств модуля и драйвера, а также возвращает процессам результаты операции ввода-вывода.
Нижний слой менеджера реализует непосредственное взаимодействие с контроллерами внешних устройств, экранируя драйверы от особенности аппаратной платформы компьютере, шины ввода-вывода , системы прерываний и т. д.
Этот слой принимает от драйверов запрос на обмен данных с регистрами контроллеров к некоторой обобщенной форме с использованием не зависимо от шины ввода-вывода адресации и формата, а затем преобразует эти запросы в зависящие от аппаратной платформы формат.
Важной функцией менеджера ввода-вывода является создание некоторой среды для остальных компьютеров подсистемы, которая бы облегчала их взаимодействие друг с другом. Эта задача может быть решена за счет задания некоторого стандартного внутреннего интерфейса взаимодействия модулей в/в между собой.
Рассмотрим в качестве примера менеджер ввода-вывода Windows NT:
- он организует взаимодействием между модулями с помощью пакета запроса ввода-вывода IRP (Input/output Request Packet). Получив запрос от процедуры системного вызова менеджер формирует IRP-пакет и передает его нужному драйверу. Драйвер, после выполнения завершенной операции возвращает ответ в виде другого IRP менеджеру, а тот в свою очередь может при необходимости передать этот IRP другому драйверу.
Менеджер позволяет драйверам задавать между собой взаимосвязи и на основании информации о взаимосвязях происходит передача пакетов IRP. Кроме того, менеджер ввода-вывода Windows NT поддерживает загрузку и выгрузку драйверов без остановки системы.
