stringtranslate.com

Programas de soporte para OS/360 y sucesores

En este artículo se analizan los programas de soporte incluidos o disponibles para OS/360 y sus sucesores . IBM clasifica algunos de estos programas como utilidades [1] [a] y otros como ayudas de servicio; [2] los límites no siempre son consistentes ni obvios. Muchos de estos programas, pero no todos, coinciden con los tipos del software de utilidades .

Las siguientes listas describen programas asociados con OS/360 y sus sucesores . No se incluyen utilidades DOS , TPF o VM .

Historia/JCL común

Muchos de estos programas fueron diseñados por usuarios de IBM, a través del grupo SHARE , y luego modificados o ampliados por IBM a partir de versiones originalmente escritas por un usuario.

Estos programas se suelen invocar mediante lenguaje de control de tareas (JCL). Suelen utilizar identificadores DD JCL comunes (en el SO, ahora sistemas operativos z/OS ) para sus conjuntos de datos:

Utilidades de conjuntos de datos

Cámaras de identificación

IDCAMS ("Access Method Services") genera y modifica conjuntos de datos de Método de acceso de almacenamiento virtual (VSAM) y no VSAM. IDCAMS se introdujo junto con VSAM en OS/VS ; la referencia al "Método de acceso" deriva de la mentalidad inicial de OS/VS de que "VSAM reemplaza a todos los demás métodos de acceso". IDCAMS probablemente tenga la mayor funcionalidad de todos los programas de utilidad, ya que realiza muchas funciones tanto para archivos VSAM como para archivos no VSAM.

El siguiente ejemplo ilustra el uso de IDCAMS para copiar un conjunto de datos en un disco. El conjunto de datos tiene registros de 80 bytes y el sistema elegirá el tamaño de bloque para la salida:

// XXXXXXXW TRABAJO XXXXXXX , AAAA , CLASE = G , MSGCLASS = 1 , NOTIFICAR =& SYSUID // PASO001 EJECUTAR PGM = IDCAMS // SYSIN  DD * REPRO  ARCHIVOINFILE(ARCHIVO01) ARCHIVOOUTFILE ( ARCHIVO02 ) / * // ARCHIVO01  DD DSN = PROD.ARCHIVO1.ENTRADA , disp = shr ..... // ARCHIVO02  DD DSN = PROD.ARCHIVO2 . SALIDA , // DISP = ( NUEVO , CATLG , ELIMINAR ), // UNIDAD = DASD , // ESPACIO = ( TRK ,( 100 , 10 ), RLSE ), // DCB = ( RECFM = FB , BLKSIZE = 0 , LRECL = 80 ) // SYSPRINT DD SYSOUT = * // SYSOUT  DD SYSOUT = * // SYSUDUMP DD SYSOUT = *            //*

En el ejemplo anterior, las tarjetas de control SYSIN provienen de un archivo en flujo, pero, si lo desea, puede apuntar a cualquier archivo secuencial o a un miembro PDS que contenga tarjetas de control o un conjunto de datos temporal. Un ejemplo de uso de archivos SYSIN sería algo como esto:

// SYSIN  DD DSN = PROD . MYFILE . REPRO , DISP = SHR

o esto:

// SYSIN  DD DSN = PROD . MYLIB . CNTLLIB ( REPRO ), // DISP = SHR 

IEBCOMPR

IEBCOMPR compara registros en conjuntos de datos secuenciales o particionados .

La utilidad IEBCOMPR se utiliza para comparar dos conjuntos de datos secuenciales o particionados . Esta comparación de conjuntos de datos se realiza en el nivel de registro lógico. Por lo tanto, IEBCOMPR se utiliza habitualmente para verificar que una copia de seguridad de un conjunto de datos sea correcta (coincidencia exacta con el original).

Durante el procesamiento, IEBCOMPR compara cada registro de cada conjunto de datos, uno por uno. Si los registros no son iguales, IEBCOMPR muestra la siguiente información en SYSOUT:

Al comparar conjuntos de datos secuenciales, IEBCOMPR considera que los conjuntos de datos son iguales si se cumplen las siguientes condiciones:

  • Los conjuntos de datos contienen el mismo número de registros.
  • Los registros y claves correspondientes son idénticos.

Para los conjuntos de datos particionados , IEBCOMPR considera que los conjuntos de datos son iguales si se cumplen las siguientes condiciones:

  • Las entradas de directorio de los dos conjuntos de datos particionados coinciden, es decir, los nombres son los mismos y la cantidad de entradas es igual.
  • Los miembros correspondientes contienen el mismo número de registros.
  • Los registros y claves correspondientes son idénticos.

Si se encuentran diez comparaciones desiguales durante el procesamiento, IECOMPR finaliza con el mensaje apropiado.

// XXXXXXXW TRABAJO XXXXXXX , AAAA.A.A , CLASE = G , MSGCLASS = 1 , NOTIFICAR = XXXXX // PASO01 EJECUTAR PGM = IEBCOMPR , CUENTA = PJ00000000 // INCLUIR MIEMBRO=@BATCHS // *  SYSIN DD DUMMY // SYSIN DD *  COMPARAR TIPORG = PO / * // SYSUT1  DD DSN = XXXXXXX.ARCHIVOANTIGUO , UNIDAD = DASD , DISP = SHR // SYSUT2  DD DSN = XXXXXXX.ARCHIVONUEVO , UNIDAD = DASD , DISP = SHR // SYSUT # DD      

Nota: IEBCOMPR no es un programa de comparación muy flexible ni fácil de usar. No puede restringir la comparación a determinadas columnas, no puede ignorar las diferencias en los espacios en blanco, no indica en qué parte del registro se produce la diferencia y se detiene después de 10 diferencias. Por otro lado, es rápido y está presente en todos los mainframes de IBM. Por lo tanto, es muy útil cuando se espera una coincidencia exacta, como comparar módulos de carga que no se han vuelto a bloquear o comprobar que una copia funcionó correctamente. Para las comparaciones de programas o informes, a menudo se utiliza el programa de comparación ISPF SuperC (ISRSUPC).

COPIA IEB

IEBCOPY copia, comprime y fusiona conjuntos de datos particionados . También puede seleccionar o excluir miembros específicos durante la operación de copia y cambiar el nombre o reemplazar miembros.

Algunas de las tareas que IEBCOPY puede realizar incluyen las siguientes:

Para la utilidad IEBCOPY , las declaraciones de control de trabajo necesarias para una copia son las siguientes:

// nombre de paso EXEC PGM = IEBCOPY // SYSPRINT DD SYSOUT = clase // MYDD1  DD DSN = xxxx . ppp . psps , DISP = SHR // MYDD2  DD DSN = xxxx . ppp . pssp , DISP = SHR // SYSIN  DD *  COPIAR INDD=MYDD1,OUTDD=MYDD2  SELECCIONAR MIEMBRO=(MEM1,MEM2,MEM3)/ EXCLUIR MIEMBRO=(SF,DF,SA)   

Las instrucciones DD MYDD1 y MYDD2 son nombres elegidos por el usuario para los conjuntos de datos de entrada y salida particionados, respectivamente; los valores predeterminados son SYSUT1 y SYSUT2. Puede utilizar cualquier DDNAME válido para estas dos instrucciones DD. Estos DDNAME se especifican en las instrucciones de control de la utilidad para indicarle a IEBCOPY el nombre de los conjuntos de datos de entrada y salida. Solo necesita una instrucción DD para comprimir un PDS.

Dirección de Asuntos Internos de Irlanda

IEBDG ('Generador de datos') crea conjuntos de datos de prueba que consisten en datos con patrones. Las instrucciones de control definen los campos de los registros que se crearán, incluida la posición, la longitud, el formato y la inicialización que se realizará. IEBDG puede utilizar un conjunto de datos existente como entrada y cambiar los campos según se especifique en las instrucciones de control, por ejemplo, reemplazando un campo de nombre por un texto alfabético aleatorio. El contenido de cada campo se puede variar para cada registro, por ejemplo, rotando los caracteres en un campo alfanumérico hacia la izquierda o hacia la derecha para cada registro posterior.

Ejemplo:

// XXXXXXXW TRABAJO XXXXXXX , AAAA , CLASE = G , MSGCLASS = 1 , NOTIFY =& SYSUID //************************************************************************* //* CREACIÓN DE UN CONJUNTO DE DATOS PARA USAR MÁS ADELANTE //**************************************************************************** // CRSTEP EXEC PGM = IEFBR14 // DDCREA  DD DSN =& SYSUID .. MVSUT . SEQOUT , DISP = ( NEW , CATLG ) //************************************************************************ //* CREACIÓN DE LOS DATOS DE PRUEBA //*************************************************************************** // PASO1 EJECUTAR PGM = IEBDG // SYSPRINT DD SYSOUT = * // SEQOUT  DD DSN =& SYSUID .. MVSUT . SEQOUT , DISP = OLD // SYSIN  DD DATA  DSD OUTPUT=(SEQOUT)  FD NOMBRE=CAMPO1,LONGITUD=30,LUGARINICIO=1,FORMATO=AL,ACCIÓN=TL  FD NOMBRE=CAMPO2,LONGITUD=30,LUGARINICIO=31,FORMATO=AL,ACCIÓN=TR  FD NOMBRE=CAMPO3,LONGITUD=10,LUGARINICIO=71,IMAGEN=10, X  P'1234567890',ÍNDICE=1  CREAR CANTIDAD=500,NOMBRE=(CAMPO1,CAMPO2,CAMPO3),RELLENO=X'FF'  FIN /* //****************************************************************************** //* IMPRIMIENDO LOS DATOS DE PRUEBA EN SYSOUT //************************************************************************* // PASO2 EJECUTAR PGM = IEBGENER // SYSPRINT DD SYSOUT = * // SYSUT1  DD DSN = * . STEP1 . SEQOUT , DISP = SHR // SYSIN  DD DUMMY //                  SYSUT2  DD SYSOUT = * //************************************************************************ //* ELIMINAR EL CONJUNTO DE DATOS CREADO, INCLUSO SI SE INTERRUMPIERON LOS PASOS ANTERIORES //************************************************************************ // DLSTEP EXEC PGM = IEFBR14 , COND = EVEN // DDDEL  DD DSN =& SYSUID .. MVSUT . SEQOUT , DISP = ( OLD , DELETE , DELETE ) //    

EDITAR

IEBEDIT copia selectivamente partes de JCL.

Un ejemplo de un programa IEBEDIT:

// IEBEDITJ TRABAJO CUENTA , '' , CLASE = P , MSGCLASS = T , MSGLEVEL = ( 1 , 1 ) , NOTIFY =& SYSUID // PASO0001 EJECUTAR PGM = IEBEDIT // SYSPRINT DD SYSOUT = * // SYSUT1  DD DSN = xxxxx.yyyyy.zzzzz , DISP = SHR // SYSUT2  DD SYSOUT = ( * , INTRDR ) // SYSIN  DD * TIPO DE EDICIÓN = INCLUIR,NOMBREDESTEP = (PASO10, PASO5  ,PASO15) /* //    

En este ejemplo, el conjunto de datos xxxxx.yyyyy.zzzzz debe contener uno o más trabajos (que deben incluir los pasos denominados STEP5, STEP10 y STEP15). Esta rutina IEBEDIT copia los pasos seleccionados del trabajo en el archivo de salida SYSUT2 (en este ejemplo, el lector interno).

La sintaxis de la declaración EDIT es:

[etiqueta] EDITAR [INICIO=nombre_trabajo] [,TIPO={POSICIÓN|INCLUIR|EXCLUIR}] [,NOMBRE_PASO=(lista_nombres)] [,NOIMPRIMIR]

START=jobnameespecifica el nombre del trabajo de entrada al que se aplica la instrucción EDIT. Cada instrucción EDIT debe aplicarse a un trabajo independiente. Si se especifica START sin TYPE ni STEPNAME, la instrucción JOB y todos los pasos del trabajo especificado se incluyen en la salida.

Predeterminado: si se omite START y solo se proporciona una instrucción EDIT, se procesa el primer trabajo encontrado en el conjunto de datos de entrada. Si se omite START en una instrucción EDIT distinta de la primera, el procesamiento continúa con la siguiente instrucción JOB que se encuentre en el conjunto de datos de entrada.

TYPE={POSITION|INCLUDE|EXCLUDE}especifica el contenido del conjunto de datos de salida. Estos valores pueden codificarse:

POSITIONespecifica que la salida debe constar de una declaración JOB, el paso de trabajo especificado en el parámetro STEPNAME y todos los pasos que siguen a ese paso de trabajo. Todos los pasos de trabajo anteriores al paso especificado se omiten de la operación. POSITION es el valor predeterminado.

INCLUDEespecifica que el conjunto de datos de salida debe contener una declaración JOB y todos los pasos del trabajo especificados en el parámetro STEPNAME.

EXCLUDEespecifica que el conjunto de datos de salida debe contener una declaración JOB y todos los pasos de trabajo que pertenecen al trabajo, excepto aquellos pasos especificados en el parámetro STEPNAME.

STEPNAME=(namelist)especifica los nombres de los pasos de trabajo que desea procesar.

namelistPuede ser un nombre de paso de trabajo único, una lista de nombres de pasos separados por comas o un rango secuencial de pasos separados por un guion (por ejemplo, STEPA-STEPE). Se puede utilizar cualquier combinación de estos en una lista de nombres. Si se especifica más de un nombre de paso, toda la lista de nombres debe estar entre paréntesis.

Cuando se codifica con TYPE=POSITION, STEPNAME especifica el primer paso de trabajo que se colocará en el conjunto de datos de salida. Los pasos de trabajo anteriores a este paso no se copian en el conjunto de datos de salida.

Cuando se codifica con TYPE=INCLUDE o TYPE=EXCLUDE, STEPNAME especifica los nombres de los pasos de trabajo que se incluirán o excluirán de la operación. Por ejemplo, STEPNAME=(STEPA,STEPF-STEPL,STEPZ) indica que los pasos de trabajo STEPA, STEPF a STEPL y STEPZ se incluirán o excluirán de la operación.

Si se omite STEPNAME, se copia todo el trabajo de entrada cuyo nombre se especifica en la instrucción EDIT. Si no se especifica ningún nombre de trabajo, se procesa el primer trabajo encontrado.

NOPRINTespecifica que el conjunto de datos del mensaje no debe incluir una lista del conjunto de datos de salida.

Predeterminado: la salida resultante se incluye en el conjunto de datos del mensaje.

Ver aquí para más información: [1]

IEBGENER

IEBGENER copia registros de un conjunto de datos secuencial o crea un conjunto de datos particionado.

Algunas de las tareas que IEBGENER puede realizar incluyen las siguientes:

Un ejemplo de un programa IEBGENER para copiar un conjunto de datos a otro:

// IEBGENER JOB CUENTA , ' COPIA  DE DATOS ' , MSGCLASS = J , CLASE = A // STEP010 EJEC PGM = IEBGENER // SYSUT1  DD DSN = xxxxx.yyyyy.zzzzz , DISP = SHR // SYSUT2  DD DSN = aaaaa.bbbbb.ccccc , DISP = (, CATLG ) , // UNIDAD = SYSDA , ESPACIO = ( TRK , ( 5 , 5 ) , RLSE ) , // DCB = ( RECFM = FB , LRECL = 1440 ) // SYSPRINT DD SYSOUT = * // SYSIN DD DUMMY         

En el caso de las tareas de copia directa, el programa sort puede realizarlas con mayor rapidez que IEBGENER. Por ello, muchas tiendas de mainframes utilizan una opción que envía automáticamente dichas tareas al programa sort ICEGENER en lugar de a IEBGENER.

En algunos sistemas es posible enviar correos electrónicos desde un trabajo por lotes dirigiendo la salida al " SMTP" escritor externo . En dichos sistemas, la técnica es la siguiente:

// IEBGENER JOB ACCT , 'COPIA DE DATOS' , MSGCLASS = J , CLASS = A // NORMRC EXEC PGM = IEBGENER // SYSPRINT DD SYSOUT = * // SYSUT1  DD * , LRECL = 80 HELO <SYSTEMID> MAIL FROM:<USERID@SYSTEMID> RCPT TO:<USERID@SYSTEMID> DATA From: <USERID@SYSTEMID> To: <USERID@SYSTEMID> Asunto: Correo de prueba    CORREO DE PRUEBA DESDE EL MAINFRAME . SALIR /* // SYSUT2  DD SYSOUT = ( B , SMTP ), LRECL = 80 // SYSIN  DD DUMMY

También es posible adjuntar archivos al enviar el correo electrónico desde Mainframe.

IMAGENIEB

IEBIMAGE manipula varios tipos de definiciones (también conocidas como imágenes ) para la impresora IBM 3211, el subsistema de impresión láser IBM 3800 y la impresora IBM 4248. Los usos comunes son para los buffers de control de formularios ( FCB ), tablas de disposición de caracteres, definiciones de caracteres e imágenes de formularios que se imprimirán en la salida junto con el texto, para los logotipos de la empresa que se imprimirán en la página o simplemente para imprimir páginas de "barra gris" (fondos horizontales grises y blancos alternados, para que coincidan con el papel de barra verde anterior ). Con esta utilidad, se pueden almacenar muchos formularios o logotipos diferentes como imágenes e imprimirlos cuando sea necesario, todos utilizando el mismo papel en blanco estándar, eliminando así la necesidad de almacenar muchos formularios preimpresos y la necesidad de que los operadores detengan la impresora y cambien el papel.

IEBISAM

IEBISAM descarga, carga, copia e imprime conjuntos de datos ISAM .

Extraído del manual de IBM SC26-7414-08 z/OS DFSMSdfp Utilities: El programa IEBISAM ya no se distribuye. A partir de z/OS V1R7, los conjuntos de datos ISAM ya no se pueden procesar (crear, abrir, copiar o volcar). Los conjuntos de datos ISAM que aún se utilizan se deben convertir en conjuntos de datos con secuencia de claves VSAM.

Antes de z/OS V1R7, se podían usar servicios de método de acceso para asignar un conjunto de datos con secuencia de claves VSAM y copiar un conjunto de datos ISAM en él.

IEBPTPCH

IEBPTPCH ("PrinT y PunCH") imprime o perfora registros de un conjunto de datos secuencial o particionado.

Algunas de las tareas que IEBPTPCH puede realizar incluyen las siguientes:

// IEBPTPCH JOB // EXEC PGM=IEBPTPCH // SYSIN  DD * PRINT MAXFLDS=2 TÍTULO ELEMENTO=('Nombre',22),  ELEMENTO=('GPA',50) TÍTULO ELEMENTO=(' ',1) CAMPO DE REGISTRO=(25,1,,22),  CAMPO=(4,51,,50) /* // SYSPRINT DD SYSOUT = * // SYSUT1  DD * Persona 1 307 C Meshel Hall 3.89 Segunda persona 123 Williamson Hall 2.48 Tercera persona 321 Maag Library 1.52 /* // SYSUT2  DD SYSOUT = * //  

Comprobación de conjunto de datos vacío: si el conjunto de datos que se va a comprobar está vacío, RC=4, de lo contrario 0.

// TRABAJO IEBPTPCH // EJECUTAR PGM=IEBPTPCH // SYSUT1  DD DSN = < nombre de archivo >, DISP = SHR // SYSUT2  DD DUMMY , // DCB = ( BLKSIZE = < tamaño de bloque >, RECFM=FA) // SYSIN  DD * PRINT TYPORG=PS /* // SYSPRINT DD SYSOUT = * //    

IEBTCRINA

Leer registros de un lector de cartuchos de cinta 2495.

IEBUPDAT

Cambia registros en un conjunto de datos secuencial o en un miembro de un conjunto de datos particionado, reemplazado por, pero no compatible con, IEBUPDTE.

IEBUPDTE

IEBUPDTE ("UPDaTE") incorpora cambios a conjuntos de datos secuenciales o particionados. La utilidad UNIX patches un programa similar, pero utiliza marcadores de formato de entrada diferentes ( por ejemplo , "./ INSERT ..." en MVS se convierte en "@@..." en Unix Patch).

Algunos programadores lo pronuncian "IEB up-ditty".

La utilidad IEBUPDTE se utiliza para mantener las bibliotecas de origen. Algunas de las funciones que puede realizar IEBUPDTE son las siguientes:

IEBUPDTE se utiliza comúnmente para distribuir bibliotecas de origen desde cinta a DASD .

IEBUPDTE utiliza las mismas instrucciones de control de trabajos que requieren la mayoría de las utilidades de tipo IEB. Las únicas excepciones son las siguientes:

Los controles de trabajo utilizados por IEUPDTE son los siguientes:

// nombre del paso EXEC PGM = IEUPDTE , PARM = NEW // SYSPRINT DD SYSOUT = clase // SYSUT1  DD ... // SYSUT2  DD ... // SYSIN  DD ...   

Utilidades del programador

IEFBR14

IEFBR14 es un programa ficticio, normalmente insertado en JCL cuando la única acción deseada es la asignación o eliminación de conjuntos de datos.

Un ejemplo de un paso IEFBR14 :

// IEFBR14 CUENTA DE TRABAJO , 'ELIMINAR CONJUNTO DE DATOS' // PASO01 EJECUTAR PGM = IEFBR14 // DELDD  DD DSN = xxxxx . yyyyy . zzzzz , // DISP = ( MOD , DELETE , DELETE ), UNIDAD = DASD     

La secuencia de llamada de OS/360 contenía la dirección de retorno en el Registro 14. Por lo tanto, una bifurcación al Registro 14 saldría inmediatamente del programa. Sin embargo, antes y después de ejecutar este programa, el sistema operativo asignaría y desasignaría conjuntos de datos según lo especificado en las instrucciones DD, por lo que se utiliza comúnmente como una forma rápida de configurar o eliminar conjuntos de datos.

Consistía inicialmente en una única instrucción "Branch to Register" 14. El mnemónico utilizado en el ensamblador de IBM era BR y de ahí el nombre: IEF BR 14. IEF es el "prefijo" del subsistema de "gestión de trabajos" de OS/360.

Este programa de instrucción única tenía un error: no establecía el código de retorno. Por lo tanto, se tuvo que agregar una segunda instrucción para borrar el código de retorno y poder salir con el estado correcto.

IBM informó y corrigió un error adicional en este programa que ahora consta de dos instrucciones. Este error se debía a que el programa IEFBR14 no se podía editar mediante enlaces como reentrante (utilizable simultáneamente por más de un usuario).

Algunos piratas informáticos han tomado IEFBR14 y han cambiado la instrucción BR 14 a BR 15, creando así "el bucle más corto del mundo", ya que el registro 15 contiene la dirección del propio módulo IEFBR14, y una instrucción BR 15 simplemente volvería a invocar el módulo, para siempre.

Utilidades del sistema

Estas utilidades normalmente las utilizan los programadores de sistemas para mantener el funcionamiento del sistema, en lugar de utilizarlas para realizar trabajos de aplicación en el sistema.

Enfermedad infecciosa aguda y crónica (ICKDSF)

ICKDSF ("Device Support Facility") instala, inicializa y mantiene DASD, ya sea bajo un sistema operativo o de forma independiente .

IEHATLAS

Asignar pistas alternativas a pistas defectuosas.

IEHDASDR

IEHDASDR [1] : 161–187  puede realizar varias operaciones para dispositivos de almacenamiento de acceso directo [b] (DASD)

Finalmente, IBM dejó de agregar soporte para nuevos tipos de dispositivos a IEHDASDR y dirigió a los clientes al DSF gratuito para inicializar volúmenes y al DASDR pago (5740-UT1) y a los Servicios de conjunto de datos/instalación de datos (5740-UT3, DF/DSS) para volcado y restauración.

IBM eliminó IEHDASDR en MVS/XA. [3]

IEHINITT

IEHINITT ("INITialize Tape") inicializa las cintas escribiendo etiquetas. Se pueden etiquetar varias cintas en una sola ejecución de la utilidad. Se pueden escribir etiquetas estándar de IBM o ASCII .

Un ejemplo de un programa IEHINITT:

// IEHINITT JOB CUENTA , 'CINTAS DE ETIQUETAS' , MSGCLASS = J , CLASE = A // PASO0001 EJECUTAR PGM = IEHINITT , REGIÓN = 8 M // SYSPRINT DD SYSOUT = A // ETIQUETA  DD DCB = DEN = 2 , UNIDAD = ( 3490 , 1 , APLAZAR ) // SYSIN  DD * ETIQUETA INICIAL SER=123450,NUMBTAPE=3 /*        

En este ejemplo se etiquetarán 3 cintas en una unidad de cinta magnética 3490. Cada cinta recibirá una etiqueta estándar de IBM. El VOLSER se incrementará en uno por cada cinta etiquetada. Cada cinta se rebobinará y se descargará después de etiquetarla.

IEHIOSUP

IEHIOSUP actualiza los enlaces de direcciones de pista relativas (TTR) para rutinas de llamada de supervisor (SVC) de tipo IV en SYS1.SVCLIB. IEHIOSUP ya no es compatible con OS/VS2 y versiones posteriores. [4]

Las funciones OPEN, CLOSE y EOV son realizadas por una serie de módulos SVC que se ejecutan secuencialmente. Algunos módulos contienen tablas que utiliza la XCTLmacro para vincularse con el siguiente de la serie. Por razones de rendimiento, para evitar una búsqueda de directorio cada vez, estas tablas contienen las direcciones de disco de los módulos en lugar de los nombres. Las actualizaciones de SYS1.SVCLIB pueden provocar que estas direcciones cambien, por lo que se debe ejecutar IEHIOSUP para instalar las direcciones correctas. [5]

Este es un ejemplo del JCL necesario para ejecutar IEHIOSUP. [1]

// TRABAJO IHEIOSUP // EJECUTAR PGM=IEHIOSUP // SYSUT1 DD DSNAME = SYS1 . SVCLIB ~ DISP = OLD , UNIDAD = 2311 , // VOLUMEN = SER = 111111 // SYSPRINT DD SYSOUT = A //   

LISTA IEHL

IEHLIST es una utilidad que se utiliza para enumerar entradas en un directorio de conjunto de datos particionados (PDS) o para enumerar el contenido de una tabla de contenido de volumen ( VTOC ).

La utilidad IEHLIST se utiliza para enumerar las entradas contenidas en cualquiera de los siguientes:

Un ejemplo de un programa IEHLIST:

// IEHLIST JOB CUENTA , 'LISTA PDS' , MSGCLASS = J , CLASE = A // PASO0001 EJEC PGM = IEHLIST , REGIÓN = 8 M // SYSPRINT DD SYSOUT = A // PDS1 DD  DSN = xxxx.yyyy.zzzz , DISP = OLD // SYSIN DD  * LISTPDS  DSNAME=xxxx.yyyy.zzzz , FORMATO / *     

Este trabajo producirá una lista formateada del directorio PDS del PDS llamado xxxx.yyyy.zzzz.

Un ejemplo de un programa IEHLIST para listar un VTOC es muy similar:

// IEHLIST TRABAJO CUENTA , 'LISTA VTOC' , MSGCLASS = J , CLASE = A // PASO0001 EJEC PGM = IEHLIST , REGIÓN = 8 M // SYSPRINT DD SYSOUT = A // VOL1  DD VOL = SER = vvvvvv , DISP = OLD // SYSIN  DD *  LISTVTOC VOL=SER=vvvvvv,FORMATO /*     

IEHMOVE

IEHMOVE mueve o copia colecciones de datos. Sin embargo, los entornos DFSMS ( almacenamiento administrado por el sistema ) son ahora comunes e IBM no recomienda utilizar la utilidad IEHMOVE en ellos. Un movimiento se diferencia de una copia en que, después de un movimiento, el conjunto de datos original se elimina o se elimina. Algunas de las tareas que IEHMOVE puede realizar incluyen las siguientes:

A primera vista, IEHMOVE puede parecer redundante con respecto a las utilidades IEBGENER e IEBCOPY. Sin embargo, IEHMOVE es más potente. La principal ventaja de utilizar IEHMOVE es que no es necesario especificar el espacio ni la información de DCB para los nuevos conjuntos de datos. Esto se debe a que IEHMOVE asigna esta información en función de los conjuntos de datos existentes.

Otra ventaja de IEHMOVE es que se pueden copiar o mover grupos de conjuntos de datos, así como volúmenes completos de datos. Debido a la facilidad para mover grupos de conjuntos de datos o volúmenes, la utilidad IEHMOVE es la preferida por los programadores de sistemas .

Un ejemplo de trabajo de IEHMOVE:

// nombre del paso EXEC PGM = IEHMOVE , PARM = 'LINECNT=xx,POWER=n' // SYSPRINT DD SYSOUT = clase // SYSUT1  DD UNIDAD = aaaa , VOL = SER = bbbbbb , DISP = OLD // cualquier nombre1 DD UNIDAD = cccc , VOL = SER = dddddd , DISP = OLD // cualquier nombre2 DD UNIDAD = eeee , VOL = SER = ffffff , DISP = OLD // SYSIN  DD ...  

Las instrucciones DD para IEHMOVE, distintas de SYSPRINT y SYSIN, hacen referencia a volúmenes DASD o de cinta magnética en lugar de conjuntos de datos individuales . Sin embargo, hacer referencia a volúmenes puede plantear un problema, ya que al especificarlos DISP=OLDse obtiene acceso exclusivo a un volumen. Por lo tanto, mientras se ejecuta el trabajo IEHMOVE, ese volumen completo (y todos los conjuntos de datos que contiene) no están disponibles para otros usuarios. Esto es aceptable para volúmenes privados, como volúmenes de cinta o DASD montables, pero inaceptable para volúmenes públicos.

La declaración DD SYSUT1 especifica un volumen DASD donde se asignan tres conjuntos de datos de trabajo requeridos por IEHMOVE. Debe especificar información de unidad y volumen para esta declaración DD.

IEHMOVE fue uno de los primeros sistemas desarrollados en PL/S .

En este ejemplo, se trasladan tres conjuntos de datos secuenciales (SEQSET1, SEQSET2 y SEQSET3) de un volumen de disco a tres volúmenes de disco independientes. Cada uno de los tres volúmenes receptores se monta cuando IEHMOVE lo requiere. Los conjuntos de datos de origen no se catalogan. IEHMOVE asigna el espacio.

// TRABAJO MOVIDO ... // PASO1 EJEC PGM = IEHMOVE // SYSPRINT DD SYSOUT = A // SYSUT1  DD UNIDAD = disco , VOLUMEN = SER = 333333 , DISP = OLD // DD1  DD UNIDAD = ( disco ,, APLAZAR ), DISP = OLD , // VOLUMEN = ( PRIVADO ,, SER = ( 222222 )) // DD2  DD UNIDAD = ( disco ,, APLAZAR ), DISP = OLD , // VOLUMEN = ( PRIVADO ,, SER = ( 222333 )) // DD3  DD UNIDAD = ( disco ,, APLAZAR ), DISP = OLD , // VOLUMEN = ( PRIVADO ,, SER = ( 222444 )) // DD4  DD VOLUMEN = ( PRIVADO , RETENCIÓN , SER = ( 444444 )), // UNIDAD = disco , DISP = OLD // SYSIN  DD *  MOVER DSNAME=SEQSET1,A=disco=222222,DESDE=disco=444444  MOVER DSNAME=SEQSET2,A=disco=222333,DESDE=disco=444444  MOVER DSNAME=SEQSET3,A=disco=222444,DESDE=disco=444444 /*        

PROGRAMA IEH

IEHPROGM crea y mantiene datos de control del sistema. También se utiliza para renombrar y borrar un conjunto de datos.

Algunas de las tareas que IEHPROGM puede realizar incluyen las siguientes:

Para catalogar:

// SYSIN DD *  CATLG DSNNAME=nombre-conjunto-de-datos,  VOL=nombre-dispositivo=número-volumen /* //

IFSTATR (Inglés)

Seleccionar y formatear registros SMF para errores de cinta.

Servicios públicos independientes

Estos programas no se ejecutan bajo el control de un sistema operativo.

IBCDASDI

Formatear volúmenes de acceso directo y asignar pistas alternativas.

IBCDMPRS

Volcar y restaurar volúmenes de acceso directo.

Centro de Investigación y Desarrollo de la Industria Biomédica (IBCRCVRP)

Asignar pistas alternativas, recuperar y reemplazar datos.

ICAPRTBL

Cargue el búfer de control de formularios (FCB) y el búfer del conjunto de caracteres universal (UCS) en la impresora.

Ayudas de servicio

Se trata de programas de utilidad que IBM documenta en manuales de ayudas de servicio o de diagnóstico [6] . Las ayudas de servicio originales de OS/360 tenían nombres que empezaban con IFC e IM*, pero IBM cambió la convención de nombres a HM* para OS/VS1 y a AM* para OS/VS2 . IBM no cambió la convención IFC.

IFCDIP00

Inicializa el conjunto de datos SYS1.LOGREC.

IFCEREP0

Resume e imprime registros del conjunto de datos de registro de errores SYS1.LOGREC.

GTF (Instalación de rastreo generalizado)

Rastrea eventos del sistema seleccionados, como interrupciones de SVC y de E/S.

IMAPTFLE

Genera el JCL necesario para aplicarlo a un PTF y/o aplica el PTF. Las funciones de este programa han sido absorbidas por SMP .

IMASPZAP

Verifica y/o reemplaza instrucciones y/o datos en un módulo de carga, un objeto de programa o un archivo de disco.

Lista de imb

Formatea e imprime módulos de objetos, módulos de carga, objetos de programa y registros de identificación CSECT.

Mapa IMBM

Módulos de carga de mapas. Las funciones de este programa han sido absorbidas por IMBLIST.

IMCJQDMP

Programa independiente para formatear e imprimir la cola de trabajos del sistema. No aplicable a MVS .

IMCOSJQD

Formatear e imprimir la cola de trabajos del sistema. No aplicable a MVS .

IMDPRDMP

Formatea e imprime volcados de núcleo , conjuntos de datos de intercambio de TSO y datos de seguimiento de GTF.

IMDSADMP

Programa independiente para producir un volcado de alta o baja velocidad del almacenamiento principal.

Programas de apoyo varios

CLASIFICAR

La utilidad de ordenación/combinación es un programa que ordena los registros de un archivo en un orden específico o combina archivos previamente ordenados. Se utiliza con mucha frecuencia; suele ser el programa de aplicación más utilizado en una tienda de mainframes. Los programas de ordenación/combinación modernos también pueden seleccionar u omitir determinados registros, resumir registros, eliminar duplicados, reformatear registros y generar informes simples. La ordenación/combinación es tan importante que existen varias empresas que venden su propio paquete de ordenación/combinación para mainframes IBM.

El programa de ordenación y combinación original de IBM para OS/360, 360S-SM-023, cuyo nombre de programa era IERRCO00 (alias SORT), solo admitía dispositivos de almacenamiento de acceso directo (DASD) [d] y cintas (2400) de primera generación de IBM. Los productos de programa de IBM , como 5734-SM1 y el posterior 5740-SM1 ( DFSORT , alias ICEMAN, también SORT), proporcionaban compatibilidad con unidades de disco de segunda generación .

SORT se ejecuta con frecuencia como un programa independiente, donde normalmente lee la entrada de un archivo identificado por DD SORTINy escribe la salida ordenada en un archivo identificado por DD SORTOUT. También se lo suele llamar desde otra aplicación, a través del verbo COBOL SORT o llamadas a rutinas PL/I PLISRTx , donde puede usar archivos SORTINo SORTOUT, o recibir registros para que los ordene el que llama y/o devolver los registros ordenados al que llama de a uno por vez.

El funcionamiento de SORT está dirigido por sentencias de control, que son en gran medida compatibles entre los distintos programas de ordenación de IBM y de terceros. La sentencia SORTor MERGEdefine las claves de ordenación (los campos en los que se ordenarán o fusionarán los datos). Esta sentencia identifica la posición, la longitud y el tipo de datos de cada clave. La RECORDsentencia describe el formato y la longitud de los registros en el archivo de entrada. Otras sentencias permiten al usuario especificar qué registros se deben incluir o excluir de la ordenación y especificar otras transformaciones que se realizarán en los datos.

Las claves pueden ser cualquier combinación de datos de caracteres EBCDIC o ASCII , decimales compactas o zonificadas, binarios de punto fijo con o sin signo, o de punto flotante hexadecimal. Las claves pueden estar ubicadas en cualquier parte del registro y no tienen que ser contiguas. La ordenación se puede especificar en cualquier combinación de secuencia ascendente y descendente por clave. [7]

El programa de ordenación OS/360, IERRCO00, opera dividiendo los datos de entrada en secciones, ordenando cada sección en la memoria principal y escribiendo la sección ordenada en conjuntos de datos intermedios en dispositivos de almacenamiento de acceso directo (DASD) o cinta magnética . Las fases de fusión finales luego fusionan las secciones para producir la salida ordenada. SORT utiliza una de varias técnicas para distribuir las secciones entre dispositivos de almacenamiento secundarios. Por lo general, SORT puede elegir la técnica óptima, pero el usuario puede anularla. [8] SORT tiene tres técnicas que se pueden utilizar si el almacenamiento intermedio es cinta y dos si es disco. [9]

Las técnicas de cinta son:

Las técnicas de disco son:

Enlazadores

OS/360 sólo contaba con el editor Linkage, disponible en varias configuraciones. DFSMSdfp agregó el Binder como alternativa para los módulos de carga y como única opción para los objetos de programa.

Editor de enlaces

El editor de vínculos crea y reemplaza módulos de carga en un conjunto de datos particionado a partir de una combinación de tarjetas de control, módulos de objetos y otros módulos de carga. Puede cambiar el nombre o reemplazar una sección de control (CSECT) y realizar varias otras funciones diversas. Originalmente estaba disponible en varias configuraciones según el requisito de almacenamiento, pero el editor de vínculos de nivel E ya no está disponible y el editor de vínculos de nivel F ahora se conoce simplemente como editor de vínculos. En z/OS, el editor de vínculos solo está presente por compatibilidad.

Aglutinante

El enlazador, añadido en DFSMS , realiza las mismas funciones que el Editor de enlaces. Además, admite un nuevo formato, el objeto de programa, que es el equivalente funcional de un módulo de carga en Partitioned Data Set Extended (PDSE), con muchas capacidades adicionales.

Ensambladores

Generalmente había un ensamblador estándar, porque era necesario para la generación del sistema (SYSGEN) y la personalización.

IETASM

Assembler (E) fue diseñado para que OS/360 se ejecute en máquinas muy pequeñas.

IEUASM

El ensamblador (F) fue diseñado para instalaciones normales de OS/360.

IFOX00

Assembler (XF) fue el ensamblador de sistemas para OS/VS1 y OS/VS2, reemplazando a Assembler (E) y (F), aunque no era totalmente compatible con ellos. IBM pronto convirtió a Assembler (XF) en el ensamblador de sistemas también para DOS y VM.

IEV90

Assembler (H) y Assembler (H) Versión 2 son ensambladores de productos de programa que generalmente son más rápidos que los ensambladores E, F y XF, aunque no son totalmente compatibles con ninguno de ellos.

ASMA90

IBM High Level Assembler (HLASM) es básicamente una nueva versión de Assembler (H) Version 2 y es el único ensamblador que IBM admite en z/OS y ​​z/VM. Reemplaza a todos los ensambladores antiguos, aunque no es totalmente compatible con ellos.

Compiladores

Cada lenguaje de programación utilizado en una tienda de informática tendrá uno o más compiladores asociados que traducen un programa fuente en un módulo de objeto de lenguaje de máquina. Luego, el módulo de objeto del compilador debe ser procesado por el editor de enlaces, IEWL, para crear un módulo de carga ejecutable.

IGYCRCTL es un ejemplo común de compilador; es el compilador del producto IBM Enterprise COBOL para z/OS actual. (Ha habido varios compiladores IBM COBOL anteriores a lo largo de los años, con diferentes nombres, aunque los usuarios pueden proporcionar un alias COBOLpara la versión actual). Hay muchos otros compiladores para varios otros lenguajes de programación.

Los compiladores disponibles de IBM incluían ALGOL , COBOL, FORTRAN , PL/I y RPG .

Programa de modificación del sistema (SMP)

El Programa de modificación del sistema (SMP) es el vehículo para instalar servicios en OS/360 y sus sucesores, reemplazando, por ejemplo, los trabajos de ensamblaje independiente, edición de enlaces e IMAPTFLE. Originalmente era una función opcional, pero es obligatoria para MVS/SP y versiones posteriores, y la versión del producto del programa, SMP/E, está incluida en los sistemas más recientes, por ejemplo, z/OS.

Notas

  1. ^ subdividido en Utilidades de conjuntos de datos, Utilidades del sistema y Utilidades independientes.
  2. ^ Inicialmente los DASD soportados eran discos, tambores y celdas de datos; actualmente son discos y SSD que simulan discos.
  3. ^ El conjunto de datos PASSWORD está obsoleto y ha sido reemplazado por subsistemas de seguridad que funcionan a través de la facilidad de autorización del sistema ( SAF ), por ejemplo, ACF2 , RACF .
  4. ^ El manual enumera información de capacidad para los discos 2311 y 2314 y el tambor 2301, pero no indica que esos sean los únicos DASD compatibles.

Referencias

  1. ^ abc IBM System/360 Operating System: Utilities (PDF) (Duodécima edición), IBM Corporation, junio de 1970, GC28-6586-11
    Utilidades del SO - Números de programa 360S-UT-506 360S-UT-507 (PDF) (Decimosexta edición), IBM Corporation, abril de 1973, GC28-6586-15
  2. ^ Sistema operativo IBM System/360: Ayudas de servicio OS Release 21 (PDF) (tercera edición), IBM Corporation, marzo de 1972, GC28-6719-2
  3. ^ Cuaderno de conversión de arquitectura extendida/MVS (PDF) (tercera edición), mayo de 1984, pág. 1-1, GC28-1143-2
  4. ^ Guía de planificación de OS/VS2 (PDF) . IBM Corporation. Julio de 1972. pág. 79 . Consultado el 5 de enero de 2024 .
  5. ^ Manual de lógica de programas de utilidades del sistema operativo IBM System/360 (PDF) . IBM Corporation. Noviembre de 1968. págs. 47–49 . Consultado el 4 de enero de 2024 .
  6. ^ Diagnóstico de z/OS MVS: herramientas y ayudas de servicio versión 2, versión 3 (PDF) , IBM Corporation, 20 de julio de 2018, GA32-0905-30
  7. ^ IBM Corporation. Guía de programación de aplicaciones DFSORT (PDF) . Consultado el 28 de marzo de 2017 .
  8. ^ Programa de ordenación/combinación del sistema operativo Número de programa 360S-SM-023 OS~Release 21 (PDF) (novena edición). IBM Corporation. Febrero de 1973. pág. 17. GC28-6543-8. Si descubre que, para una aplicación de ordenación/combinación en particular, el programa de ordenación/combinación no elige la técnica más eficiente, puede solicitar que se utilice otra técnica.
  9. ^ IBM Corporation (1973). Programa de combinación/clasificación del sistema operativo Número de programa 360S-SM-023 OS~Release 21 (PDF) . Consultado el 2 de abril de 2018 .

Véase también

Enlaces externos