Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_по_ОС / ТОС_10_Устройства_слайды.rtf
Скачиваний:
34
Добавлен:
03.03.2016
Размер:
3.27 Mб
Скачать

ПВВ

В конечном итоге работа всех интерфейсов, как высокого уровни (файловая система), так и более низкого (взаимодействие с физическим устройством), обеспечивается подсистемой ввода/вывода ядра (ПВВ).

основным компонентом ПВВ являются драйверы — модули ядра, обеспечивающие непосредственную работу с периферийными устройствами.

UNIX использует два основных типа драйверов – символьные и блочные.

Устройства

UNIX "изолирует" приложения от аппаратной части вычислительной системы.

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

UNIX предоставляет единый интерфейс различных устройств системы в виде специальных файлов устройств.

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

Каждый специ­альный файл соответствует какому-либо физическому устройству (напри­мер, диску, накопителю на магнитной ленте, принтеру или терминалу) или т. н. псевдоустройству (например, сетевому интерфейсу, пустому уст­ройству, сокету или памяти).

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

Существует два типа специальных файлов устройств:

  • Файлы блочных устройств

  • Файлы символьных устройств

Файлы блочных устройств

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

Ядро ОС обеспечивает необходимую буферизацию. Пример: жесткие диски.

ПРИМЕР: фрагмент подробного списка файлов каталога /dev системы UNIX, отражающий файлы для доступа к первому и второму разделам первого диска SCSI:

brw 1 root system 8, 1 Apr 18 11:03 /dev/rzOa

brw 1 root system 8, 1 Apr 18 13:15 /dev/rzOb

Файлы символьных устройств

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

Пример устройства с символьным интерфейсом: терминалы, принтеры и накопители на магнитной ленте.

одно и то же физическое устройство может иметь как блочный, так и символьный интерфейсы.

Для блочных устройств такой интерфейс также называют интерфейсом доступа низкого уровня (raw interface).

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

crw 1 root system 8,1 Apr 18 11:04 /dev/rrzOa

crw 1 root system 8,1 Apr 18 13:15 /dev/rrzOb

crw-r 1 root system 13,1 Apr 18 18:08 /dev/kmem

crw-rw-rw- 1 root system 7,0 Apr 18 15:20 /dev/ptypO

crw-rw-rw- 1 root system 7,1 Apr 18 15:20 /dev/ptypl

crw-rw-rw- 1 bin terminal 3,2 Apr 18 16:10 /dev/ttyO2

crw-rw-rw- 1 bin terminal 3,3 Apr 18 16:10 /dev/ttyO3

Последние три строки списка представляют интерфейс доступа к виртуальной памяти ядра и двум псевдотерминалам.

В поле размера файла (пятая колонка вывода команды ls()) у специаль­ных файлов устройств выводятся два числа.

Это так называемые старшее (major) и младшее (minor) числа. Часто драйвер обслуживает более одного устройства.

старшее число указывает ядру на конкретный драй­вер (например, драйвер псевдо-терминалов), а младшее передается драй­веру и указывает на конкретное устройство (например, конкретный псев­дотерминал).

Интерфейс файловой системы для взаимодействия с устройством схемати­чески представлен на рис. 1.7.

Мнемоника названий специальных файлов устройств в файловой системе unix

Названия специальных файлов устройств в большой степени зависят от конкретной версии UNIX.

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

Пример: специальный файл устройства для доступа к разделу диска в ОС Solaris:

/dev/dsk/c0t4d0s2

Данный файл предоставляет блочный интерфейс, а соответствующий ему символьный (или необработанный) файл имеет имя:

/dev/rdsk/c0t4d0s2

Файлы доступа к дисковым устройствам располагаются в специальных подкаталогах — /dev/dsk (для блочных устройств) и

/dev/rdsk (для сим­вольных устройств).

Такая структура хранения специальных файлов харак­терна для систем UNIX версии System V.

Имя файла, характерное для систем версии SVR4, можно представить в общем виде:

cktldmsn

где к номер контроллера,

l — номер устройства (для устройств SCSI это идентификатор устройства ID),

m — номер раздела, а

n — логический но­мер устройства (LUN) SCSI.

Т.о. файл устройства /dev/rdsk/c0t4d0s2 обеспечивает доступ к первому разделу (нумерация разделов начинается с 0) диска с ID=4, LUN=2 первого контроллера.

Такой формат имен файлов в версии SVR4 применяется для всех дисковых устройств и накопителей на магнитной ленте. Иногда для этих стандарт­ных имен в файловой системе имеются символические связи с более про­стыми названиями.

Например, в Solaris имя /dev/sd0a может использовать­ся вместо /dev/dsk/c0t3d0s, также обеспечивая доступ к устройству:

lrwxrwxrwx 1 root root 12 Oct 31 17:48 /dev/sd0a ->dsk/c0t3d0s

В SCO UNIX имеются специальные файлы с более простыми именами /dev/root, /dev/usr и т. п, которые предоставляют доступ к разделам диска с такими же именами (root, usr).

Более простая мнемоника обнаруживается в именах специальных файлов других устройств. Так, например, параллельный порт в большинстве сис­тем имеет имя /dev/lpn, где п — номер порта (0, 1 и т. д.)- Терминальные линии, подключенные к последовательным портам компьютера обознача­ются как /dev/ttynn, где пп является идентификатором линии. В табл. 1.6 приведены примеры других специальных файлов устройств.

Таблица 1.6. Имена некоторых специальных файлов устройств

Общий вид имени Пример Описание устройства, доступ к

которому обеспечивается через файл

/dev/rmtn /dev/rmtO Накопитель на магнитной ленте

/dev/nrmtn /dev/nrmtO Накопитель на магнитной ленте в режиме

без перемотки назад по окончании работы

/dev/rstn /dev/rst1 SCSI-накопитель на магнитной ленте

/dev/cdn /dev/cdO CD-ROM

/dev/cdrom

/dev/ttypn /dev/ttyp12 Псевдотерминал (подчиненный)

/dev/ptypn /dev/ptyp5 Псевдотерминал (мастер)

/dev/console Системная консоль

/dev/tty Синоним терминальной линии управляю-

щего терминала для данного процесса

/dev/mem Физическая оперативная память

/dev/kmem Виртуальная память ядра

/dev/null Нулевое устройство — весь вывод на него

уничтожается, а при попытке ввода с этого устройства

возвращается 0 байтов

/dev/zero Нулевое устройство — весь вывод на него

уничтожается, а ввод приводит к получе­нию последовательности О

Соседние файлы в папке Лекции_по_ОС