Система ввода-вывода.

     Не одна о.с. не обходится без системы ввода-вывода. Вот и о.с. Unix не оказалось исключением.

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

     При работе с файлами допускается 3 действия: чтение, запись, выполнение файла. Для каталогов выполнение значить возможность поиска в нем.

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

     Драйверы ввода-вывода и система буферизации ядра поддерживают 2 вида интерфейсов – блок-ориентированный и байт-ориентированный.

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

     Байт-ориентированный интерфейс предназначен для медленных периферийных устройств, обмен осуществляется в этом случае посимвольно, через буфер символов в ядре системы.

     Система ввода-вывода Unix - это часть ядра, выполняющая функцию диспетчера устройств ввода-вывода. Программная часть диспетчера включает управляющую компоненту буферизации и набор драйверов. В качестве структурных устройств используется: индексные дескрипторы специальных файлов, таблица связи между драйверами байт-ориентированных устройств, таблица буферов и блоков и таблица прерываний. Каждый индексный дескриптор ссылается на соответствующий элемент из таблицы связи. Каждый элемент связей адресуется к определенному драйверу, обеспечивает обмен информации между основной памятью и внешним устройством данного типа. Таблица связей блок-ориентированных устройств, связана с таблицей буферов блоков, указывающие на буфера ввода-вывода, образующие кэш-память. Программы драйверов предназначены для открытия и закрытия файлов, чтении и записи данных, для управления режимами работы устройств. При возникновение прерываний от ввода-вывода управление передается программе обработке прерываний драйвера, адрес которой выбирается из таблицы прерываний.