Основы AS/400
Шрифт:
В AS/400 этот механизм был расширен до уровня APPN (advanced peer-to-peer networking), чтобы удовлетворить потребности распределенной обработки, как в ЛВС, так и в глобальных сетях. APPN, в частности, определяет по распределенному сетевому каталогу местонахождение любой удаленной системы, запрошенной локальным приложением. При наличии нескольких маршрутов между локальной и удаленной системами, APPN на основании выбранного пользователем класса обслуживания вычисляет наилучший. В последних нескольких версиях AS/400 в APPN были добавлены дополнительные функции, включая автоматическое конфигурирование при получении входящего запроса на соединение от неизвестной системы, непосредственно подключенной к ЛВС. Другое новое расширение APPN — поддержка работы
В нашем примере оператор SQL CONNECT задает устройства, которое должно использоваться в данном запросе ввода-вывода. Предположим, что это устройство — не сетевой адаптер, а модем. Поддержка DRDA в базе данных передает управление FM APPC. Задача FM — построение необходимых структур ввода-вывода и создание соответствующего запроса. FM выдает MI привилегированную команду запроса ввода-вывода («REQIO»), которая не может выполняться прикладной программой. С командой «REQIO» связан SSR (Source Sink Request), который содержит три указателя на:
очередь ответов MI (MIRQ), в которую будет помещено сообщение по завершении ввода-вывода;
описание устройства LUD;
данные приема-передачи (SSD), то есть пользовательский буфер для хранения данных, пересылаемых на устройство или наоборот (в нашем примере — запрос SQL, посылаемый на удаленную систему).
Затем запрос ввода-вывода посылается в виде сообщения в очередь, находящуюся ниже MI и принадлежащую IOM станции. IOM станции — это программа SLIC, которая принимает запросы от FM для установления соединений (иногда называемых сессиями) с удаленными системами, устройствами или приложениями. IOM станции отвечает за обработку средних уровней протокола коммуникаций. В состав функций среднего уровня входит, среди прочих, управление путями коммуникаций — каждому из них соответствует определенный IOM станции: например, поддерживающий коммуникации «точка-точка», или коммуникации с центральными системами, такими как System/390. Другой IOM станции обеспечивает подключение ПК, использующих протокол LU 6.2. В нашем примере необходимо соединение «точка-точка» с удаленной системой, заданной в операторе SQL CONNECT. Следовательно, мы будем использовать IOM станции для APPN. Этот IOM станции дополняет запрос управляющей информацией, необходимой для удаленной сессии. Он также обеспечивает интерфейс между FM и IOM линии.
IOM станции использует для данного соединения описание котроллера CTLD, в MI — CD. CD — это конфигурационный объект, содержащий информацию об удаленной системе (ее адрес, имя порта управления APPN и другие необходимые параметры). Руководствуясь информацией из CD, IOM станции добавляет к запросу ввода-вывода команды или необходимую управляющую информацию, а затем IOM станции посылает запрос ввода-вывода в очередь IOM линии.
IOM линии реализует протоколы канала. Он обеспечивает для IOM станции прозрачный интерфейс, не зависящий от нижележащего канального протокола и используемой сети. В нашем примере мы собираемся воспользоваться протоколом SDLC (synchronous data link communications).
IOM линии управляет передачей данных и определяет физические подключения к линии. Для этого он использует описание линии LIND, которому в MI соответствует описание сети ND, а для линии SDLC добавляет к запросу необходимые управляющие символы. IOM линии также обеспечивает интерфейс между верхними слоями коммуникационного протокола и аппаратным соединением.
Далее запрос передается средству связи между процессами IPCF, расположенному в SLIC. IPCF используется для всех устройств; оно взаимодействует с аппаратурой ввода-вывода для отправки запроса IOP на плате адаптера по шине SPD. С помощью LUD (DEVD указан в SSR) IPCF определяет, что в нашем примере используется модем, подсоединенный к плате адаптера, а та, в свою очередь, — к физической линии связи. Вскоре мы поговорим, как именно
Блоки управления ввода-вывода и связи между ними показаны на рисунке 10.3. Блоки содержат всю информацию, необходимую IPCF для поиска устройства. Эта информация в виде таблиц находится в памяти, где она доступна как аппаратуре, так и ПО, и обновляется во время загрузки системы, когда назначаются адреса IOBU. Обратите внимание, что стрелки на рисунке 10.3 соответствуют адресам, тогда как на рисунке 10.2 — передачам управления.
CAT
Рисунок 10.3. Блок управления вводом-выводом
Кроме того, на рисунке 10.3 показаны семь блоков управления. Давайте рассмотрим их подробней [ 79 ] .
1. Управляющая адресная таблица (CAT) — эта общесистемная таблица, в которой содержатся адреса основных блоков управления, используемых SLIC.
Очередь свободных сообщений (AMQ) — это очередь незаполненных сообщений, на которую указывает один из адресов в CAT. Сообщения из этой очереди могут использоваться различными компонентами SLIC, включая IPCF.
79
Учтите, что приведенная в списке информация специфична для устройств, подключенных к шине SPD. Впрочем, реализация для PCI концептуально мало чем отличается от описанной.
Таблица управления шиной (BCT) содержит буферы, SRQ и указатели на другие блоки управления. На каждую шину SPD приходится по одной BCT.
Блок устройства шины (BUB) содержит информацию о различных подключенных к шине устройствах. На каждую шину SPD приходится по одному BUB. Здесь размещается очередь сообщений ввода-вывода, ожидающих завершения операции.
Обратите внимание, что этот BUB не то же самое, что BUB (Bring Up Bind), о котором говорилось в главе 3. Тот BUB использовался для оценки прогресса в разработке SLIC, и, возможно, мне не следовало его упоминать, чтобы не путать читателей.
Удаленный CCB ( или удаленный CGCB) — имеется по одному для каждой шины SPD в системе, а также для каждого идентификатора подключения, назначенного IOBU. Этот управляющий блок хранит для удаленных (находящихся вне процессора) IOBU идентификаторы устройств, состояния и адресов IOBU. Некоторые IOBU могут поддерживать несколько устройств и, соответственно, иметь несколько идентификаторов подключения.
Локальный CCB (или локальный CGCB) — один из этих блоков также имеется для каждой шины SPD в системе. Они очень похожи на удаленные блоки, но содержат информацию об IOBU, подключенных локально (внутри процессора).
7.Блок управления подключениями (CCB) — один для всей системы. Он содержит
идентификаторы подключений и маршруты для всех шин SPD, а также обеспечивает доступ к информации подключений для каждой отдельной шины.
Как все это работает
В этом разделе мы продолжим разговор о вводе-выводе на примере шины SPD. Мы рассмотрим подробности низкоуровневых операций, выполняемых ниже IPCF и очень специфичных для структуры шины SPD, используемой как в старых, так и в новых моделях AS/400. Чтобы представить себе операцию ввода-вывода по SPD в целом, проследим ее с самого начала, когда приложение запрашивает выполнение ввода-вывода, и до момента получения приложением уведомления о завершении операции.