183
контроллер, а устройству может потребоваться еще некоторое время,
чтобы обработать полученные данные. Поэтому события освобождения
канала, контроллера и устройства индицируются разными признаками в
состоянии канала. В наборе команд ввода-вывода есть отдельные команды
для проверки состояния устройства, контроллера и канала. Адрес
устройства в схеме подключения, подобной той, которая представлена на
рисунке 6.4, адрес должен состоять из идентификатора (номера) канала,
идентификатора контроллера в канале, идентификатора устройства в
контроллере. Процесс обращается к устройству по некоторому своему
идентификатору – виртуальному адресу, который может быть подобен
реальному, а может представлять собой и логическое имя устройства. В
простейшем случае трансляция адреса устройства производится по
таблице перекодировки. Хотя, пока в современных системах предпочтение
отдается именно древовидной структуре подключения, возможна и более
сложная структура, допускающая подключение устройства к нескольким
контроллерам, а контроллера – к нескольким каналам. Реальный адрес
устройства может формироваться, таким образом, динамически. В IBM
System/390 эти функции переданы аппаратной подсистеме ввода-вывода.
Для принятия решений о доступности устройств ОС поддерживает
таблицы дескрипторов, отражающие состояние станций пути (три таблицы
– по числу типов станций). Для канала дескриптор включает в себя:
идентификатор канала; состояние (занят/свободен); список контроллеров,
подключенных к каналу; список запросов к каналу. Для контроллера:
идентификатор контроллера; состояние; список каналов, к которым
подключен контроллер; список устройств, подключенных к контроллеру;
список запросов к контроллеру. Для устройства: идентификатор
устройства; состояние; список контроллеров, к которым подключено
устройство; список запросов к устройству.