Articulo de referencia

Prioridad de spooling automático de Houston

El programa de prioridad de cola automática de Houston , conocido comúnmente como HASP , es una extensión de los sistemas operativos OS/360 y OS/VS2 (SVS) , que proporciona sopo...

El programa de prioridad de cola automática de Houston , conocido comúnmente como HASP , es una extensión de los sistemas operativos OS/360 y OS/VS2 (SVS) , que proporciona soporte extendido para "gestión de trabajos, gestión de datos, gestión de tareas y entrada remota de trabajos ". [ 1 ] Fue la base de JES2 en MVS .

Historia

Registro del sistema HASP como parte de la impresión de un trabajo por lotes en un IBM System/370 en la Universidad de Nueva York, 1979.

OS/360 incluía rutinas de cola de impresión , llamadas lectores/intérpretes y escritores de salida . [ 2 ] Cada lector/intérprete era "responsable de leer un flujo de trabajo de entrada", es decir, un dispositivo de entrada. Del mismo modo, cada escritor de salida era responsable de controlar una impresora o perforadora . Los datos en cola se almacenaban en conjuntos de datos temporales del sistema operativo controlados por los servicios estándar del sistema operativo. Cada lector/intérprete o escritor de salida era una tarea independiente del sistema operativo en su propia partición o región. [ a ] ​​Un sistema con un gran número de lectores, impresoras y perforadoras podría tener un gran número de tareas de cola de impresión.

HASP fue desarrollado por contratistas de la División de Sistemas Federales de IBM en el Centro Espacial Lyndon B. Johnson en Houston . Los desarrolladores fueron Tom Simpson y Bob Crabtree. HASP era un programa que se ejecutaba en una computadora central y realizaba funciones como la planificación , el control del flujo de trabajos, la gestión de la cola de impresión y la impresión/perforación. HASP no era compatible con la función de entrada remota de trabajos del sistema operativo IBM System/360 (360S-RC-536), pero ofrecía funcionalidades prácticamente equivalentes.

En HASP II V3, Roger Fajman, Bill Jones y Jim Oberthaler del NIH crearon la funcionalidad de cola compartida para HASP, utilizada por numerosos sistemas mainframe. Esta funcionalidad permitía que cada sistema HASP compartiera una cola y un punto de control comunes, facilitando así el equilibrio de carga en un entorno multimainframe. En HASP II V4, Don Greb y Dave Miko del Mellon Bank trasladaron la funcionalidad de cola compartida de HASP a esta versión. Don Greb, del Mellon Bank, la integró en la cola de acceso múltiple de JES2 (el soporte formal de IBM para HASP en MVS ). El Mellon Bank distribuyó más de 350 copias de las modificaciones de cola compartida de HASP II V4 en todo el mundo. Estas modificaciones se incorporaron al proceso de distribución SHARE para facilitar su acceso. Las "Modificaciones de Mellon" sirvieron de base para la cola de acceso múltiple de Jes/2.

En ocasiones, el programa fue mencionado con otros nombres, pero no hay indicios de que IBM los haya utilizado en documentos oficiales.

El programa fue clasificado como parte de la biblioteca IBM Tipo III . Tenía un competidor, ASP (Attached Support Processor), que se ejecutaba en un mainframe y controlaba la planificación de otros mainframes conectados. Posteriormente, ASP se convirtió en JES3 .

En MVS , HASP se convirtió en JES2, uno de los dos subsistemas de entrada de trabajos . Pasaron muchos años antes de que se eliminaran las etiquetas HASP del código fuente de JES2, y los mensajes emitidos por JES2 todavía llevan el prefijo "$HASP".

Se utilizó una versión modificada de HASP para proporcionar servicios de cola de impresión por lotes y entrada remota de trabajos para el Sistema de Terminales de Michigan a finales de la década de 1960, la década de 1970 y la década de 1980. [ 3 ] [ 4 ]

Organización del programa

HASP eludía la mayoría de los servicios del sistema operativo con un código especialmente diseñado para la eficiencia. HASP funcionaba como una única tarea del sistema operativo [ 5 ] y utilizaba internamente la multitarea cooperativa para ejecutar procesadores que realizaban tareas como el funcionamiento de lectores de tarjetas, impresoras y perforadoras, la gestión de los archivos de cola , la comunicación con el operador del sistema y el control de múltiples líneas de comunicación para la entrada remota de trabajos.

Hasp fue escrito completamente en ensamblador System/360 y un sistema HASP típico podría requerir 86 KB de memoria, que podría ser memoria virtual en sistemas OS/VS. [ 6 ]

Enrollado

HASP utiliza uno o más volúmenes SPOOL para contener los trabajos bajo su control. HASP almacena los conjuntos de datos en cola en grupos de pistas en los volúmenes SPOOL, en lugar de como conjuntos de datos conocidos por el sistema operativo. Un Sysgen para OS/360 o SVS debe especificar un grupo de pseudodispositivos, [ b ] [ 7 ] normalmente en canales diferentes a los de los dispositivos reales. Los métodos de acceso crean los mismos programas de canal que lo harían para lectores de tarjetas, perforadoras de tarjetas e impresoras reales, pero HASP intercepta las solicitudes EXCP de los métodos de acceso. Mientras HASP lee el flujo de entrada, modifica y almacena el JCL en los volúmenes SPOOL y almacena cada conjunto de datos SYSIN por separado. Cuando HASP está listo para ejecutar el trabajo, lo pasa al lector/intérprete y un iniciador disponible lo selecciona.

SYSIN

HASP reconoce cada conjunto de datos DD* explícito, DD DATA explícito y DD* implícito, y lo almacena en volúmenes SPOOL. Durante la ejecución de un paso, HASP asigna cada conjunto de datos SYSIN a un pseudolector que los métodos de acceso tratan como un lector de tarjetas real, e intercepta las solicitudes EXCP del método de acceso para proporcionar imágenes de tarjetas desde SPOOL. HASP simula una excepción de unidad después de proporcionar la última imagen de tarjeta del conjunto de datos.

SISTEMA

HASP modifica cada conjunto de datos DD SYSOUT= para que haga referencia a una impresora o perforadora de tarjetas virtual. HASP intercepta cada EXCP de los métodos de acceso y almacena cada imagen de tarjeta y de línea en SPOOL. Una vez finalizado el trabajo, una impresora, perforadora o procesador remoto HASP que cumpla con los criterios de selección de un conjunto de datos SYSOUT lo copia a un dispositivo de salida.

pre-JES JECL

Gran parte de lo que se convertiría en JECL de JES2 era parte de HASP. [ 8 ] HASP sobrecarga las sentencias delimitadoras ( /* ) como sentencias de control de HASP.

/*$ comando
Sentencia de comando
/* Parámetros JOBPARM
Parámetros HASP relacionados con el trabajo
/* Texto del MENSAJE
Enviar un mensaje al operador
Parámetros del código de SALIDA
Parámetros HASP relacionados con el formulario
/*PRIORIDAD p
Prioridad del trabajo
/*ROUTE tipo destino
Ruta PRINT | PUNCH salida al destino LOCAL | PUNCH | RMT n | PRINTER n | PRINTR nn | PUNCH n
/* Texto de CONFIGURACIÓN
Enviar un mensaje al operador y retener el trabajo hasta que el operador lo libere.

Entrada de trabajo remoto

HASP originalmente admitía terminales de procesamiento por lotes IBM Synchronous Transmit-Receive (STR); sin embargo, HASP II dejó de admitir STR y solo admitía el protocolo Binary Synchronous Communications (BSC). HASP II admitía terminales IBM como 2770 , 2780 , 3770 , 3780 , pero además proporcionaba soporte para la comunicación multi-leaving [ 9 ] con estaciones de trabajo inteligentes como IBM 1130 , IBM System/3 y System/360 Modelo 20. Multi-leaving es "transmisión bidireccional, pseudo-simultánea y totalmente síncrona de un número variable de flujos de datos entre dos o más computadoras que utilizan instalaciones de comunicaciones binarias síncronas". [ 10 ]

Proveedores externos desarrollaron diversos simuladores 2770/2780/3780 e implementaciones de salida múltiple para su uso con HASP y ASP. Algunos de estos proveedores se referían erróneamente a sus productos como emuladores HASP , pero en realidad se trataba de terminales que se comunicaban con HASP; no realizaban ninguna de las funciones de HASP.

Comandos del operador

El operador de la consola RJE puede introducir un conjunto restringido de comandos de operador de consola HASP, cada uno de los cuales comienza con un $ (signo de dólar).

Los operandos estaban restringidos a los de este sitio remoto, por lo que DJ1-999 (abajo) normalmente solo mostraría unos pocos, los que aún estaban pendientes del sitio remoto del operador.

Algunos de los comandos de la consola HASP RJE, que se pueden introducir de forma abreviada (una sola letra) o completos, son:

El comando "C rm1.rdr" tenía como objetivo cancelar, en lugar de enviar, el mazo de tarjetas que se estaba leyendo. Esto podría haber sido útil si, en caso de atasco de tarjetas, hubiera sido más conveniente permitir que otros procesos continuaran mientras se reemplazaban una o más tarjetas en una perforadora cercana.

Registro de trabajo

El registro de salida del trabajo de HASP proporcionó un resumen de los recursos utilizados para el trabajo (la salida apareció en mayúsculas):

  • Hora de inicio
  • Detener el tiempo
  • Tiempo de ejecución
  • Uso de memoria
  • Espacio de bobina utilizado
  • Cartas leídas
  • Tarjetas perforadas
  • Líneas impresas

Véase también

Notas explicativas

  1. Sin embargo, RJE y el posterior CRJE denominaron al lector/intérprete como una subrutina y realizaron las funciones de un escritor de salida dentro de su propia partición/región.
  2. Dispositivo definido en el sistema operativo con direcciones que no corresponden al hardware instalado.

Citas

  1. HASPIIVRLogic , pág. 1-3, Introducción. Error de sfn: no hay destino: CITEREFHASPIIVRLogic ( ayuda )
  2. IBM (1965). Conceptos y funcionalidades del sistema operativo IBM/360 (PDF) . págs. 59–62 . C28-6535-0. 
  3. Guía del operador de HASP II (versión MTS) , JH Hansen y SM Donnelly, Centro de Computación, Universidad de Michigan, 20 de abril de 1988, 122 páginas.
  4. "La impresión del administrador de recursos llega a la UM (en sustitución de HASP)" , UM Computing News , vol. 5, n.º 1 (8 de enero de 1990), Universidad de Michigan (Ann Arbor), página 19
  5. HASPIIVRLogic . sfn error: no hay destino: CITEREFHASPIIVRLogic ( ayuda )
  6. HASPIIV4SPG , págs. 134–135, Requisitos de almacenamiento para un HASP típico.
  7. HASPIIV$SPG , pág. 5, Dispositivos pseudo. Error de sfn: no hay destino: CITEREFHASPIIV$SPG ( ayuda )
  8. HASPIIV4User , págs. 23-31 , Codificación de sentencias de control HASP . 
  9. HASPIIV4Logic , págs. 7-59-7-68 , Apéndice B SALIDA MÚLTIPLE . 
  10. HASPIIV4Logic , pág. 1–8.

Referencias

Sesión O441
David Andrews. "Sesión O441 - La historia de HASP y JES2" . Archivado del original (notas personales de SHARE 79: 21-26 de agosto de 1992) el 9 de octubre de 2007. Consultado el 12 de diciembre de 2006 .
Ceruzzi
Historia de la informática moderna, página 124, por Paul E. Ceruzzi, publicado por MIT Press, 2003, ISBN 978-0-262-53203-7445 páginas
HASPIIV3
Sistema HASP, HASP II (360D-05.1-014) . Versión 3, Nivel de modificación 1. IBM . 26 de febrero de 1971.
Lógica HASPIIV4
Lógica OS/VS2 HASP II Versión 4 - Número de programa 370H-TX-001 VS2 - SVS Versión 1.7 (PDF) . Primera edición, revisada el 15 de septiembre de 1976 por TNLs SN25-0122 y SN27-1555. IBM. Marzo de 1973. GY27-7255 . Consultado el 17 de marzo de 2022 .
HASPIIV4Op
Guía del operador de OS/VS2 HASP II Versión 4, número de programa 370H-TX-001 (PDF) . Primera edición revisada el 15 de septiembre de 1976 por TNLs GN25-0120 y GN27-1554. IBM . Marzo de 1973. GC27-6993-0 . Consultado el 3 de noviembre de 2025 .
HASPIIV4SPG
Guía del programador del sistema OS/VS2 HASP II Versión 4, número de programa 370H-TX-001 (PDF) . Primera edición revisada el 15 de septiembre de 1976 por TNLs GN25-0121 y GN27-1553. IBM . Marzo de 1973. GC27-6992-0 . Consultado el 3 de noviembre de 2025 .
Usuario de HASPIIV4
Guía del usuario de OS/VS2 HASP II Versión 4, Programa número 370H-TX-001 (PDF) . Primera edición. IBM . Septiembre de 1976. GC27-0052-0 . Consultado el 3 de noviembre de 2025 .