Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_k_zachetu_po_OS_UNIX.docx
Скачиваний:
11
Добавлен:
16.09.2019
Размер:
546.78 Кб
Скачать

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

  • Подсистема управления вводом-выводом позволяет процессам поддерживать

связь с периферийными устройствами, такими как накопители на магнитных дис-

ках и лентах, терминалы, принтеры и сети, с одной стороны, и с модулями яд-

ра, которые управляют устройствами и именуются драйверами устройств, с дру-

гой. Между драйверами устройств и типами устройств обычно существует одноз-

начное соответствие: в системе может быть один дисковый драйвер для управле-

ния всеми дисководами, один терминальный драйвер для управления всеми терми-

налами и один ленточный драйвер для управления всеми ленточными накопителя-

ми.

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

  • Система поддерживает "программные устройства", с каждым из которых не связано ни одно конкретное физическое устройство. Например, как устройство трактуется физическая память, чтобы позволить процессу обращаться к ней извне, пусть даже память не является периферийным устройством. Команда ps обращается к информационным структурам ядра в физической памяти, чтобы сообщить статистику процессов. Еще один пример: драйверы могут вести трассировку записей в удобном для отладки виде, а драйвер трассировки дает возможность пользователям читать эти записи.

  • Исследуется общая структура и функционирование драйверов и в качестве примеров общего взаимодействия рассматриваются дисковые и терминальные драйверы.

- взаимодействие драйверов с программной и аппаратной средой

  • В системе UNIX имеется два типа устройств - устройства ввода-вывода бло-

ками и устройства неструктурированного или посимвольного ввода-вывода. Как

уже говорилось в главе 2, устройства ввода-вывода блоками, такие как диски и

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

произвольной выборкой; к устройствам посимвольного ввода-вывода относятся

все другие устройства, в том числе терминалы и сетевое оборудование. Устрой-

ства ввода-вывода блоками могут иметь интерфейс и с устройствами посимволь-

ного ввода-вывода.

  • Пользователь взаимодействует с устройствами через посредничество файло-

вой системы (см. Рисунок 2.1). Каждое устройство имеет имя, похожее на имя

файла, и пользователь обращается к нему как к файлу. Специальный файл уст-

ройства имеет индекс и занимает место в иерархии каталогов файловой системы.

Файл устройства отличается от других файлов типом файла, хранящимся в его

индексе, либо "блочный", либо "символьный специальный", в зависимости от устройства, которое этот файл представляет. Если устройство имеет как блочный,

так и символьный интерфейс, его представляют два файла: специальный файл устройства ввода-вывода блоками и специальный файл устройства посимвольного

ввода-вывода. Системные функции для обычных файлов, такие как open, close,

read и write, имеют то же значение и для устройств, в чем мы убедимся позже.

Системная функция ioctl предоставляет процессам возможность управлять уст-

ройствами посимвольного ввода-вывода, но не применима в отношении к файлам

обычного типа (*). Тем не менее, драйверам устройств нет необходимости под-

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]