JCL (job control language) – 작업 제어언어
JCL[제이씨엘]은 IBM S/390 대형 서버나 메인프레임 컴퓨터들에서 동작되는 MVS, OS/390 및 VSE 등의 운영체계에서, 작업 설명을 기술하는 언어이다.
이러한 운영체계들은, 컴퓨터 내에서 시작되는 전체 작업들 사이에서 그들의 시간 및 공간 자원을 분배하여 할당한다.
작업들은 차례로 여러 작업 단계들로 나뉘어진다.
특정 프로그램을 실행시키기 위해 요구되는 모든 JCL 문장들은, 작업단계의 구성요소가 된다.
작업들은 프린트 작업 등과 같이, 사용자와의 대화가 없이도 실행될 수 있는 백그라운드(때로는 배치라고도 불린다) 작업 단위이다.
더구나, 운영체계는 작업단위의 개시를 요청하는 인터랙티브 사용자를 관리한다.
일반적으로, 포그라운드 작업은 백그라운드 작업보다 높은 우선 순위가 부여된다.
IBM의 어떤 설명서에 보면, 일련의 JCL 문장들을 식당에서 메뉴를 보고 음식을 주문하는 것에 비유한다.
전체 주문은 작업에 비교될 수 있다.
주방에서는 요리사가, 그 주문을 분할하여 개별적인 음식(작업 단계들)을 만든다.
작업 단계들이 끝나는대로, 음식이 제공된다 (그러나, 그것은 먼저 수행되고 있는 다른 작업단계들에 종속되어 있는 일부 작업 단계들처럼, 미리 정해진 순서대로 제공되어야 한다). JCL 문장들은 대개 액세스해야할 입력 데이터 파일들, 만들어지거나 갱신되어야할 출력 데이터 파일, 그 작업을 위해 할당되어야할 자원들, 그리고 이러한 입력 및 출력 데이터 파일을 사용하여 실행되어야할 프로그램들을 일일이 열거한다.
작업을 위한 JCL 문장은 그 자체가 하나의 데이터 파일로 저장되며, 인터랙티브 하게 시작될 수 있다.
MVS와 OS/390은 작업들을 개시하고 관리하기 위해 메뉴 같은 인터랙티브 인터페이스인 ISPF를 제공한다.