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


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

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


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

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

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

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

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

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

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

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

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

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

· И т.д.

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

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

Таблица прерываний.

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

В современных сложных ОС имеется гораздо больше системных таблиц или списков, используемых для организации процессами управления операциями ввода/вывода. Например, одной из возможных и часто реализуемых информа­ционных структур, сопровождающих практически каждый запрос на ввод/вывод, является блок управления данными (data control block, DCB). Назначение этого DCB — подключение препроцессоров к процессу подготовки данных на ввод/вывод, то есть учет конкретных технических характеристик и используе­мых преобразований. Это необходимо для того, чтобы имеющееся устройство получало не какие-то непонятные ему коды либо форматы данных, которые не соответствуют режиму его работы, а коды, созданные специально под данное устройство и используемый в настоящий момент формат представления данных.



Дата добавления: 2020-03-21; просмотров: 768;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.