Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_модуль2.doc
Скачиваний:
16
Добавлен:
25.08.2019
Размер:
258.05 Кб
Скачать

Многоуровневые драйверы

С усложнением IOS и организации ее многослойности появились так называемые высокоуровневые драйверы, которые располагаются в над традиционными драйверами.

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

Традиционные драйверы стали называть аппаратными, низкоуровневыми, или драйверами устройств.

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

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

На практике обычно используют от двух до пяти уровней драйверов.

Слишком большое количество уровней драйверов снижает скорость операций I/O.

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

Высокоуровневые драйверы придерживаются тех же внутренних интерфейсов, что и аппаратные драйверы.

Единственное отличие аппаратных от высокоуровневых - это то, что высокоуровневые драйверы, как правило, не вызываются по прерываниям.

Менеджер I/O управляет драйверами однотипно, независимо от их уровня.

Пример многоуровневого драйвера: вертикальная подсистема сетевых устройств OSI стека протоколов для доступа к Internet (Open System Interconnection – модель взаимодействия открытых систем – это мировой стандарт для разработки сетевых продуктов. Подробнее на уроках по сетям):

1. уровень – аппаратные драйверы (Ethernet, ArcNet, ATM …).

2. IP/IPX (слой драйверов сетевого уровня).

3. TCP, SPX, NetBEUI (слой драйверов транспортных протоколов).

4. http, ftp, smb и др. (слой драйверов протоколов прикладного уровня).

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

В подсистеме управления дисками аппаратные драйверы поддерживают представление диска как набора блоков. Но такие понятия, как «файл» и «файловая система», понимаются программным обеспечением файловых систем, которое в современных ОС также оформляется как драйвер, только высокоуровневый.

Так решают проблему поддержки в ОС нескольких файловых систем одновременно. Для этого в ОС устанавливается несколько высокоуровневых драйверов, работающих с общими аппаратными драйверами.

Аппаратные драйверы взаимодействуют с системой прерываний.

Драйверы более высоких уровней вызываются аппаратными драйверами или драйверами вышележащего уровня.