Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LEKTsII_PO_OPERATsIONN_M_SISTEMAM_I_SREDAM.doc
Скачиваний:
49
Добавлен:
26.11.2019
Размер:
2.27 Mб
Скачать

Основные системные таблицы ввода/вывода

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

Исходя из принципа управления вводом/выводом через супервизор ОС и учи­тывая, что драйверы устройств ввода/вывода используют механизм прерываний для установления обратной связи центральной части с внешними устройствами, можно сделать вывод о необходимости создания по крайней мере трех систем­ных таблиц:

1. Таб­лица оборудования (или список) (equipment table),

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

Каждый элемент этой таблицы на­зывается UCB (unit control block, блок управления устройством ввода/вывода). Каждый элемент UCB таблицы оборудования, содержит следую­щую информацию об устройстве:

  • тип устройства, его конкретная модель, символическое имя и характеристики устройства;

  • как это устройство подключено (через какой интерфейс, к какому разъему, какие порты и линия запроса прерывания используются и т. д.);

  • номер и адрес канала (и подканала), если такие используются для управле­ния устройством;

  • указание на драйвер, который должен управлять этим устройством, адрес секции запуска и секции продолжения драйвера;

  • информация о том, используется или нет буферирование при обмене данны­ми с этим устройством, «имя» (или просто адрес) буфера, если такой выделя­ется из системной области памяти;

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

  • поле указателя для связи задач, ожидающих устройство, и, возможно, много еще каких сведений.

2. Таблица описания виртуальных логических устройств.

Предназначена для реализации еще одного принципа виртуа­лизации устройств ввода/вывода — независимости от устройства. Желательно, чтобы программист не был озабочен учетом конкретных параметров (и/или воз­можностей) того или иного устройства ввода/вывода, которое установлено (или не установлено) в компьютер. Для него должны быть важны только самые об­щие возможности, характерные для данного класса устройств ввода/вывода, ко­торыми он желает воспользоваться. Например, принтер должен уметь выводить (печатать) символы или графическое изображение. А накопитель на магнитных дисках — считывать или записывать по указанному адресу порцию данных. Хотя чаще всего программист и не использует прямую адреса­цию при работе с магнитными дисками, а работает на уровне файловой системы. Однако в таком случае уже разработчики файловой системы не должны зависеть от того, накопитель какого конкретного типа и модели, а также какого производителя используется в данном конкретном компьютере. Важным должен быть только сам факт существования накопителя, имеющего некоторое количество цилиндров, головок чтения/записи и секторов на дорожке магнитного дискa. Упомянутые значения количества цилиндров, головок и секторов должны быть взяты из элемента таблицы оборудования. При этом для программиста так­же не должно иметь значения, каким образом то или иное устройство подключе­но к вычислительной системе, а не только какая конкретная модель устройства используется. Поэтому в запросе на ввод/вывод программист указывает именно логическое имя устройства. Действительное устройство, которое сопоставляется виртуальному (логическому), выбирается супервизором с помощью таблицы, о которой мы сейчас говорим. Итак, способ подключения устройства, его кон­кретная модель и соответствующий ей драйвер содержатся в уже рассмотренной таблице оборудования. Но для того, чтобы связать некоторое виртуальное уст­ройство, использованное программистом при создании приложения с системной таблицей, отображающей информацию о том, какое конкретно устройство и ка­ким образом подключено к компьютеру, используется таблица описания виртуальных логических устройств.