IUCV

Inter User Communication Vehicle (IUCV) — механизм передачи данных в линейке операционных систем IBM VM . Он был представлен в VM/SP Release 1 в 1980 году. [1]

Он позволяет устанавливать каналы связи точка-точка, либо между двумя виртуальными машинами, либо между виртуальной машиной и службами гипервизора. По сути, IUCV обеспечивает форму взаимодействия на основе сообщений между виртуальными машинами, которая предвосхищала взаимодействие клиент/сервер между сетевыми физическими машинами, которые появились позже в распределенных системах.

IUCV реализуется CP (гипервизором виртуальной машины) и контролирует все аспекты установления сеанса, передачи сообщений и управления потоком.

Основы IUCV

Инициализация IUCV

Прежде чем виртуальная машина сможет использовать службу IUCV, она должна сначала указать адрес области в своем адресном пространстве, где CP сможет хранить информацию об ожидающей информации или статусе. Поэтому DECLARE BUFFERметод должен быть вызван первым.

Путь IUCV

В терминологии IUCV сеанс между двумя конечными точками называется PATH . Он идентифицируется на каждом конце идентификатором пути, который относится только к виртуальной машине, владеющей концом сеанса. Путь всегда является подключенным каналом, то есть не существует путей без подключения.

Установление пути

Чтобы установить путь, инициирующая виртуальная машина должна вызвать CONNECTметод и указать целевой идентификатор пути, который представляет собой либо имя другой виртуальной машины, либо имя системной службы CP (все они начинаются с символа «*»), который не является допустимым символом в имени виртуальной машины.

При условии, что цель сама инициализировала IUCV, она будет уведомлена об ожидающем входящем соединении пути и затем может либо использовать ACCEPTметод — для завершения установления пути — либо SEVERметод — который фактически закрывает ожидающий путь.

После установления пути сообщения могут передаваться между двумя конечными точками пути.

Сообщения IUCV

Сообщения IUCV ограничены, то есть у них есть начало и конец. Если на пути к конечной точке ожидающих сообщений больше одного, IUCV не будет объединять сообщения.

Сообщения отправляются по пути с использованием SENDметода. Другая конечная точка может затем получить сообщение с использованием RECEIVEметода. Если исходное сообщение также запросило ответ, то принимающая конечная точка затем использует REPLYметод для отправки этого ответа.

Управление потоком

Несколько сообщений могут быть сделаны ожидающими на пути. Количество сообщений, разрешенных для пути в ожидании, указывается во время установления пути, но не может превышать 65535. Попытка отправить сообщение на пути, который достиг своего предела ожидающих сообщений, приведет к ошибке.

Приостановить и возобновить

Передача данных может быть временно приостановлена ​​с помощью QUIESCEметода. Пока путь приостановлен, дальнейшие передачи сообщений по пути не допускаются, пока RESUMEметод не будет вызван виртуальной машиной, которая изначально приостановила путь.

Опрос

Виртуальная машина может опрашивать уведомления IUCV с помощью методов TEST MESSAGEи TEST COMPLETION. Если ничего не ожидает, то виртуальная машина ждет, пока не появится дополнительная информация.

Явное завершение пути

Когда любая из конечных точек выдает SEVERметод, путь переходит в разорванное (закрывающееся) состояние, а другая конечная точка уведомляется. В этот момент на пути не допускаются новые сообщения, но другая конечная точка все еще может получать ожидающие сообщения. Когда другая конечная точка также выдает метод SEVER, путь фактически демонтируется.

Неявное завершение пути

Путь может быть неявно закрыт, когда

  • Виртуальная машина выходит из системы
  • Виртуальная машина сбрасывается
  • Виртуальная машина завершает операции IUCV, используя RETRIEVE BUFFERметод

В любом из этих случаев для другого конца пути поведение идентично явному завершению пути.

Использование IUCV

Инструкция B2F0

Методы IUCV вызываются с помощью инструкции 'B2F0'x. Эта инструкция должна быть вызвана в состоянии виртуального супервизора (например, гостевого супервизора), иначе будет сгенерировано программное прерывание Operation Exception. Затем инструкция интерпретируется CP как запрос IUCV.

IPARML

IPARML — это список Iucv PARaMeter. Это блок управления, который описывает вызываемый метод, а также параметры метода. После завершения инструкции B2F0 некоторые поля изменяются CP, чтобы указать статус завершения инструкции B2F0.

Уведомления

CP уведомляет виртуальную машину об ожидающем сообщении или статусной информации, делая внешний код прерывания X'4000' ожидающим виртуальной машины. Когда происходит прерывание, информация относительно ожидающего статуса становится доступной по адресу, указанному методом DECLARE BUFFER.

Макросы

Макросы CP

В CP имеется специальный макрос (IUCV), который генерирует соответствующий код, включая инструкцию и заполнение IPARML, чтобы сведения о параметрах того или иного метода можно было установить по умолчанию или проверить на наличие конфликтов.

Макросы CMS

CMS можно настроить на обработку запросов приложений IUCV. CMS имеет собственный набор макросов IUCV (CMSIUCV), которые позволяют нескольким приложениям совместно использовать возможности IUCV в пределах виртуальной машины.

Авторизация

Доступ к некоторым функциям IUCV контролируется операторами в CP Directory (список виртуальных машин и их спецификации).

Виртуальной машине можно разрешить принимать сообщения от всех других виртуальных машин через IUCV ALLOWоператор каталога или устанавливать путь связи с любой другой виртуальной машиной через IUCV ANYоператор. Также можно разрешить виртуальной машине отправлять запросы на соединение по пути к другим определенным виртуальным машинам, указав имя виртуальной машины в операторе IUCV, например: IUCV TARGETVM. По умолчанию пользователю всегда разрешено подключаться к самому себе.

Оператор IUCV контролирует контроль доступа, наложенный CP для подключений IUCV. Кроме того, виртуальная машина может наложить свой собственный контроль доступа, отклоняя попытку подключения.

Примеры использования IUCV

Системные услуги CP

Службы системы CP представляют собой конечные точки IUCV, которые сами по себе не являются виртуальными машинами, но позволяют виртуальной машине асинхронно выполнять функции гипервизора или получать доступ к определенным средствам гипервизора.

Вот некоторые примеры:

  • *MSG: Служба системы сообщений. Позволяет виртуальной машине получать через IUCV определенные выходные данные консоли виртуальной машины, такие как результаты 'CP MESSAGE' или консольного ввода-вывода. Используется подсистемами виртуальных машин, такими как PROP (программируемый оператор) или полноэкранный CMS.
  • *SPL: позволяет асинхронно получать доступ к файлам спула. RSCS (подсистема удаленной связи с спулом) — пример приложения, использующего эту системную службу.

ГКС

GCS (система управления группами) VM использует IUCV для обслуживания областей общей памяти между виртуальными машинами. Используя неявное завершение пути, виртуальная машина восстановления GCS может гарантировать, что любые блокировки, удерживаемые в общей области виртуальной машиной, которая вошла в группу, но неожиданно вышла, будут надлежащим образом сняты.

ВМTCP/IP

VM TCP/IP — стек TCP/IP для VM — использует IUCV, чтобы разрешить виртуальной машине выполнять операции сокета или разрешить виртуальной машине действовать как сетевой интерфейс для передачи целых кадров или датаграмм между собой и стеком TCP/IP. Реализация Linux S/390 и z/Architecture использует эту возможность для реализации сетевого интерфейса для стека VM TCP/IP.

Смотрите также

Ссылки

  1. ^ Томпсон, Сэмюэл А. «Использование IUCV в CMS» (PDF) . ПОДЕЛИТЬСЯ . Получено 17 августа 2019 г. .
  • IUCV в z/VM 5.3 Руководство по программированию служб CP, глава 2.1.3
Взято с "https://en.wikipedia.org/w/index.php?title=IUCV&oldid=1154035533"