El vehículo de comunicación entre usuarios (IUCV) es un mecanismo de transferencia de datos en la línea de sistemas operativos IBM VM . Fue introducido con VM / SP Release 1 en 1980. [1]
Permite el establecimiento de canales de comunicación punto a punto, ya sea entre dos máquinas virtuales o entre una máquina virtual y servicios de hipervisor. En efecto, IUCV proporciona una forma de interacción basada en mensajes entre máquinas virtuales que anticipó la interacción cliente / servidor entre máquinas físicas conectadas a la red que surgieron más tarde en los sistemas distribuidos.
IUCV es implementado por CP (el hipervisor VM) y controla todos los aspectos del establecimiento de sesiones, el paso de mensajes y el control de flujo.
Conceptos básicos de IUCV
Inicializando IUCV
Antes de que una máquina virtual pueda utilizar el servicio IUCV, primero debe indicar la dirección de un área dentro de su espacio de direcciones donde CP podrá almacenar información sobre información pendiente o estado. Por lo tanto, el DECLARE BUFFER
método debe invocarse primero.
El camino IUCV
En la terminología de IUCV, la sesión entre dos puntos finales se denomina PATH . Se identifica en cada extremo mediante un ID de ruta que solo es relevante para la máquina virtual propietaria del final de la sesión. Una ruta es siempre un canal conectado, lo que significa que no hay rutas sin conexión.
Estableciendo un camino
Para establecer una ruta, la máquina virtual de inicio debe invocar el CONNECT
método y especificar la identidad de destino de la ruta, que es otro nombre de máquina virtual o el nombre de un servicio del sistema CP, que comienzan con el carácter '*', que no es un carácter válido dentro de un nombre de máquina virtual.
Siempre que el objetivo haya inicializado IUCV por sí mismo, el objetivo será notificado de la conexión de ruta entrante pendiente y luego podrá usar el ACCEPT
método, para completar el establecimiento de la ruta, o el SEVER
método, que efectivamente cierra la ruta pendiente.
Una vez que se establece la ruta, los mensajes se pueden pasar entre los dos puntos finales de la ruta.
Mensajes IUCV
Los Mensajes IUCV son acotados, es decir, tienen un principio y un final. Si hay más de un mensaje pendiente en una ruta para un punto final, IUCV no fusionará los mensajes.
Los mensajes se envían en la ruta utilizando el SEND
método. El otro punto final puede recibir el mensaje utilizando el RECEIVE
método. Si el mensaje original también solicitó una respuesta, el punto final receptor usa el REPLY
método para enviar esa respuesta.
Control de flujo
Pueden quedar varios mensajes pendientes en una ruta. La cantidad de mensajes permitidos pendientes para una ruta se especifica durante el establecimiento de la ruta, pero no puede exceder 65535. Si se intenta enviar un mensaje en una ruta que ha alcanzado su límite de mensajes pendientes, se producirá un error.
Suspender y reanudar
La transferencia de datos puede suspenderse temporalmente mediante el QUIESCE
método. Mientras la ruta está suspendida, no se permiten más transferencias de mensajes en la ruta hasta que la RESUME
máquina virtual que inicialmente suspendió la ruta invoque el método.
Votación
Una máquina virtual puede sondear las notificaciones de IUCV mediante los métodos TEST MESSAGE
y TEST COMPLETION
. Si no hay nada pendiente, la máquina virtual espera hasta que haya más información disponible.
Terminación de ruta explícita
Cuando cualquiera de los puntos finales emite el SEVER
método, la ruta entra en un estado cortado (cerrado) y se notifica al otro punto final. En este punto, no se permiten mensajes nuevos en la ruta, pero el otro punto final aún puede recuperar mensajes pendientes. Cuando el otro punto final también emite el SEVER
método, la ruta se desmantela de manera efectiva.
Terminación de ruta implícita
Un camino puede estar implícitamente cerrado cuando
- Una máquina virtual cierra la sesión
- Se reinicia una máquina virtual
- Una máquina virtual termina las operaciones de IUCV usando el
RETRIEVE BUFFER
método
En cualquiera de esos casos, para el otro extremo de la ruta, el comportamiento es idéntico a una terminación de ruta explícita.
Usando IUCV
La instrucción B2F0
Los métodos IUCV se invocan mediante la instrucción 'B2F0'x. Esta instrucción debe invocarse mientras está en el estado de supervisor virtual (por ejemplo, un supervisor invitado) o se genera una interrupción del programa de excepción de operación. A continuación, CP interpreta la instrucción como una solicitud de IUCV.
IPARML
IPARML es la lista de PARAMETROS de Iucv. Es un bloque de control que describe el método que se invoca, así como los parámetros del método. Una vez completada la instrucción B2F0, CP modifica algunos campos para indicar el estado de finalización de la instrucción B2F0.
Notificaciones
CP notifica a una máquina virtual de un mensaje pendiente o información de estado haciendo un código de interrupción externo X'4000 'pendiente para la máquina virtual. Cuando ocurre la interrupción, la información sobre el estado pendiente se pone a disposición en la ubicación de la dirección especificada por el DECLARE BUFFER
método.
Macros
Macros CP
CP tiene una macro específica (IUCV) que genera el código apropiado, incluida la instrucción y el llenado del IPARML, de modo que los detalles relacionados con los parámetros sobre tal o cual método se pueden establecer por defecto o verificar si existen conflictos.
Macros CMS
Se puede hacer que CMS maneje solicitudes de aplicaciones IUCV. CMS tiene su propio conjunto de macros IUCV (CMSIUCV) que permiten que múltiples aplicaciones compartan la instalación IUCV dentro de una máquina virtual.
Autorización
El acceso a algunas funciones de IUCV se controla mediante declaraciones en el directorio CP (la lista de máquinas virtuales y sus especificaciones).
Se puede permitir que una máquina virtual acepte comunicaciones de todas las demás máquinas virtuales a través de la IUCV ALLOW
declaración de directorio, o establecer una ruta de comunicación con cualquier otra máquina virtual a través de la IUCV ANY
declaración. También es posible permitir que una máquina virtual para las solicitudes de conexión de trayectoria tema a otras máquinas virtuales específicas especificando el nombre de la máquina virtual en un comunicado IUCV, por ejemplo: IUCV TARGETVM
. De forma predeterminada, un usuario siempre puede conectarse a sí mismo.
La declaración IUCV controla el control de acceso impuesto por CP para las conexiones IUCV. Además, una máquina virtual puede imponer su propio control de acceso rechazando un intento de conexión.
Ejemplos de uso de IUCV
Servicios del sistema CP
Los servicios del sistema CP son puntos finales de IUCV que no son máquinas virtuales por sí mismos, pero permiten que una máquina virtual realice funciones de hipervisor de forma asincrónica o acceda a instalaciones de hipervisor específicas.
Algunos ejemplos son
- * MSG: El servicio del sistema de mensajes. Permite que una máquina virtual reciba a través de IUCV salidas de consola de máquina virtual específicas, como los resultados del 'CP MESSAGE' o E / S de consola. Esto es utilizado por subsistemas de VM como PROP (El OPerator programable) o CMS de pantalla completa.
- * SPL: permite acceder a archivos de cola de forma asincrónica. RSCS (Subsistema de comunicación de carrete remoto) es un ejemplo de una aplicación que utiliza este servicio del sistema.
GCS
GCS (el sistema de control de grupo) de VM utiliza IUCV para realizar el mantenimiento de áreas de memoria compartida entre máquinas virtuales. Al utilizar la terminación de ruta implícita, la máquina virtual de recuperación de GCS puede garantizar que cualquier bloqueo mantenido en el área compartida por una máquina virtual que ingresó al grupo pero se fue inesperadamente se libere correctamente.
VM TCP / IP
VM TCP / IP, la pila de TCP / IP para VM, utiliza IUCV para permitir que una máquina virtual realice operaciones de socket o para permitir que una máquina virtual actúe como una interfaz de red para pasar tramas o datagramas completos entre ella y el TCP / IP. apilar. El S / 390 y z / Arquitectura implementación de Linux utiliza este servicio para implementar una interfaz de red a la pila VM TCP / IP.
Ver también
- VMCF : la función de comunicación de la máquina virtual
- Adaptador de canal a canal
Referencias
- ^ Thompson, Samuel A. "Uso de IUCV en CMS" (PDF) . COMPARTE . Consultado el 17 de agosto de 2019 .