Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 4 Управление устройствами в-в и ФС.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
332 Кб
Скачать
☆
    1. Многослойная модель подсистемы ввода-вывода

Многослойное построение программного обеспечения характерно для ОС вообще, оказывается особенно полезным при построении подсистемы ввода-вывода . При большом разнообразии устройств ввода-вывода, обладающих различными характерами, иерархическая структура программного обеспечения позволяет соблюсти баланс между двумя противоречивыми требованиями:

- с одной стороны необходимо учесть все особенности каждого устройства;

- с другой стороны обеспечить единое логическое представление и унифицированный интерфейс для устройств всех типов.

При этом нижние слои подсистемы должны включать индивидуальные драйверы для конкретных физических устройств, а вернее слои должны обобщать процедуру управления этими устройствами, предоставляя общий интерфейс для групп устройств, обладающих некоторыми общими характеристиками. Например, для принтеров производителя, матричных принтеров и так далее.

Общая структура подсистемы ввода-вывода приведена на рис.5.1.

Рис.5.1.Общая структура подсистемы ввода-вывода

    1. Менеджер ввода-вывода

В подсистеме ввода-вывода наряду с модулями, отражающими специфику внешних устройств и образующими вертикальные подсистемы. Существуют модули универсального назначения. Эти модули согласуют согласованную работу всех остальных компонентов в/в и взаимодействие с пользовательскими процессами и другими подсистемами ОС.

Так же как и функции управления, устройствами эти, организующие функции, распределены по всем уровням, образуя оболочку, которую называют менеджером ввода-вывода.

Верхний слой менеджера составляет системные вызовы ввода-вывода, которые принимают от пользовательских процессов запросы на ввод-вывод и переадресуют их отвечающим за предельный класс устройств модуля и драйвера, а также возвращает процессам результаты операции ввода-вывода.

Нижний слой менеджера реализует непосредственное взаимодействие с контроллерами внешних устройств, экранируя драйверы от особенности аппаратной платформы компьютере, шины ввода-вывода , системы прерываний и т. д.

Этот слой принимает от драйверов запрос на обмен данных с регистрами контроллеров к некоторой обобщенной форме с использованием не зависимо от шины ввода-вывода адресации и формата, а затем преобразует эти запросы в зависящие от аппаратной платформы формат.

Важной функцией менеджера ввода-вывода является создание некоторой среды для остальных компьютеров подсистемы, которая бы облегчала их взаимодействие друг с другом. Эта задача может быть решена за счет задания некоторого стандартного внутреннего интерфейса взаимодействия модулей в/в между собой.

Рассмотрим в качестве примера менеджер ввода-вывода Windows NT:

- он организует взаимодействием между модулями с помощью пакета запроса ввода-вывода IRP (Input/output Request Packet). Получив запрос от процедуры системного вызова менеджер формирует IRP-пакет и передает его нужному драйверу. Драйвер, после выполнения завершенной операции возвращает ответ в виде другого IRP менеджеру, а тот в свою очередь может при необходимости передать этот IRP другому драйверу.

Менеджер позволяет драйверам задавать между собой взаимосвязи и на основании информации о взаимосвязях происходит передача пакетов IRP. Кроме того, менеджер ввода-вывода Windows NT поддерживает загрузку и выгрузку драйверов без остановки системы.