Este artículo describe los programas de soporte incluidos o disponibles para OS / 360 y 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 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 extendidos por IBM a partir de versiones escritas originalmente por un usuario.
Estos programas generalmente se invocan a través de Job Control Language (JCL). Tienden a utilizar identificadores JCL DD comunes (en el SO, ahora sistemas operativos z / OS ) para sus conjuntos de datos:
DDNAME | Función habitual |
---|---|
SYSIN | archivo de entrada para los 'comandos' de la utilidad. A menudo se establece en DUMMY si se desea la acción predeterminada |
SYSUT1 | fichero de entrada |
SYSUT2 | archivo de salida |
SYSUT3 | archivo de trabajo (derrame) para entrada (SYSUT1) (a menudo no se usa) |
SYSUT4 | archivo de trabajo (derrame) para salida (SYSUT2) (a menudo no se usa) |
SYSPRINT | archivo de salida para la salida impresa de la utilidad |
SYSOUT | archivo de salida para mensajes de la utilidad |
SYSUDUMP | archivo de salida para un 'volcado' del sistema si el programa falla |
Utilidades del conjunto de datos
IDCAMS
IDCAMS ("Servicios de método de acceso") genera y modifica el método de acceso al almacenamiento virtual (VSAM) y conjuntos de datos que no son VSAM. IDCAMS se introdujo junto con VSAM en OS / VS ; la referencia del "Método de acceso" se deriva de la mentalidad inicial de "VSAM reemplaza a 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 no VSAM.
El siguiente ejemplo ilustra el uso de IDCAMS para copiar un conjunto de datos en el 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 , CLASS = G , MSGCLASS = 1 , NOTIFY = & SYSUID // STEP001 EXEC PGM = IDCAMS // SYSIN DD * REPRO INFILE (FILE01) OUTFILE (FILE02) / * // ARCHIVO01 DD DSN = PROD . ARCHIVO 1 . ENTRADA , disp = shr ..... // FILE02 DD DSN = PROD . ARCHIVO 2 . 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 apuntar a 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 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 a nivel de registro lógico. Por lo tanto, IEBCOMPR se usa comúnmente para verificar que una copia de respaldo 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 son desiguales, IEBCOMPR enumera la siguiente información en el SYSOUT:
- Los números de registro y bloque en cuestión.
- Los nombres de las declaraciones DD en las que se produjo la inconsistencia.
- Los registros desiguales.
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 los conjuntos de datos iguales si se cumplen las siguientes condiciones:
- Las entradas de directorio para los dos conjuntos de datos particionados coinciden, es decir, los nombres son iguales y el número 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 termina con el mensaje apropiado.
// XXXXXXXW TRABAJO XXXXXXX , AAAA . Una . A , CLASS = G , MSGCLASS = 1 , NOTIFY = XXXXX // STEP01 EXEC PGM = IEBCOMPR , ACCT = PJ00000000 // INCLUYE MIEMBRO = @ LOTES // * SYSIN DD DUMMY // SYSIN DD * COMPARE TYPORG = PO / * // SYSUT1 DD DSN = XXXXXXX . ARCHIVO ANTIGUO , UNIDAD = DASD , DISP = SHR // SYSUT2 DD DSN = XXXXXXX . ARCHIVO NUEVO , UNIDAD = DASD , DISP = SHR // SYSUT # DD
Nota: IEBCOMPR no es un programa de comparación muy flexible o fácil de usar. No puede restringir la comparación a solo ciertas columnas, no puede ignorar las diferencias en el espacio 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 se han vuelto a bloquear o verificar que una copia funcionó correctamente. Para las comparaciones de programas o informes, a menudo se utiliza en su lugar el programa de comparación ISPF SuperC (ISRSUPC).
IEBCOPY
IEBCOPY copia, comprime y fusiona conjuntos de datos particionados . También puede seleccionar o excluir miembros especificados durante la operación de copia y cambiar el nombre o reemplazar miembros.
Algunas de las tareas que puede realizar IEBCOPY incluyen las siguientes:
- Creación de una descarga de un conjunto de datos particionados (PDS) a un conjunto de datos PS, para copia de seguridad o transmisión.
- Copiar un PDS en su lugar para recuperar el espacio no utilizado de los miembros eliminados; también llamado comprimir un PDS.
- Copiar miembros seleccionados a otro PDS.
- Cambio de nombre de miembros seleccionados de un PDS.
- Fusionar varios conjuntos de datos particionados en un solo PDS.
- Modificar, copiar y volver a bloquear módulos de carga.
- Los miembros que ya están presentes en otro PDS no serán reemplazados a menos que se especifique la opción R.
Para la utilidad IEBCOPY , las instrucciones de control de trabajo necesarias para una copia son las siguientes:
// nombre de paso EXEC PGM = IEBCOPY // SYSPRINT DD SYSOUT = class // MYDD1 DD DSN = xxxx . ppp . psps , DISP = SHR // MYDD2 DD DSN = xxxx . ppp . pssp , DISP = SHR // SYSIN DD * COPY INDD = MYDD1, OUTDD = MYDD2 SELECT MEMBER = (MEM1, MEM2, MEM3) / EXCLUDE MEMBER = (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 con patrones. 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 usar un conjunto de datos existente como entrada y cambiar campos como se especifica 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 subsiguiente.
Ejemplo:
// XXXXXXXW TRABAJO XXXXXXX , AAAA , CLASS = G , MSGCLASS = 1 , NOTIFY = & SYSUID // *************************** ***************************************** // * CREACIÓN DE UN CONJUNTO DE DATOS para SE UTILIZARÁ MÁS TARDE EL // *********************************************************************************************************************************************************************************************************************************************************************************************** ************************** // 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 = OLD // SYSIN DD DATA DSD OUTPUT = (SEQOUT) FD NAME = FIELD1, LENGTH = 30, STARTLOC = 1, FORMAT = AL, ACTION = TL FD NAME = FIELD2, LENGTH = 30, STARTLOC = 31, FORMAT = AL, ACCIÓN = TR FD NAME = FIELD3, LENGTH = 10, STARTLOC = 71, PICTURE = 10, X P'1234567890 ', INDEX = 1 CREATE CANTITY = 500, NAME = (FIELD1, FIELD2, FIELD3), FILL = X 'FF' END / * // **************************************** *************************** // * IMPRESIÓN DE LOS DATOS DE PRUEBA EN SYSOUT // *********** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ********* // PASO2 EXEC PGM = IEBGENER // SYSPRINT DD SYSOUT = * // SYSUT1 DD DSN = * . PASO 1 . SEQOUT , DISP = SHR // SYSIN DD DUMMY // SYSUT2 DD SYSOUT = * // ****************************** ************************************* // * BORRAR EL CONJUNTO DE DATOS CREADO, INCLUSO SI ES ANTERIOR PASOS ABENDIDOS // ******************************************* ************************ // DLSTEP EXEC PGM = IEFBR14 , COND = EVEN // DDDEL DD DSN = & SYSUID .. MVSUT . SEQOUT , DISP = ( ANTIGUO , BORRAR , BORRAR ) //
IEBEDIT
IEBEDIT copia de forma selectiva partes de JCL.
Un ejemplo de un programa IEBEDIT:
// IEBEDITJ JOB ACCT , '' , CLASS = P , MSGCLASS = T , MSGLEVEL = ( 1 , 1 ), NOTIFY = & SYSUID // STEP0001 EXEC PGM = IEBEDIT // SYSPRINT DD SYSOUT = * // SYSUT1 DD DSN = xxxxx . aaaa . zzzzz , DISP = SHR // SYSUT2 DD SYSOUT = ( * , INTRDR ) // SYSIN DD * EDIT TYPE = INCLUDE, STEPNAME = (STEP10, STEP5, STEP15) / * //
En este ejemplo, el conjunto de datos xxxxx.yyyyy.zzzzz debe contener trabajos (que deben incluir los pasos denominados STEP5, STEP10 y STEP15). Esta rutina de IEBEDIT copia los pasos seleccionados del trabajo en el archivo de salida SYSUT2 (en este ejemplo, el lector interno.
La sintaxis de la instrucción EDIT es:
[etiqueta] EDITAR [INICIO = nombre de trabajo] [, TIPO = {POSICIÓN | INCLUIR | EXCLUIR}] [, STEPNAME = (lista de nombres)] [, NOPRINT]
START=jobname
especifica 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 y STEPNAME, la sentencia JOB y todos los pasos del trabajo para el trabajo especificado se incluyen en la salida.
Valor 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 de 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:
POSITION
especifica que la salida debe constar de una instrucció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 del trabajo que preceden al paso especificado se omiten de la operación. POSICIÓN es el valor predeterminado.
INCLUDE
especifica que el conjunto de datos de salida debe contener una instrucción JOB y todos los pasos del trabajo especificados en el parámetro STEPNAME.
EXCLUDE
especifica que el conjunto de datos de salida debe contener una instrucción JOB y todos los pasos del trabajo que pertenecen al trabajo, excepto los pasos especificados en el parámetro STEPNAME.
STEPNAME=(namelist)
especifica los nombres de los pasos del trabajo que desea procesar.
namelist
puede ser un nombre de paso de trabajo único, una lista de nombres de paso 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 TYPE = POSITION, STEPNAME especifica el primer paso de 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 de 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.
NOPRINT
especifica que el conjunto de datos del mensaje no debe incluir una lista del conjunto de datos de salida.
Predeterminado: la salida resultante se enumera 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 IEBGENER puede realizar incluyen las siguientes:
- Creación de una copia de seguridad de un conjunto de datos secuenciales o un miembro de un PDS .
- Cambiar el tamaño del bloque físico o la longitud del registro lógico de un conjunto de datos secuenciales.
- Creando un conjunto de datos editado.
- Imprimir un conjunto de datos secuenciales o un miembro de un PDS.
- Creación de un conjunto de datos de salida particionado a partir de un conjunto de datos de entrada secuencial.
Un ejemplo de un programa IEBGENER para copiar un conjunto de datos a otro:
// IEBGENER JOB ACCT , 'DATOS COPIA' , MSGCLASS = J , CLASE = A // STEP010 EXEC PGM = IEBGENER // SYSUT1 DD DSN = xxxxx . aaaa . zzzzz , DISP = SHR // SYSUT2 DD DSN = aaaaa . bbbbb . ccccc , DISP = (, CATLG ), // UNIDAD = SYSDA , SPACE = ( 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 hacerlas más rápido que IEBGENER. Por lo tanto, muchas tiendas de mainframe hacen uso de una opción que enruta automáticamente tales tareas al programa de clasificación 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:
// IEBGENER JOB ACCT , 'COPIA DE DATOS' , MSGCLASS = J , CLASS = A // NORMRC EXEC PGM = IEBGENER // SYSPRINT DD SYSOUT = * // SYSUT1 DD * , LRECL = 80 HELO MAIL FROM: RCPT PARA: DATA De: Para: 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.
IEBIMAGE
IEBIMAGE manipula varios tipos de definiciones (también conocidas como imágenes ) para el subsistema de impresión láser IBM 3800 y la impresora IBM 4248. Los usos comunes son para búferes de control de formularios ( FCB ), tablas de disposición de caracteres, definiciones de caracteres e imágenes de formularios para imprimir en la salida junto con el texto, para que los logotipos de la empresa se impriman en la página o simplemente para imprimir 'barra gris' páginas (alternancia de fondos horizontales grises y blancos, para que coincida 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, lo que elimina la necesidad de almacenar muchos formularios preimpresos y la necesidad de que los operadores detenga 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 Utilidades: 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 en conjuntos de datos de secuencia de claves VSAM.
Antes de z / OS V1R7, podía utilizar los servicios de método de acceso para asignar un conjunto de datos de secuencia de claves VSAM y copiar un conjunto de datos ISAM en él.
IEBPTPCH
IEBPTPCH ("Impresión y perforación") imprime o perfora registros de un conjunto de datos secuencial o particionado.
Algunas de las tareas que puede realizar IEBPTPCH incluyen las siguientes:
- Imprimir o perforar un conjunto de datos completo , secuencial o particionado (PDS).
- Imprimir o perforar miembros de PDS seleccionados.
- Imprimir o perforar registros seleccionados de un conjunto de datos secuencial o particionado.
- Imprimir o perforar un directorio PDS.
- Imprimir o perforar una versión editada de un conjunto de datos secuenciales o PDS.
- Compruebe si hay un conjunto de datos vacío
// TRABAJO IEBPTPCH // EXEC PGM = IEBPTPCH // SYSIN DD * PRINT MAXFLDS = 2 TITLE ITEM = ('Nombre', 22), ITEM = ('GPA', 50) TITLE ITEM = ('', 1) RECORD FIELD = (25, 1, 22), CAMPO = (4,51, 50) / * // SYSPRINT DD SYSOUT = * // SYSUT1 DD * Persona 1307 C Meshel Hall 3.89 Segunda persona 123 Williamson Hall 2.48 Tercera persona 321 Maag Library 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 más 0.
// TRABAJO IEBPTPCH // EXEC 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 = * //
IEBTCRIN
Leer registros de un lector de cartucho 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 en conjuntos de datos secuenciales o particionados. La patch
utilidad UNIX es 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 las bibliotecas de origen. Algunas de las funciones que puede realizar IEBUPDTE incluyen las siguientes:
- Crear y actualizar bibliotecas
- Modificar conjuntos de datos secuenciales o miembros de PDS
- Cambiar la organización de un conjunto de datos de secuencial a particionado o de particionado a secuencial.
IEBUPDTE se usa 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:
- IEBUPDTE acepta un parámetro PARM codificado en la instrucción EXEC, NEW o MOD. NEW indica que las declaraciones de control de la utilidad y los datos de entrada están contenidos en la declaración SYSIN DD, por lo que no se necesita ninguna declaración SYSUT1 DD. MOD indica que la declaración SYSIN DD contiene solo declaraciones de control de la utilidad, sin datos de entrada. Por lo tanto, se requiere la declaración SYSUT1 DD para definir el conjunto de datos de entrada.
- IEBUPDTE lee el conjunto de datos de entrada de la declaración SYSUT1 DD o de la declaración SYSIN DD.
El control de trabajo utilizado por IEUPDTE es el siguiente:
// nombre de paso EXEC PGM = IEUPDTE , PARM = NEW // SYSPRINT DD SYSOUT = class // 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 JOB ACCT , 'CONJUNTO DE DATOS DELETE' // Step01 EXEC PGM = IEFBR14 // DELDD DD DSN = xxxxx . aaaa . zzzzz , // DISP = ( MOD , BORRAR , BORRAR ), UNIDAD = DASD
La secuencia de llamada para OS / 360 contenía la dirección de retorno en el Registro 14. Una rama 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, una "Rama para registrar" 14. El mnemónico utilizado en IBM Assembler era BR y de ahí el nombre: IEF BR 14. IEF es, por supuesto, el "prefijo" de la "gestión de trabajos" de OS / 360 "subsistema.
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 de dos instrucciones. Este error se debió a que el programa IEFBR14 no se estaba editando en enlace como reentrable (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 las utilizan normalmente 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 en 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)
- Inicializar un volumen DASD, con verificación de superficie opcional
- Asignar pistas alternativas a pistas defectuosas
- Imprimir pistas en un DASD
- Crear una copia de seguridad de un volumen DASD en cinta
- Restaure los volúmenes DASD a partir de cintas de respaldo.
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 con cargo (5740-UT1) y Data Facility / Data Set Services (5740-UT3, DF / DSS) para volcado / restaurar.
IBM eliminó IEHDASDR en MVS / XA. [3]
IEHINITT
IEHINITT ("INITialize Tape") inicializa 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:
// IEHINITT JOB ACCT , 'LABEL TAPES' , MSGCLASS = J , CLASS = A // STEP0001 EXEC PGM = IEHINITT , REGION = 8 M // SYSPRINT DD SYSOUT = A // LABEL DD DCB = DEN = 2 , UNIT = ( 3490 , 1 , APLAZAR ) // SYSIN DD * LABEL 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
Actualice los enlaces TTR para las rutinas de llamada de supervisor de tipo IV (SVC) en SYS1.SVCLIB. No se aplica a OS / VS2 o posterior.
IEHLIST
IEHLIST es una utilidad que se utiliza para enumerar entradas en un directorio de conjuntos 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:
- Directorio PDS
- VTOC
- Catálogo (OS CVOL)
Un ejemplo de un programa IEHLIST:
// IEHLIST JOB ACCT , 'LIST PDS' , MSGCLASS = J , CLASS = A // STEP0001 EXEC PGM = IEHLIST , REGION = 8 M // SYSPRINT DD SYSOUT = A // PDS1 DD DSN = xxxx . aaaa . zzzz , DISP = OLD // SYSIN DD * LISTPDS DSNAME = xxxx.yyyy.zzzz, FORMAT / *
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 JOB ACCT , 'LIST VTOC' , MSGCLASS = J , CLASS = A // STEP0001 EXEC PGM = IEHLIST , REGION = 8 M // SYSPRINT DD SYSOUT = A // VOL1 DD VOL = SER = vvvvvv , DISP = OLD // SYSIN DD * LISTVTOC VOL = SER = vvvvvv, FORMAT / *
IEHMOVE
IEHMOVE mueve o copia colecciones de datos. Sin embargo, los entornos DFSMS ( System Managed Storage ) ahora son comunes e IBM no recomienda usar la utilidad IEHMOVE en esos. Un movimiento se diferencia de una copia en que después de un movimiento, el conjunto de datos original se elimina o se raya. Algunas de las tareas que IEHMOVE puede realizar incluyen las siguientes:
- Mover o copiar conjuntos de datos secuenciales y particionados
- Mover o copiar conjuntos de datos de varios volúmenes
- Mover un volumen completo de conjuntos de datos
En la superficie, IEHMOVE puede parecer redundante para las utilidades IEBGENER e IEBCOPY. Sin embargo, IEHMOVE es más poderoso. La principal ventaja de utilizar IEHMOVE es que no es necesario especificar el espacio o la 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 completos 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 = class // 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 volúmenes de cinta magnética o DASD en lugar de conjuntos de datos individuales . Sin embargo, hacer referencia a volúmenes puede plantear un problema, ya que al especificarlo se DISP=OLD
obtiene acceso exclusivo a un volumen. Por lo tanto, mientras se ejecuta su trabajo de 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 cintas o volúmenes DASD montables, pero volúmenes públicos inaceptables.
La declaración SYSUT1 DD especifica un volumen DASD donde se asignan tres conjuntos de datos de trabajo requeridos por IEHMOVE. Debe especificar la información de unidad y volumen para esta declaración DD.
IEHMOVE fue uno de los primeros sistemas a desarrollarse 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 de recepción se monta cuando IEHMOVE lo requiere. Los conjuntos de datos de origen no están catalogados. El espacio lo asigna IEHMOVE.
// MOVED JOB ... // STEP1 EXEC PGM = IEHMOVE // SYSPRINT DD SYSOUT = A // SYSUT1 DD UNIT = disk , VOLUME = SER = 333333 , DISP = OLD // DD1 DD UNIT = ( disk ,, DEFER ) , DISP = OLD , // VOLUME = ( PRIVATE ,, SER = ( 222222 )) // DD2 DD UNIT = ( disk ,, DEFER ), DISP = OLD , // VOLUME = ( PRIVATE ,, SER = ( 222333 )) // DD3 DD UNIT = ( disk ,, Aplazar ), DISP = OLD , // VOLUME = ( PRIVATE ,, SER = ( 222444 )) // DD4 DD VOLUME = ( PRIVATE , RETAIN , SER = ( 444444 )), / / UNIDAD = disco , DISP = VIEJO // SYSIN DD * MOVE DSNAME = SEQSET1, TO = disk = 222222, FROM = disk = 444444 MOVE DSNAME = SEQSET2, TO = disk = 222333, FROM = disk = 444444 MOVE DSNAME = SEQSET3, A = disco = 222444, DESDE = disco = 444444 / *
IEHPROGM
IEHPROGM crea y mantiene datos de control del sistema. También se utiliza para cambiar el nombre y borrar (borrar) un conjunto de datos.
Algunas de las tareas que IEHPROGM puede realizar incluyen las siguientes:
- Eliminar (rascar) un conjunto de datos o un miembro de PDS
- Cambiar el nombre de un conjunto de datos o miembro de PDS
- Catalogar o descatalogar un conjunto de datos
- Mantenimiento de las contraseñas del conjunto de datos en el conjunto de datos PASSWORD del sistema [c]
Para catalogar:
// SYSIN DD * CATLG DSNNAME = nombre-conjunto-datos, VOL = nombre-dispositivo = número-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.
IBCDASD
Formatee los volúmenes de acceso directo y asigne pistas alternativas.
IBCDMPRS
Volcar y restaurar volúmenes de acceso directo.
IBCRCVRP
Asignar pistas alternativas, recuperar y reemplazar 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 ayudas de servicio o manuales de diagnóstico [4] . Las ayudas de 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.
IFCDIPOO
Inicializa el conjunto de datos SYS1.LOGREC.
IFCEREPO
Resume e imprime registros del conjunto de datos de registro de errores SYS1.LOGREC.
GTF (facilidad de rastreo generalizada)
Rastrea eventos seleccionados del sistema como SVC e interrupciones 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 incluidas por SMP .
IMASPZAP
Verifica y / o reemplaza instrucciones y / o datos en un módulo de carga u objeto de programa
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 por IMBLIST.
IMCJQDMP
Programa independiente para formatear e imprimir la cola de trabajos del sistema. No se aplica a MVS .
IMCOSJQD
Formatee e imprima la cola de trabajos del sistema. No se aplica a MVS .
IMDPRDMP
Formatea e imprime volcados, conjuntos de datos de intercambio TSO y datos de seguimiento GTF.
IMDSADMP
Programa independiente para producir un volcado de almacenamiento principal a alta o baja velocidad.
Programas de apoyo varios
CLASIFICAR
La utilidad Ordenar / Combinar es un programa que clasifica los registros de un archivo en un orden específico o combina archivos preordenados. Se utiliza con mucha frecuencia; a menudo, el programa de aplicación más utilizado en una tienda de mainframe. Los programas modernos de clasificación / combinació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 que vendan cada una su propio paquete de clasificación / fusión para mainframes de 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 de primera generación (DASD) [d] y cintas (2400) de IBM . El soporte para unidades de disco de segunda generación fue proporcionado por productos de programa de IBM como 5734-SM1 y el posterior 5740-SM1 (DFSORT, alias ICEMAN, también SORT).
SORT se ejecuta con frecuencia como un programa independiente, donde normalmente lee la entrada de un archivo identificado por DD SORTIN
y escribe la salida ordenada en un archivo identificado por DD SORTOUT
. También a menudo se llama desde otra aplicación, a través de la COBOL SORT
verbo o llamadas de PL / I PLISRTx
rutinas, donde se puede utilizar cualquiera SORTIN
o SORTOUT
archivos o haber registros pasaron a ser clasificados por la persona que llama y / o pasar registros ordenados copia a la persona que llama al 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 instrucción SORT
o MERGE
define las claves de clasificación , los campos en los que se clasificarán o fusionarán los datos. Esta declaración identifica la posición, la longitud y el tipo de datos de cada clave. La RECORD
declaració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 , decimal empaquetado o dividido en zonas, binario de coma fija con o sin signo o coma flotante hexadecimal. Las claves se pueden ubicar en cualquier lugar del registro y no es necesario que sean contiguas. La clasificación se puede especificar en cualquier combinación de secuencia ascendente y descendente por tecla. [5]
El programa de clasificación OS / 360, IERRCO00, opera dividiendo los datos de entrada en secciones, clasificando cada sección en la memoria principal y escribiendo la sección clasificada 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 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. [6] SORT tiene tres técnicas que se pueden utilizar si el almacenamiento intermedio es cinta y dos si el disco. [7]
Las técnicas de la cinta son:
- Equilibrado (BALN): más eficiente si hay más unidades de cinta disponibles para almacenamiento intermedio.
- Polifase (POLY): se utiliza si hay menos unidades de cinta disponibles para almacenamiento intermedio.
- Oscilante (OSCL): utiliza más almacenamiento principal. El tamaño del conjunto de datos de entrada debe ser conocido o aproximado.
Las técnicas de disco son:
- Acceso directo equilibrado (BALN): utiliza de tres a seis conjuntos de datos de almacenamiento intermedio.
- Crisscross Direct Access (CRCX): utiliza de seis a diecisiete conjuntos de datos de almacenamiento intermedio, requiere el doble del almacenamiento principal de la técnica Balanced Direct Access.
Enlazadores
OS / 360 solo tenía el editor de enlaces, disponible en varias configuraciones. DFSMSdfp agregó el Binder como una alternativa para los módulos de carga y como la única opción para los objetos del programa.
Editor de enlaces
El editor de enlaces 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 misceláneas. 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 enlaces solo está presente por compatibilidad.
Aglutinante
El encuadernador 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.
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 objetos en lenguaje de máquina. Luego, el módulo de objeto del compilador debe ser procesado por el editor de vínculos, 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). Hay muchos otros compiladores para varios otros lenguajes de programación.
IETASMO
Assembler (E) fue diseñado para OS / 360 que se ejecuta en máquinas muy pequeñas.
IEUASM
Ensamblador (F) fue diseñado para instalaciones normales de OS / 360.
IFOX00
Assembler (XF) fue 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) en el ensamblador de sistemas para DOS y VM también.
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.
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 yz / VM. Reemplaza a todos los ensambladores más antiguos, aunque no es totalmente compatible con ellos.
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, trabajos de ensamblaje independiente, edición de enlaces e IMAPTFLE. Originalmente una función opcional, 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
- ^ subdividido en Utilidades de conjuntos de datos, Utilidades del sistema y Utilidades independientes.
- ^ DASD inicialmente soportado eran discos, tambores y celdas de datos; actualmente son discos y SSD que simulan discos.
- ^ Elconjunto 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 .
- ^ El manual enumera información sobre la capacidad de los discos 2311 y 2314 y del tambor 2301, pero no indica que sean los únicos compatibles con DASD.
Referencias
- ^ a b Sistema operativo IBM System / 360: 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 - ^ IBM System / 360 Operating System: Service Aids OS Release 21 (PDF) (Tercera edición), IBM Corporation, marzo de 1972, GC28-6719-2
- ^ MVS / Extended Architecture Conversion Notebook (PDF) (tercera edición), mayo de 1984, p. 1-1, GC28-1143-2
- ^ z / OS MVS Diagnosis: Tools and Service Aids Version 2 Release 3 (PDF) , IBM Corporation, 20 de julio de 2018, GA32-0905-30
- ^ IBM Corporation. Guía de programación de aplicaciones DFSORT (PDF) . Consultado el 28 de marzo de 2017 .
- ^ Programa de clasificación / combinación de SO Número de programa 360S-SM-023 OS ~ Versión 21 (PDF) (Novena edición). IBM Corporation. Febrero de 1973. p. 17. GC28-6543-8.
Si encuentra que para una aplicación de clasificación / combinación en particular, el programa de clasificación / combinación no elige la técnica más eficiente, puede solicitar que la clasificación utilice otra técnica.
- ^ IBM Corporation (1973). Programa de clasificación / combinació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
- Syncsort
- Easytrieve
enlaces externos
- Utilidades DFSMSdfp
- Servicios de método de acceso DFSMS para catálogos
- Guía de administración de almacenamiento DFSMSdss
- UTILIDADES MVS