stringtranslate.com

Programas de soporte para OS/360 y sucesores

Este artículo analiza 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 u obvios. Muchos de estos programas, pero no todos, coinciden con los tipos de software de utilidad .

Las siguientes listas describen programas asociados con OS/360 y sus sucesores . No se incluyen utilidades de 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 IBM los modificó o extendió a partir de versiones escritas originalmente por un usuario.

Estos programas generalmente se invocan a través del lenguaje de control de trabajos (JCL). Suelen utilizar identificadores JCL DD comunes (en el sistema operativo, ahora sistemas operativos z/OS ) para sus conjuntos de datos:

Utilidades de conjunto de datos

IDCAMS

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

El siguiente ejemplo ilustra el uso de IDCAMS para copiar un conjunto de datos al 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 // STEP001 EXEC PGM = IDCAMS // SYSIN  DD *  REPRO INFILE(FILE01) OUTFILE(FILE02) /* // FILE01  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 in-stream, pero, en su lugar, puede señalar cualquier archivo secuencial o un miembro de PDS que contenga tarjetas de control o un conjunto de datos temporal, si lo desea. Un ejemplo de uso de archivos SYSIN sería algo como este:

// SYSIN  DD DSN = PROD . MI ARCHIVO . REPRO , DISP = SHR

o esto:

// SYSIN  DD DSN = PROD . MILIB . 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 a nivel de registro lógico. Por lo tanto, IEBCOMPR se utiliza comúnmente 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 enumera 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 conjuntos de datos particionados , IEBCOMPR considera que los conjuntos de datos son iguales si se cumplen las siguientes condiciones:

  • Las entradas del directorio para los dos conjuntos de datos particionados coinciden, es decir, los nombres son los mismos y el número de entradas es el mismo.
  • 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 termina con el mensaje apropiado.

// XXXXXXXW TRABAJO XXXXXXX , AAAA . A . A , CLASE = G , MSGCLASS = 1 , NOTIFICAR = XXXXX // PASO01 EXEC PGM = IEBCOMPR , ACCT = PJ00000000 // INCLUDE MEMBER=@BATCHS //*SYSIN DD DUMMY // SYSIN DD *  COMPARE TYPORG=PO /* // SYSUT1  DD DSN = XXXXXXX . OLDFILE , UNIDAD = DASD , DISP = SHR // SYSUT2  DD DSN = XXXXXXX . NUEVO ARCHIVO , 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 solo a ciertas columnas, no puede ignorar las diferencias en los espacios en blanco, no le dice en qué parte del registro ocurre 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 han sido rebloqueados o verificar que una copia funcionó correctamente. Para comparar programas o informes, a menudo se utiliza el programa de comparación ISPF SuperC (ISRSUPC).

IEBCOPIA

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 requeridas 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 declaraciones 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 declaraciones DD. Estos DDNAME se especifican en las declaraciones de control de la utilidad para indicarle a IEBCOPY el nombre de los conjuntos de datos de entrada y salida. Solo necesita una declaración DD para comprimir un PDS.

IEBDG

IEBDG ('Generador de datos') crea conjuntos de datos de prueba que consisten en datos modelados. Las declaraciones 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 campos según lo especificado en las declaraciones de control, por ejemplo reemplazando un campo de nombre por 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 , NOTIFICAR =& SYSUID //****************************** ***************************************** //* CREACIÓN DE UN CONJUNTO DE DATOS Para SER UTILIZADO MÁS TARDE //********************************************* ************************** // CRSTEP EXEC PGM = IEFBR14 // DDCREA  DD DSN =& SYSUID .. MVSUT . SEQOUT , DISP = ( NUEVO , CATLG ) //*************************************** ***************************** //* CREACIÓN DE LOS DATOS DE PRUEBA //********** ************************************************** ********** // PASO1 EXEC PGM = IEBDG // SYSPRINT DD SYSOUT = * // SEQOUT  DD DSN =& SYSUID .. MVSUT . SEQOUT , DISP = ANTIGUO // SYSIN  DD DATA  DSD SALIDA=(SEQOUT)  FD NOMBRE=CAMPO1,LENGTH=30,STARTLOC=1,FORMAT=AL,ACTION=TL  FD NAME=FIELD2,LENGTH=30,STARTLOC=31,FORMAT =AL,ACCIÓN=TR  FD NOMBRE=CAMPO3,LONGITUD=10,STARTLOC=71,IMAGEN=10, X  P'1234567890',INDEX=1  CREAR CANTIDAD=500,NOMBRE=(CAMPO1,CAMPO2,CAMPO3),FILL=X 'FF'  FIN /* //****************************************** *************************** //* IMPRESIÓN DE LOS DATOS DE PRUEBA EN SYSOUT //************ ************************************************** ********* // PASO 2 EXEC PGM = IEBGENER // SYSPRINT DD SYSOUT = * // SYSUT1  DD DSN = * . PASO 1 . SEQOUT , DISP = SHR // SYSIN  DD DUMMY //                  SYSUT2  DD SYSOUT = * //********************************************* *************************** //* ELIMINAR EL CONJUNTO DE DATOS CREADO, INCLUSO SI LOS PASOS ANTERIORES SE ABERTAN //******** ************************************************** ************ // DLSTEP EXEC PGM = IEFBR14 , COND = EVEN // DDDEL  DD DSN =& SYSUID .. MVSUT . SEQOUT , DISP = ( ANTIGUO , ELIMINAR , ELIMINAR ) //    

IEBEDIT

IEBEDIT copia selectivamente partes de JCL.

Un ejemplo de un programa IEBEDIT:

// CUENTA DE TRABAJO IEBEDITJ , '' , CLASE = P , MSGCLASS = T , MSGLEVEL = ( 1 , 1 ), NOTIFICAR =& SYSUID // STEP0001 EXEC PGM = IEBEDIT // SYSPRINT DD SYSOUT = * // SYSUT1  DD DSN = xxxxx . yyyyy . zzzzz , DISP = SHR // SYSUT2  DD SYSOUT = ( * , INTRDR ) // SYSIN  DD *  EDITAR TIPO=INCLUDE,STEPNAME=(STEP10,STEP5,STEP15) /* //    

En este ejemplo, el conjunto de datos xxxxx.yyyyy.zzzzz debe contener trabajos (que deben incluir pasos denominados PASO5, PASO10 y PASO15). 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 EDITAR es:

[etiqueta] EDITAR [INICIO=nombre del trabajo] [,TIPO={POSICIÓN|INCLUDE|EXCLUDE}] [,STEPNAME=(lista de nombres)] [,NOPRINT]

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

Valor predeterminado: si se omite INICIO y solo se proporciona una instrucción EDITAR, se procesa el primer trabajo encontrado en el conjunto de datos de entrada. Si se omite START en una instrucción EDIT que no sea la primera, el procesamiento continúa con la siguiente instrucción JOB que se encuentra en el conjunto de datos de entrada.

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

POSITIONespecifica que la salida consistirá en una instrucción JOB, el paso del trabajo especificado en el parámetro STEPNAME y todos los pasos que siguen a ese paso del trabajo. Todos los pasos del trabajo que preceden al paso especificado se omiten de la operación. POSICIÓN 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 del trabajo que pertenecen al trabajo, excepto aquellos pasos especificados en el parámetro STEPNAME.

STEPNAME=(namelist)especifica los nombres de los pasos del 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 guión (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 TIPO=POSICIÓN, STEPNAME especifica el primer paso del trabajo que se colocará en el conjunto de datos de salida. Los pasos del trabajo que preceden 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 del trabajo que se incluirán o excluirán de la operación. Por ejemplo, STEPNAME=(STEPA,STEPF-STEPL,STEPZ) indica que los pasos del trabajo STEPA, STEPF a STEPL y STEPZ deben incluirse o excluirse 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.

Valor predeterminado: la salida resultante aparece en el conjunto de datos del mensaje.

Consulte aquí para obtener 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 puede realizar IEBGENER incluyen las siguientes:

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

// CUENTA DE TRABAJO DE IEBGENER , 'COPIA DE DATOS' , MSGCLASS = J , CLASE = A // STEP010 EXEC 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 = * / / DUMMY SYSIN  DD         

Para tareas de copia directa, el programa de clasificación a menudo puede realizarlas más rápido que IEBGENER. Por lo tanto, muchos talleres de mainframe utilizan una opción que enruta automáticamente dichas tareas al programa ICEGENER en lugar de IEBGENER.

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

// CUENTA DE TRABAJO DE IEBGENER , 'COPIA DE DATOS' , MSGCLASS = J , CLASE = A // NORMRC EXEC PGM = IEBGENER // SYSPRINT DD SYSOUT = * // SYSUT1  DD * , LRECL = 80 HELO <SYSTEMID> CORREO DE:<USERID @SYSTEMID> RCPT A:<USERID@SYSTEMID> DATOS De: <USERID@SYSTEMID> A: <USERID@SYSTEMID> Asunto: Correo de prueba    CORREO DE PRUEBA DESDE MAINFRAME . SALIR /* // SYSUT2  DD SYSOUT = ( B , SMTP ), LRECL = 80 // SYSIN  DD DUMMY

También es posible adjuntar archivos mientras se envía el correo electrónico desde Mainframe.

IEBIMAGEN

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 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, logotipos de empresas que se imprimirán en la página o simplemente para imprimir una "barra gris". páginas (alternando fondos horizontales grises y blancos, 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 usando 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 todavía están en uso deben convertirse a conjuntos de datos secuenciados por clave VSAM.

Antes de z/OS V1R7, se podían utilizar servicios de método de acceso para asignar un conjunto de datos secuenciados por clave VSAM y copiar un conjunto de datos ISAM en él.

IEBPTPCH

IEBPTPCH ("Imprimir y perforar") 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 ITEM=('Nombre',22),  ITEM=('GPA',50) TÍTULO ITEM=(' ',1) CAMPO DE REGISTRO =(25,1,,22),  FIELD=(4,51,,50) /* // SYSPRINT DD SYSOUT = * // SYSUT1  DD * Persona 1 307 C Meshel Hall 3.89 Segunda persona 123 Williamson Hall 2.48 3ra persona 321 Biblioteca Maag 1.52 /* // SYSUT2  DD SYSOUT = * //  

Verificación de conjunto de datos vacío: si el conjunto de datos que se va a verificar está vacío, entonces RC = 4 o 0.

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

IEBTCRIN

Lea 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 IEBUPDTE, pero no compatible con él.

IEBUPDTE

IEBUPDTE ("UPDaTE") incorpora cambios en conjuntos de datos secuenciales o particionados. La utilidad UNIX patches un programa similar, pero utiliza diferentes marcadores de formato de entrada ( 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 bibliotecas fuente. Algunas de las funciones que puede realizar IEBUPDTE incluyen las siguientes:

IEBUPDTE se utiliza habitualmente para distribuir bibliotecas fuente desde cintas a DASD .

IEBUPDTE utiliza las mismas declaraciones de control de trabajo requeridas por la mayoría de las utilidades tipo IEB. Las únicas excepciones son las siguientes:

El control de trabajo utilizado por el IEUPDTE es el siguiente:

// nombre de 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 :

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

La secuencia de llamada para 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 como se especifica en las declaraciones DD, por lo que se usa comúnmente como una forma rápida de configurar o eliminar conjuntos de datos.

Inicialmente consistía en una sola instrucción, "Sucursal para registrar" 14. El mnemotécnico utilizado en IBM Assembler 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 estableció el código de retorno. Por lo tanto, se tuvo que agregar una segunda instrucción para borrar el código de retorno para que saliera con el estado correcto.

IBM informó y solucionó un error adicional en este programa que ahora tiene dos instrucciones. Este error se debió a que el enlace del programa IEFBR14 no se editó como reingresable (utilizable simultáneamente por más de una persona que llama).

Algunos piratas informáticos tomaron IEFBR14 y cambiaron 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 módulo IEFBR14 en sí, 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 los programadores para realizar trabajos de aplicación en el sistema.

ICKDSF

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

IEHATLAS

Asigne pistas alternativas a las pistas defectuosas.

IEHDASDR

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

IBM finalmente 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 (5740-UT1) y a los servicios de instalación de datos/conjunto de datos (5740-UT3, DF/DSS) con cargo para volcado/ restaurar.

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

IEHINITT

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

Un ejemplo de un programa IEHINITT:

// CUENTA DE TRABAJO IEHINITT , 'CINTAS DE ETIQUETA' , MSGCLASS = J , CLASE = A // STEP0001 EXEC PGM = IEHINITT , REGIÓN = 8 M // SYSPRINT DD SYSOUT = A // ETIQUETA  DD DCB = DEN = 2 , UNIDAD = ( 3490 , 1 , Aplazar ) // SYSIN  DD * ETIQUETA INITT SER=123450,NUMBTAPE=3 /*        

Este ejemplo etiquetará 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 será rebobinada y descargada después de ser etiquetada.

IEHIOSUP

IEHIOSUP actualiza los enlaces de direcciones de seguimiento 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 ABRIR, CERRAR y EOV se realizan mediante una serie de módulos SVC que se ejecutan secuencialmente. Algunos módulos contienen tablas utilizadas por la XCTLmacro para vincularse al siguiente de la serie. Por motivos 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 hacer que estas direcciones cambien, por lo que es necesario ejecutar IEHIOSUP para instalar las direcciones correctas. [5]

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

// TRABAJO IHEIOSUP // EXEC PGM=IEHIOSUP // SYSUT1 DD DSNAME = SYS1 . SVCLIB ~ DISP = ANTIGUO , 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:

// CUENTA DE TRABAJO IEHLIST , 'LISTA PDS' , MSGCLASS = J , CLASE = A // STEP0001 EXEC PGM = IEHLIST , REGIÓN = 8 M // SYSPRINT DD SYSOUT = A // PDS1  DD DSN = xxxx . yyyy . zzzz , DISP = ANTIGUO // SYSIN  DD *  LISTPDS DSNAME=xxxx.yyyy.zzzz,FORMATO /*     

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

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

// CUENTA DE TRABAJO IEHLIST , 'LISTA VTOC' , MSGCLASS = J , CLASE = A // STEP0001 EXEC 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 ( System Managed Storage ) ahora son 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 para las empresas de servicios públicos IEBGENER e IEBCOPY. Sin embargo, IEHMOVE es más poderoso. La principal ventaja de utilizar IEHMOVE es que no es necesario especificar espacio o información 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 puede copiar o mover grupos de conjuntos de datos, así como volúmenes enteros de datos. Debido a la facilidad para mover grupos de conjuntos de datos o volúmenes, los programadores de sistemas generalmente prefieren la utilidad IEHMOVE .

Un ejemplo de trabajo de IEHMOVE:

// nombre de paso EXEC PGM = IEHMOVE , PARM = 'LINECNT=xx,POWER=n' // SYSPRINT DD SYSOUT = clase // SYSUT1  DD UNIT = aaaa , VOL = SER = bbbbbb , DISP = OLD // anyname1 DD UNIT = cccc , VOL = SER = dddddd , DISP = OLD // anyname2 DD UNIT = eeee , VOL = SER = ffffff , DISP = OLD // SYSIN  DD ...  

Las declaraciones DD para IEHMOVE, distintas de SYSPRINT y SYSIN, se refieren a DASD o volúmenes 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 especificar DISP=OLDse obtiene acceso exclusivo a un volumen. Por lo tanto, mientras se ejecuta su trabajo IEHMOVE, todo el volumen (y todos los conjuntos de datos que contiene) no está disponible para otros usuarios. Esto es aceptable para volúmenes privados, como cintas o volúmenes 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, tres conjuntos de datos secuenciales (SEQSET1, SEQSET2 y SEQSET3) se mueven de un volumen de disco a tres volúmenes de disco separados. Cada uno de los tres volúmenes receptores se monta cuando IEHMOVE lo requiere. Los conjuntos de datos de origen no están catalogados. El espacio lo asigna IEHMOVE.

// MOVIÓ EL TRABAJO ... // PASO1 EXEC PGM = IEHMOVE // SYSPRINT DD SYSOUT = A // SYSUT1  DD UNIDAD = disco , VOLUMEN = SER = 333333 , DISP = ANTIGUO // DD1  DD UNIDAD = ( disco ,, APLAZAR ) , DISP = ANTIGUO , // VOLUMEN = ( PRIVADO ,, SER = ( 222222 )) // DD2  DD UNIDAD = ( disco ,, DIFERIR ), DISP = ANTIGUO , // VOLUMEN = ( PRIVADO ,, SER = ( 222333 )) // DD3  DD UNIDAD = ( disco ,, DIFERIR ), DISP = ANTIGUO , // VOLUMEN = ( PRIVADO ,, SER = ( 222444 )) // DD4  DD VOLUMEN = ( PRIVADO , RETENER , SER = ( 444444 )), / / UNIDAD = disco , DISP = ANTIGUO // SYSIN  DD *  MOVER DSNAME=SEQSET1,TO=disk=222222,FROM=disk=444444  MOVER DSNAME=SEQSET2,TO=disk=222333,FROM=disk=444444  MOVER DSNAME=SEQSET3, A=disco=222444,DESDE=disco=444444 /*        

IEHPROGM

IEHPROGM construye y mantiene datos de control del sistema. También se utiliza para cambiar el nombre y eliminar (eliminar) un conjunto de datos.

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

Para catalogar:

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

IFHSTATR

Seleccione y formatee registros SMF para errores de cinta.

Servicios públicos independientes

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

IBCDASDI

Formatee volúmenes de acceso directo y asigne pistas alternativas.

IBCDMPRS

Volcar y restaurar volúmenes de acceso directo.

IBCRCVRP

Asigne pistas alternativas, recupere y reemplace datos.

ICAPRTBL

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

Ayudas de servicio

Estos son programas de utilidad que IBM documenta en manuales de ayuda de servicio o diagnóstico [6] . Las ayudas del servicio OS/360 originales tenían nombres que comenzaban con IFC e IM*, pero IBM cambió la convención de nomenclatura 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 seguimiento generalizado)

Realiza un seguimiento de eventos seleccionados del sistema, como SVC e interrupciones de E/S.

IMAPTFLE

Genera el JCL necesario para aplicar a un PTF y/o aplica el PTF. Las funciones de este programa han sido incluidas en SMP .

IMASPZAP

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

IMBLISTA

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

IMBMDMAP

Módulos de carga de mapas. Las funciones de este programa han sido incluidas en IMBLIST.

IMCJQDMP

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

IMCOSJQD

Formatee e imprima la cola de trabajos del sistema. No aplicable a MVS .

IMDPRDMP

Formatea e imprime volcados de memoria , conjuntos de datos de intercambio de TSO y datos de seguimiento de GTF.

IMDSADMP

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

Varios programas de apoyo

CLASIFICAR

La utilidad Ordenar/Combinar es un programa que clasifica registros en un archivo en un orden específico o combina archivos preclasificados. Se utiliza con mucha frecuencia; A menudo es el programa de aplicación más utilizado en un taller de mainframe. Los programas modernos de clasificación/fusión también pueden seleccionar u omitir ciertos registros, resumir registros, eliminar duplicados, reformatear registros y producir informes simples. La clasificación/fusión es lo suficientemente importante como para que haya varias empresas, cada una de las cuales vende su propio paquete de clasificación/fusión para mainframes IBM.

El programa de clasificación/fusión OS/360 original de IBM, 360S-SM-023, nombre de programa IERRCO00 (alias SORT), solo admitía los dispositivos de almacenamiento de acceso directo (DASD) [d] y cintas (2400) de primera generación de IBM. Los productos de programas de IBM , como 5734-SM1 y el posterior 5740-SM1 ( DFSORT , alias ICEMAN, también SORT), proporcionaron soporte para 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 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 SORTOUTo pasar registros para que el llamante los ordene y/o pasar registros ordenados de vuelta al llamante en un momento.

El funcionamiento de SORT está dirigido por declaraciones de control, que son en gran medida compatibles entre varios programas de clasificación de IBM y de terceros. La declaración SORTo MERGEdefine las claves de clasificación : los campos en los que se ordenarán o fusionarán los datos. Esta declaración identifica la posición, longitud y tipo de datos de cada clave. La RECORDdeclaración describe el formato y la longitud de los registros en el archivo de entrada. Otras declaraciones permiten al usuario especificar qué registros deben incluirse o excluirse de la clasificació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 zonificados o empaquetados, binarios de punto fijo con o sin signo o hexadecimales de punto flotante. Las claves pueden ubicarse en cualquier parte del registro y no tienen que ser contiguas. La clasificación se puede especificar en cualquier combinación de secuencia ascendente y descendente por clave. [7]

El programa de clasificación de OS/360, IERRCO00, opera dividiendo los datos de entrada en secciones, clasificando 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 finales de fusión luego fusionan las secciones para producir el resultado ordenado. 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 tenía el editor Linkage, disponible en varias configuraciones. DFSMSdfp agregó Binder como alternativa para cargar módulos y como única opción para 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 otras funciones diversas. Originalmente estaba disponible en varias configuraciones según los requisitos 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 motivos de compatibilidad.

Aglutinante

La carpeta realiza las mismas funciones que el editor de vínculos. 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

Por lo general, un ensamblador era estándar porque era necesario para la generación y personalización del sistema (SYSGEN).

IETASM

Assembler (E) estaba pensado para OS/360 ejecutándose en máquinas muy pequeñas.

IEUASM

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

IFOX00

Assembler (XF) era el ensamblador del sistema 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) también en el ensamblador de sistemas para DOS y VM.

IEV90

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

ZAEA90

IBM High Level Assembler (HLASM) es esencialmente una nueva versión de Assembler (H) Versión 2 y es el único ensamblador que IBM admite en z/OS y ​​z/VM. Reemplaza a todos los ensambladores más 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 a un módulo objeto de lenguaje de máquina. Luego, el editor de enlaces, IEWL, debe procesar el módulo objeto del compilador 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 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 el servicio en OS/360 y sus sucesores, reemplazando, por ejemplo, el ensamblaje independiente, la edición de enlaces y los trabajos IMAPTFLE. Originalmente era una función opcional, pero es obligatoria para MVS/SP y posteriores, y la versión del producto del programa, SMP/E, se incluye en los sistemas más recientes, por ejemplo, z/OS.

Notas

  1. ^ subdividido en utilidades de conjunto de datos, utilidades del sistema y utilidades independientes.
  2. ^ Los DASD inicialmente admitidos 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 función 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: Utilidades (PDF) (Duodécima ed.), IBM Corporation, junio de 1970, GC28-6586-11
    Utilidades del sistema operativo: números de programa 360S-UT-506 360S-UT-507 (PDF) (decimosexta ed.), IBM Corporation, abril de 1973, GC28-6586-15
  2. ^ Sistema operativo IBM System/360: Service Aids OS versión 21 (PDF) (tercera ed.), IBM Corporation, marzo de 1972, GC28-6719-2
  3. ^ Cuaderno de conversión de arquitectura extendida/MVS (PDF) (Tercera ed.), mayo de 1984, p. 1-1, GC28-1143-2
  4. ^ Guía de planificación de OS/VS2 (PDF) . Corporación IBM. Julio de 1972. p. 79 . Consultado el 5 de enero de 2024 .
  5. ^ Manual de lógica del programa de utilidades del sistema operativo IBM System/360 (PDF) . Corporación IBM. 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. ^ Corporación IBM. Guía de programación de aplicaciones DFSORT (PDF) . Consultado el 28 de marzo de 2017 .
  8. ^ Programa de clasificación/fusión de SO Número de programa 360S-SM-023 OS ~ Versión 21 (PDF) (Novena ed.). Corporación IBM. Febrero de 1973. p. 17. GC28-6543-8. Si descubre que para una aplicación de clasificación/fusión en particular, el programa de clasificación/fusión no elige la técnica más eficiente, puede solicitar que la clasificación utilice otra técnica.
  9. ^ Corporación IBM (1973). Programa de clasificación/fusión de SO Número de programa 360S-SM-023 OS ~ Versión 21 (PDF) . Consultado el 2 de abril de 2018 .

Ver también

enlaces externos