А.Ю.Бяков, И.Б.Бурдонов, Ю.П.Смирнов АДРЕСАЦИЯ И УПРАВЛЕНИЕ УСТРОЙСТВАМИ © ИТМ и ВТ АН СССР, 1679 СОДЕРЖАНИЕ I. Отображение и идентификация внешнего
оборудования
I. ОТОБРАЖЕНИЕ И ИДЕНТИФИКАЦИЯ ВНЕШНЕГО ОБОРУДОВАНИЯ При организации ввода-вывода с учетом конкретного размещения и типов рассредоточенного периферийного оборудования пользователю необходимо знать способ отображения и идентификации внешних устройств. Всякий периферийный абонент (устройство) по отношению к рассматриваемому многомашинному комплексу характеризуется внешним интерфейсом, внутренним интерфейсом, способом подключения к сети 2-го уровня, местом подключения к этой сети, своим географическим положением и некоторыми другими характеристиками. Понятие внешнего интерфейса включает в себя правила работы с устройством и структуры представления информации извне по отношению к вычислительной системе. А внутренний интерфейс с учетом способа подключения характеризуется информационными структурами и алгоритмами обменов между всеми звеньями аппаратной цепочки от данного устройства до периферийного процессора. Но с точки зрения центральных процессоров с каждым реальным абонентом связаны несколько стандартизованных способов работы, каждый из которых реализуется программным обеспечением периферийного процессора. Множество этих стандартизованных способов не является застывшим и может меняться с развитием системы. В ОС ЦП для характеристики периферийных абонентов вводится понятие элементарного типа, которое определяется как совокупность внешнего интерфейса устройства и набора стандартизованных способов работы с ним со стороны центрального процессора. Каждый из этих стандартизованных способов работы называется внешней (по отношению к ЦП) функцией абонента или устройства. Очевидно, что понятие элементарного типа скрывает за собой способ подключения, так как специфика аппаратной цепочки от периферийного процессора до абонента частично, а иногда и полностью сглаживается программами ПП, а в ЦП отражается через стандартизованные способы работы. Место подключения абонента к системе - это совокупность периферийных процессоров и их входов через сеть 2-го уровня, предназначенных для информационных обменов с данным абонентом. Но с точки зрения ЦП существенной является совокупность периферийных процессоров, с которыми необходимо или возможно взаимодействие при работе с данным абонентом. Эта совокупность периферийных процессоров называется в ОС ЦП направлением на устройство. Географическое положение абонента - это его административно-территориальное расположение, которое говорит, например, в каком здании, на каком этаже, в каком зале или части зала или в каком индивидуальном месте расположен данный абонент и в чьем административном ве дении он находится. В ОС ЦП понятие географического положения отражается в понятии дислокации. Формально понятие дислокации можно определить как совокупность периферийных абонентов комплекса, имеющих административнотерриториальную общность. Для независимости описания сети абонентов от таких операций, как отключение, подключение или переключение устройства, дислокация характеризуется только элементарными типами устройств, реально или потенциально входящих в нее. Эти элементарные типы называются собственными типами дислокации. На основании понятия дислокации в ОС ЦП решается проблема связности ввода-вывода. Без явных указаний ОС реализует ввод-вывод задачи пользователя на устройствах одной дислокации. Но не всякая дислокация обладает полным спектром собственных типов, необходимых той или иной задаче. Для преодоления этих ограничений к дислокации приписывается набор так называемых несобственных типов, то есть типов, являющихся собственными в других дислокациях, но одновременно служащих и для расширения возможностей по вводу-выводу в рассматриваемой дислокации. Для решения проблемы резервирования каждый собственный тип дислокации сопровождается указанием другой дислокации, к которой нужно обращаться, если все устройства данного типа в рассматриваемой дислокации отсутствуют (отключены, вышли из строя и т.п.). Такая дислокация называется резервной для данного собственного типа в рассматриваемой дислокации. Резервная дислокация мо жет и не предусматриваться и, кроме того, ОС ЦП допускает циклическое резервирование. Направление на дислокацию - это объединение направлений на все устройства собственного типа этой дислокации, иными словами, это совокупность периферийных процeccopoв, взаимодействие с которыми необходимо или возможно при работе с собственными устройствами рассматриваемой дислокации. Для выдачи сообщений оператору о состоянии собственных устройств дислокации или о задачах, реализующих ввод-вывод через эту дислокацию, в ОС ЦП за каждой дислокацией закрепляется операторский пульт, который, в общем случае, располагается в другой дислокации. Расположение операторского пульта определяется заданием его дислокации, а устройство определяется указанием его типа. В качестве типа можно указывать как элементарный тип, так и составной тип, речь о котором пойдет ниже. Указанные непосредственно или через составной тип элементарные типы могут быть несобственными в дислокации операторского пульта. ОС ЦП допускает при желании со стороны администрации использование операторских пультов в качестве обычных терминалов, а также позволяет взаимодействовать оператору с системой по его инициативе, используя любое диалоговое устройство. Ограничения обычно накладываются из соображений защиты от несанкционированного доступа. Несколько дислокации могут иметь общий операторский пульт. Кроме того, операционная система обеспечивает, по желанию администрации, дублирова ние всех сообщений операторам на указанном терминале. Для сокращения описания несобственных типов данной дислокации в том случае, когда большинство несобственных типов ссылается на одну и ту же дислокацию, в описании дислокации можно указать дополняющую дислокацию по отсутствующим типам, а в несобственные типы включить только те, которые не ссылаются на указанную дополняющую дислокацию. Всякий абонент для подключения к комплексу и начала сеанса связи должен прислать в том или ином виде сигнал инициативы устройства. Для обеспечения начального обслуживания устройств по их инициативе в ОС ЦП предусматриваются модули начальной обработки инициативы устройства. Выбор модуля зависит от дислокации устройства и его типа, поэтому в описании каждого собственного типа, со стороны которого возможно проявление инициативы, предусматривается указание имени модуля начальной обработки инициативы. Возвращаясь к отображению типов устройств в ОС ЦП. следует сказать, что внешние функции устройств ориентированы на удобство работы периферийных процессоров и не удовлетворяют внутренним потребностям ОС ЦП. Для преодоления этого несоответствия с каждым элементарным типом в ОС ЦП связываются несколько внутренних стандартных интерфейсов, по которым допускается работа с устройствами указанного типа, и эти интерфейсы называются внутренними функциями элементарного типа. Для отображения каждой внутренней функции элементарного типа на не которую его внешнюю функцию служат так называемые интерфейсные модули устройств. Для разных элементарных типов могут предусматриваться общие внутренние функции. Этим обеспечиваются, в частности, одинаковые интерфейсы с устройствами разного типа. Но реализовываться эти интерфейсы будут все-таки разными интерфейсными модулями. Для расширения понятия типа устройства в ОС ЦП вводится понятие составного типа (иначе называемого обобщенным или альтернативным). Составной тип определяется как некоторая совокупность элементарных типов. Использование составных типов позволяет операционной системе самой выбрать конкретный элементарный тип, например, для сокращения времени ожидания устройства и т.п. Обычно элементарные типы, определяющие некий обобщенный, имеют общие внутренние функции, которые, как правило, и запрашиваются у обобщенного типа. Следует отметить еще одну классификацию устройств на групповые и индивидуальные. Группой считается совокупность устройств, имеющих одинаковую идентификацию в рамках комплекса (имя дислокации, имя типа). Фактические количественные характеристики групп имеются только в операционных системах периферийных процессоров, к которым подключены рассматриваемые устройства. Единственные однозначно идентифицируемые устройства считаются индивидуальными и называются станциями. Администрация каждого вычислительного комплекса по своему усмотрению задает операционным системам центральных процессоров комплекса описание периферийного обору дования и должна знакомить пользователей и операторов о выбранным распределением устройств по дислокациям, дополнительными устройствами дислокации (несобственные типы и подменяющие дислокации), с резервированием устройств, выбором операторских пультов, с выбранными интерфейсами начальной обработки инициативы. Эти значения помогут пользователям правильно планировать и осуществлять ввод-вывод. Но следует подчеркнуть, что пользователи, незнакомые с описанием интерфейсного оборудования, могут положиться на операционную систему, пользуясь, по возможности, умолчанием и оперируя стандартными средствами. 1. Вводные, выводные и диалоговые устройства Под физическим устройством в ОС ЦП понимается пара: идентификатор устройства и имя внутренней функции. В свою очередь, идентификатор состоит из имени дислокации и имени типа устройства. Идентификатор устройства определяет конкретное устройство с учетом возможных преобразований имени дислокации и имени типа. Так, если тип указан элементарный и собственный для рассматриваемой дислокации и в этой дислокации реально имеются работающие устройства указанного типа, то идентификатор определяет одно из них, не уточняя, какое именно. Если же в рассматриваемой дислокации все устройства указанного типа исключены оператором из обращения, то идентификатор определяет устройство в резервной дислокации, указанной в описании сети устройств для данного типа в данной дислокации. ОС ЦП допускает резервирование любой глубины, а также циклическое резервирование. Если тип не является собственным в указанной дислокации, то идентификатор определяет устройство или в дислокации несобственного типа, если тип был несобственный, или в до полнящей дислокации, если такой тип не описан в данной дислокации. Когда в идентификаторе устройства указывается составной тип, то предполагается, что пользователь этим идентификатором хочет определить одно из устройств, все равно какое, из подмножества, определяемого идентификаторами, получаемыми объединением указанной дислокации с каждым из элементарных типов, соответствующих рассматриваемому составному в описании сети. При идентификации устройства допускается умолчание дислокации. В этом случае подразумевается дислокация, к которой прикреплена данная задача (дислокация задачи). В ОС ЦП всегда фиксируется дислокация, в которой была инициирована задача (введена колода карт, проявил инициативу диалоговый терминал и т.п.). Без дополнительных указаний со стороны пользователя эта дислокация и считается дислокацией задачи. Но пользователь может и явно указать дислокацию своей задачи при ее запуске. Как уже было сказано, устройство в ОС ЦП определяется не только идентификатором, но и именем внутренней функции. Именем внутренней функции пользователь задает желаемый интерфейс работы с устройством, а на уровне ОС ЦП это соответствует выбору того или иного интерфейсного модуля в ЦП и соответствующего программного обеспечения на периферийном процессоре для обслуживания устройства. 2. Логические устройства (вводные, выводные и диалоговые) Понятие логического устройства введено в ОС ЦП для того, чтобы определенным образом стандартизовать и упростить работу с устройствами. Пользователь сам выбирает, на каком уровне ему работать с устройствами: на физическом или логическом. Кроме того, пользователям предоставляются возможности и средства для определения своих логических устройств. ОС ЦП обеспечивает несколько типов логических устройств - по одному на каждый элементарный физический тип. Логическое устройство определяется только своим идентификатором, а в качестве интерфейса с ним фиксируется некоторый интерфейс, как правило, совпадающий с наиболее употребительным интерфейсом среди допустимых для физического устройства, но, возможно, приведенный к некоторому стандарту. Например, на логическом уровне интерфейс со всеми буквенно-цифровыми диалоговыми устройствами (дисплеем, видеотоном, телетайпом и т. д.) выбран одинаковым. А алфавит логических диалоговых устройств составлен с таким расчетом, что все вводимые, выводимые и управляющие символы одинаковым образом осмысливаются на разных типах диалоговых устройств. П. УПРАВЛЕНИЕ СЕТЬЮ ПЕРИФЕРИЙНОГО ОБОРУДОВАНИЯ В данном случае под сетью периферийного оборудования понимается только часть реальной сети, представляющая собой совокупность доступных пользователям вводных, выводных и диалоговых устройств. ОС ЦП реализует по отношению к устройствам, рассматриваемым в качестве элементов сети, операцию запроса и операцию отказа. Операция запроса активизирует устройство в том смысле, что оно причисляется к ресурсам данной задачи, на соответствующем периферийном процессоре (ПП) подготавливаются программы управления этим устройством, а ОС ЦП обеспечивает средства связи с подготовленным программным обеспечением на ПП. Операция отказа деактивизирует устройство в том смысле, что, в конечном счете, изымает его из ресурсов задачи и с учетом потребности в этом устройстве других задач освобождает его на ПП. В операции запроса устройство идентифицируется в рамках сети именем дислокации и именем типа. Такая идентификация в общем случае не является однозначной и выполняется в соответствии с правилами преобразования дислокации и типов, описанными ранее. Способ выполнения запроса задается режимом, признаком ожидания и именем внутренней функции. При выполнении запроса устройства ОС ЦП, преобразуя имя дислокации и имя типа, выделяет наиболее подходящее устройство на периферийном процессоре и причисляет его к ресурсам задачи, занося описатель устройства в таблицу устройств задачи. При этом устройство становится монопольным ресурсом задачи или ресурсом, разделяемым разными задачами одного или нескольких ЦП в зависимости от значения режима запроса. Если при выполнении запроса выясняется, что устройство занято и не может быть выделено в указанном режиме, то задача (точнее, процесс) становится в очередь к устройству или прекращает выполнение запроса и сообщает обратившейся программе, что устройство занято. Выбор того или иного способа выполнения зависит от значения признака ожидания, задаваемого пользователем в параметрах запроса. Как уже отмечалось ранее, имя внутренней функции определяет интерфейс работы с устройством. ОС ЦП в соответствии с этим именем и именем типа определяет интерфейсный модуль (кластер управления устройством) реализующий соответствующий интерфейс и отображающий его на один из допустимых интерфейсов работы с программным обеспечением периферийного процессора. В ответ на запрос ОС ЦП выдает код ответа, значения которого говорят или об успешном выполнении запроса, или дают диагностику отказа. При успешном запросе ОС, кроме того, выдает уникальный идентификатор выделенного устройства, имя дислокации и имя типа, соответствующие реальному устройству, а также имя интерфейсного модуля, способного обслужить выделенное устройство в соответствии с требуемой внутренней функцией. При этом предполагается, что дальнейшая работа с устройством до отказа от него будет производиться через этот интерфейсный модуль. В операции отказа устройство идентифицируется своим финальным идентификатором, выданным при его запросе. Кроме того, ОС контролирует также режим, имя дислокации и имя типа. Способ выполнения отказа пользователем не задается, а определяется по информации о состоянии устройства и потребности в нем, имеющейся в системе. При отказе от устройства задача перестает владеть им, и оно распределяется в соответствии с потребностями других задач. В ответ на отказ ОС выдает только код ответа, говорящий о выполнении или некорректности отказа. При окончании задачи ОС ЦП сама освобождает все устройства, которые на этот момент остались запрошенными в задаче. 1. Управление работой вводных, выводных и диалоговых устройств Устройство рассматривается как объект управления после успешного выполнения его запроса. Управление таким устройством осуществляется интерфейсным модулем, имя которого выдается процедурой запроса, то есть кластерными средствами. Запрошенное устройство активизируется процедурой настройки кластера управления, которая подключается к устройству и подготавливает средства управления им. Запрошенное устройство деактивизируется процедурой отстройки кластера управления, которая освобождает ресурсы из-под средств управления и отключается от устройства. Не вдаваясь в суть подключения и отключения от устройства, отметим лишь, что подключение возможно только по отношению к запрошенному устройству, а отключение сохраняет запрос устройства в силе. После отключения возможны новые подключения. При настройке устройство идентифицируется своим уникальным идентификатором и для дополнительного контроля - именем дислокации, полученным в результате запроса. Во всех остальных операциях идентификация устройства отсутствует в соответствии о принципами кластерного управления. Отметим, что по концу задачи ОС сама отказывается от всех оставшихся экземпляров кластеров. 2. Управление вводными, выводными и диалоговыми логическими устройствами Логические устройства играют роль в системе как средство стандартизации управления реальными устройствами, обеспечивающее интерфейс с ними. Использование логических устройств освобождает пользователя от запросов устройств, обеспечивает возможность автоматического переустановления связей с устройством при их разрыве, а также средствами редактирования по управляющим символам и облегчает действия при окончании задачи. Но логическое устройство фиксирует входной интерфейс том смысле, что, если на одном и том же реальном устройстве производится работа по нескольким интерфейсам, то на уровне логических устройств это соответствует разным логическим устройствам. Логические устройства управляются кластерными средствами. Тип логического устройства определяется кластером управления, который реализует соответствующий набор операций и отображает логическое устройство на некоторое реальное устройство ввода-вывода. Кластеры управления каждым из логических устройств реализуют по отношению к нему тот же по составу набор операций, что и соответствующие кластеры управления устройством, о которых говорилось выше. А именно: кластеры имеют процедуру настройки и отстройки, а также выполняют операцию ввода или вывода соответственно для вводных дли выводных устройств и две операции - вывода и ввода для диалоговых устройств. В процедуре настройки логическое устройство идентифицируется именем дислокации (может умалчиваться по общим правилам) для вводных и выводных устройств (тип устройства и имя функции однозначно соответствуют кластеру управления) и именем дислокации (может умалчиваться) и именем типа для диалоговых устройств (управление диалоговыми устройствами разных типов реализуется одним кластером, поэтому требуется дополнительная идентификация типом; кроме того, это позволяет использовать составные типы). В остальных процедурах идентификация объекта отсутствует. Способ выполнения настройки задается режимом запроса устройства, признаком ожидания, а также дополнительной информацией, которая, в частности, может содержать признак автоматического пере запроса устройства. При выполнении настройки кластеры логических устройств запрашивают нужное устройство процедурой запроса устройства и при успешном запросе вызывают кластер управления устройством, а также подготавливают необходимые для работы ресурсы. Процедура настройки тем самым активизирует логическое устройство для работы. Деактивизируется логическое устройство при отказе от кластера (по указанию пользователя или концу задачи) процедурой отстройки, которая отказывается от кластера управления устройством, а затем от самого устройства. Если при выполнении какой-либо операции ввода-вывода будет обнаружен разрыв связи с устройством, то при соответствующем значении признака автоматического перезапроса устройства будет сделана попытка переустановления связи. Эта попытка может закончиться неудачно при запросе с ожиданием, например, по причине выхода устройства из строя и при отсутствии резерва, а при запросе без ожидания, кроме того, по причине занятости устройства. О неудачном перезапросе пользователь узнает по соответствующему значению кода ответа. Если переустановление связи выполнится успешно, то повторяется заданный обмен. Автоматическим переустановлением связей следует пользоваться осторожно с учетом того, что часть вводимой информации может быть утеряна. Подчеркнем, что при окончании задачи ОС сама отказывается от всех экземпляров кластеров управления логическими устройствами, оставшимися на этот момент. |