30 Подсистема ввода – вывода
Назначение - Работа всех интерфейсов как высокого ( файловая система) так и низкого ( взаимодействие с физическим устройством) уровней обеспечивается подситемой ввода – вывода ядра ОС.
Основные компоненты: драйверы устройств– модули ядра, обеспечивающие непосредственную работу с периферийными устройствами -> от остальной части ядра скрыты архитектурные особенности компьютера , что значительно упрощает перенос системы и поддержку работы различных периферийных устройств. В процессе запуска системы ядро вызывает соответствующие процедуры инициализации установленных драйверов.
Типы драйверов:
Символьные драйверы: Обеспечивают работу с устройствами с побайтовым доступом и обменом данными ( модемы , терминалы, принтеры). Доступ к таким драйверам не включает использование буферного кэша, таким образом ввод и вывод как правило не буферизуются. При необходимости буферизации используется подход называемый clist.
Блочные драйверы: Позволяют производить обмен данными с устройствами фиксированными блоками. Обычно используется буферный кэш, который и является интерфейсом между файловой системой и устройством. Если размер данных меньше блока, то на системном уровне все равно считывается целый блок.
Драйверы низкого уровня ( raw drivers): Этот тип интерфейса блочных драйверов позволяет производить обмен данными с блочными устройствами, минуя буферный кэш, устроиство, в частности, может быть адресовано элементами , размер которых не совпадает с размером блока. Обмен данными происходит независимо от файловой подсистемы и буферного кэша, что позволяет ядру производить передачу непосредственно между пользовательским процессом и устройством , без дополнительного копирования.
Драиверы устройств UNIX
|