Lenguaje de control de trabajos


El lenguaje de control de trabajos ( JCL ) es un nombre para los lenguajes de secuencias de comandos que se utilizan en los sistemas operativos de mainframe de IBM para indicar al sistema cómo ejecutar un trabajo por lotes o iniciar un subsistema. [1]

Más específicamente, el propósito de JCL es decir qué programas ejecutar, usar qué archivos o dispositivos [2] para entrada o salida y, en ocasiones, también indicar bajo qué condiciones omitir un paso.

Los parámetros en el JCL también pueden proporcionar información de contabilidad para realizar un seguimiento de los recursos utilizados por un trabajo, así como también en qué máquina debe ejecutarse el trabajo.

El sistema operativo de la VM no tiene JCL como tal; los componentes CP y CMS tienen lenguajes de comando .

Originalmente, los sistemas mainframe estaban orientados hacia el procesamiento por lotes . Muchos trabajos por lotes requieren configuración, con requisitos específicos para el almacenamiento principal y dispositivos dedicados como cintas magnéticas , volúmenes de discos privados e impresoras configuradas con formularios especiales. [7] JCL se desarrolló como un medio para garantizar que todos los recursos necesarios estén disponibles antes de que se programe la ejecución de un trabajo. Por ejemplo, muchos sistemas, como Linux , permiten que la identificación de los conjuntos de datos requeridos se especifique en la línea de comando y, por lo tanto, estén sujetos a sustitución por el shell o generados por el programa en tiempo de ejecución. En estos sistemas, el programador de trabajos del sistema operativo tiene poca o ninguna idea de los requisitos del trabajo. Por el contrario, JCL especifica explícitamente todos los conjuntos de datos y dispositivos necesarios. El planificador puede preasignar los recursos antes de liberar el trabajo para que se ejecute. Esto ayuda a evitar el " interbloqueo ", en el que el trabajo A contiene el recurso R1 y solicita el recurso R2, mientras que el trabajo B que se ejecuta al mismo tiempo contiene el recurso R2 y solicita el R1. En tales casos, la única solución es que el operador de la computadora finalice uno de los trabajos, que luego debe reiniciarse. Con el control de trabajos, si el trabajo A está programado para ejecutarse, el trabajo B no se iniciará hasta que el trabajo A complete o libere los recursos necesarios.

Tanto para DOS como para OS, la unidad de trabajo es el trabajo . Un trabajo consta de uno o varios pasos, cada uno de los cuales es una solicitud para ejecutar un programa específico. Por ejemplo, antes de los días de las bases de datos relacionales , un trabajo para producir un informe impreso para la administración podía constar de los siguientes pasos: un programa escrito por el usuario para seleccionar los registros apropiados y copiarlos en un archivo temporal; ordenar el archivo temporal en el orden requerido, generalmente usando una utilidad de propósito general; un programa escrito por el usuario para presentar la información de una manera que sea fácil de leer para los usuarios finales e incluye otra información útil, como subtotales; y un programa escrito por el usuario para formatear páginas seleccionadas de la información del usuario final para su visualización en un monitor o terminal.