Трехуровневые драйвера
Первая таблица (список) содержит информацию обо всех устройствах ввода-вывода, подключенных к системе. (её называют - таблица оборудования). Каждый элемент таблицы UCB (unit control block)- блок управления устройством ввода-вывода. UCB содержит информацию об устройстве:
Тип устройства, его модель символьное имя и характеристики
Как устройство подключено (интерфейс и разъем).
Номер порта и адрес канала управления.
Указание на драйвер, который управляет устройством (адрес секции запуска, выполнения и завершения)
Используется ли буферезация при обмене, адрес буфера обмена,
Установка тайм-аута и счетчик тайм-аутов
Состояние устройства
Поле указателя для связи процессов, ожидающих устройство.
Важно UCB содержит дескриптор процесса, который использует устройство. Если оно свободно – дескриптор будет указывать на нуль.
Вторая таблица предназначена для реализации принципа виртуализации (на её основе организовано независимость устройства ввода – вывода от физики устройства). Поскольку ни программа, ни файловая система не должны зависеть от типа жесткого диска. Поэтому процессы используют не физическое, а логическое представление устройства. Супервизор через вторую таблицу сопоставляет логическое имя физическому, связывая устройства. Эта таблица называется таблицей описания виртуальных логических устройств. (DRT – device reference table). Назначение её связь между виртуальными устройствами и реальными устройствами из первой таблицы. Во многих системах вторая таблица делится на общую, и по одной для каждого пользователя, что позволяет создать необходимые связи между устройствами.
Третья таблица необходима для организации обратной связи между центральной частью и устройствами ввода-вывода. Это таблица прерываний, которая указывает для каждого сигнала запроса на прерывание тот элемент UCB, который сопоставлен данному устройству. Необходима связь между сигналами прерывания и таблицей оборудования.
В современных системах добавлены специальные таблицы управления блоками данных. Блоки управления данными (data control block DCB), предназначены для преобразований данных на препроцесорах, для конкретного устройства. Устройство должно получать данные, специально созданные для этого устройства.
Рассмотрим процесс управления устройством ввода – вывода
Запрос от программы поступает на супервизор, которые проверяет корректность запроса, Запрос перенаправляется супервизором, с помощью таблицы DRT на элемент UCB в таблице оборудования. Если устройство занято, запрос помещается в список задач, ожидающих устройство. Если устройство свободно, супервизор ввода-вывода определяет из UCB тип устройства и запускает препроцессор для для формирования последовательности управляющих данных устройству(3). Когда программа управления готова, супервизор передает её драйверу в секцию запуска(4). Драйвер инициирует операцию управления, обнуляет счетчик тайм-аута и возвращает управление супервизору (5). Супервизор ставит на процессор задачу. Когда устройство ввода-вывода отработает посланную команду, оно выставляет сигнал запроса на прерывание, по которому через таблицу прерываний управление передается в секцию продолжения драйвера. Получив новую команду, устройство начинает его обработку, а процессор занимается следующими процессами.
Очевидно, что если имеется устройство, снимающее нагрузку с центрального процессора, он будет выполнять все операции по схеме, кроме непосредственно управления операциями ввода-вывода. DMA использует специальные канальные команды и разгружает процессор, избавляя его от непосредственного управления обменом данными между памятью и внешними устройствами.
Дата добавления: 2018-11-26; просмотров: 625;