Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Менеджер (диспетчер) ввода-вывода.
В ПВВ наряду с модулями, отражающими специфику внешних устройств, существуют модули универсального назначения • Они организуют согласованную работу всех остальных компонентов ПВВ и взаимодействие с пользовательскими процессами и другими подсистемами ОС • Эти функции распределены по всем уровням, образуя оболочку, которую называют менеджером ввода-вывода. Верхний слой менеджера ввода-вывода составляют соответствующие системные вызовы, принимающие от процессов запросы на ввод-вывод и переадресующие их соответствующим модулям и драйверам • Также они возвращают процессам результаты операций ввода-вывода
Нижний слой менеджера реализует непосредственное взаимодействие с контроллерами устройств, экранируя драйверы от особенностей аппаратной платформы • Также в состав менеджера может входить диспетчер прерываний • Примеры подобных менеджеров - менеджер ввода-вывода Windows NT/2000/XP/2003 и среда Streams, существующая либо поддерживаемая многими версиями Unix, за исключением Linux.
Менеджер ввода-вывода Windows NT/2000/XP организует взаимодействие между модулями с помощью пакетов запросов ввода-вывода – IRP • Получив запрос от системного вызова, менеджер формирует IRP и передает его нужному драйверу, а тот после выполнения запрошенной операции возвращает менеджеру ответ в виде другого IRP • Менеджер может передать этот IRP другому драйверу • Менеджер позволяет драйверам задавать взаимосвязи, и на основании информации о них и происходит передача IRP
Многоуровневые драйверы. Традиционно под драйвером понимается программный модуль, который: – входит в состав ядра ОС – непосредственно управляет внешним устройством, взаимодействуя с его контроллером – обрабатывает прерывания от контроллера устройства – предоставляет программисту удобный логический интерфейс работы с устройством, экранируя от него низкоуровневые детали управления устройством и организации его данных – взаимодействует с другими модулями ядра ОС с помощью строго оговоренного интерфейса и т.п.
По мере развития ОС и усложнения структуры ПВВ, наряду с традиционными драйверами в ОС появились высокоуровневые драйверы • Они располагаются в общей модели ПВВ над традиционными драйверами • Традиционные драйверы стали называть аппаратными драйверами • Они освобождены от высокоуровневых функций и занимаются только низкоуровневыми операциями, результатами которых могут пользоваться более высокие уровни.
При их использовании повышается гибкость и расширяемость функций по управлению устройством – вместо жесткого набора функций, сосредоточенных в единственном драйвере, администратор ОС может выбрать требуемый набор функций, установив нужный низкоуровневый драйвер • Если различным программам необходимо работать с логическими моделями одного и того же физического устройства, то для этого в системе устанавливается несколько драйверов на одном уровне, которые работают над одним аппаратным драйвером.
Количество уровней драйверов в ПВВ обычно не ограничивается каким-либо пределом (обычно от 2 до 5) • Несколько драйверов, управляющих одним устройством, но на разных уровнях, можно рассматривать как набор отдельных драйверов или как один многоуровневый драйвер.
В подсистеме сетевых устройств аппаратными являются драйверы сетевых адаптеров, которые выполняют функции канальных протоколов, таких как Ethernet, Frame Relay, ATM и других технологий • Эти драйверы выполняют простые функции – они организуют передачу кадров данных между устройствами одного сегмента сети • Над ними располагается слой модулей, которые реализуют функции более интеллектуальных протоколов сетевого уровня – IP или IPX, которые могут обеспечить взаимодействие устройств разных сетей с произвольной топологией связи. Над слоем сетевых протоколов располагается слой драйверов транспортных протоколов, таких как TCP/UDP, SPX или NetBEUI, которые отвечают за гарантированную связь между компьютерами сети • Еще выше расположен слой драйверов протоколов прикладного уровня (http, ftp и SMB и другие) • Они предоставляют пользователям сети конечные услуги по доступу к гипертекстовой информации, архивам файлов и т.д. Необязательно все модули ПВВ оформляются в виде драйверов • Например, в подсистеме управления дисками обычно имеется дисковый кэш, который служит для кэширования блоков дисковых файлов в ОП • Достаточно специфические функции делают нецелесообразным оформление его в виде драйвера, взаимодействующего с другими модулями ОС. Аппаратные драйверы после запуска ОВВ должны своевременно реагировать на завершение контроллером заданного действия • Для решения этой задачи они взаимодействуют с системой прерываний • Драйверы более высоких уровней вызываются не по прерываниям, а по инициативе аппаратных драйверов или драйверов вышележащего уровня.
Не все процедуры аппаратного драйвера вызываются по прерываниям, поэтому драйвер обычно имеет определенную структуру, в которой выделяется процедура обработки прерываний (Interrupt Service Routine, ISR) • Эта процедура вызывается при поступлении запроса от соответствующего устройства диспетчером прерываний.
|
Последнее изменение этой страницы: 2019-05-08; Просмотров: 347; Нарушение авторского права страницы