Уровень 1. Драйверы внешних устройств
Первый уровень ОС представлен программами управления устройствами ввода/вывода. В первую очередь это драйверы устройств.
Драйвер (driver) – специализированный программный модуль, управляющий внешним устройством. Драйверы обеспечивают единый интерфейс к различным устройствам, тем самым снимая с пользовательских программ и ядра ОС необходимость знать особенности взаимодействия с конкретным устройством конкретного производителя.
Большинство современных ОС запрещают пользовательским программам прямой доступ к аппаратным ресурсам. Это делается для повышения надежности и обеспечения безопасности в многопользовательских системах. В таких системах драйверы являются для прикладных программ единственным способом доступа к ресурсам.
Еще одна важная функция драйвера – это разделение доступа к устройству в средах с вытесняющей многозадачностью. В таких системах при отсутствии контроля появляется вероятность одновременного доступа нескольких параллельно исполняющихся процессов к одному устройству. Но для большинства внешних устройств даже простейшие операции ввода/вывода являются совокупностью нескольких команд. Поэтому неконтролируемое обращение может привести к потере данных или даже поломке устройства. В случае наличия драйвера вероятность такой ситуации сводится практически к нулю, поскольку драйвер имеет исключительное право на обращение к устройству, и обеспечивает предоставление его ресурсов по запросу. При необходимости драйвер поставит конкурентные запросы в очередь и обслужит каждый в свое время, не допуская при этом некорректных ситуаций.
Более или менее четкой общей классификации драйверов не существует. Существуют частные варианты. Например, драйверы для ОС Windows принято классифицировать следующим образом:
1) драйверы режима ядра (Kernel-Mode Drivers):
– драйверы файловой системы (File System Drivers) – реализуют ввод-вывод на локальные и сетевые диски;
– унаследованные драйверы (Legacy Drivers) – написаны для предыдущих версий Windows NT;
– драйверы видеоадаптеров (Video Drivers) - реализуют графические операции;
– драйверы потоковых устройств (Streaming Drivers) - реализуют ввод-вывод видео и звука;
– WDM-драйверы (Windows Driver Model, WDM) - поддерживают технологию Plag and Play и управления электропитанием. Их отличительной особенностью является совместимость на уровне исходного кода между Windows 98, Windows ME и Windows 2000;
2) драйверы пользовательского режима (User-Mode Drivers):
– драйверы виртуальных устройств (Virtual Device Drivers, VDD) - используются для поддержки программ MS-DOS (не путать с VxD драйверами в Windows 95/98 - это совсем разные вещи, хотя и имеют одно название);
– драйверы принтеров (Printer Drivers).
Драйверы для ОС семейства UNIX делятся на два типа:
– блок-ориентированные драйверы управляют устройствами прямого доступа, которые хранят информацию в блоках фиксированного размера, каждый из которых имеет собственный адрес. Самое распространенное внешнее устройство прямого доступа – жесткий диск. Адресуемость блоков приводит к тому, что для устройств прямого доступа появляется возможность буферизации данных в оперативной памяти, что значительно влияет на общую организацию ввода-вывода для блок-ориентированных драйверов;
– байт-ориентированные драйверы работают с устройствами, которые не адресуются и не позволяют производить операцию поиска данных, они генерируют или потребляют поток байтов. Их также называют устройствами последовательного доступа. Пример – сетевые адаптеры.
Дата добавления: 2019-10-16; просмотров: 598;