作业控制语言(job control language 简称JCL)是用于描述MVS,OS/390和VSE操作系统上描述作业的语言。描述操作系统对全部作业分配计算机的运行时间和资源。作业是分步骤进行 的,在编制程序时需要加入特殊语句使作业能够分步进行。作业是运行在后台的,不需要用户交互,用户的请求初始化作业。通常前台作业的优先级高于后台作业。
IBM曾经把一系列的JCL语句比作餐馆中的菜单。所有的菜对应作业,在厨房厨师将客户的需要分解为不同的菜,这可以看作是作业中的步骤。当所有作业的步骤完成时,饭也就是好了。
JCL语句主要指定必须访问的输入数据集(文件),输入文件被设置为创建或更新状态,JCL语言还需要指定运行所需要的资源。一个作业的JCL语句也作为数据集存储,并由用户开始它的执行。
作业控制语言是用户与操作系统的接口。用户通过作业控制语言的相应语句来与操作系统通讯,获得作业所需的资源等,按自己的意图来控制作业的执行。
作业控制语言由几个语句组成,对于一个作业,作业控制语言 为被执行的任务引导操作系统,并说明所需要的全部I/O设备。
在一个作业中,每一次程序的执行称为一个作业步,一个作业可包含几个作业步。
一般的,一个作业由以下相对独立的三步组成:
(1) 编译:把源程序语句(源模块)转换成目标模块;
(2) 链接编辑:把目标模块同子程序库中的其他程序链接起来得到可执行模块;
(3) 执行:运行可执行模块得到结果。
作业叫做单步作业;由多个作业步构成的作业叫做多步作业。不论单步作业还是多步作业都必须包含三个作业控制语言基本语句(JCL Statement)。它们分别是:
(1) 作业语句(JOB):标识一个作业的开始,提供必要的运行参数。
(2) 执行语句(EXEC):标识一个作业步的开始,定义本作业步所要执行的程序或过程。
(3) 数据定义语句(DD):用于描述应用程序所需要的数据文件。
作业控制语言由九种语句组成,除了上一节中讨论过的三种基本语句外,还有以
下六种附加语句:
(1)/* 语句:表示六内数据结束或调用JES控制语句;
(2)//*语句:注释语句,由第4到第80列写出注释内容;
(3)//语句:空语句,用以标记一个作业的结束;
(4) PROC 语句:流内过程(IN-STREAM PROCEDURE)或编目过程
(CATALOGED PROCEDURE)的起始标记。
(5) PEND语句:标志一个流内过程的结束。
(6) Command语句:操作员用这个语句在输入流中写入操作命令。
*JCL字符集
(1) 字母(共26个)
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
(2) 数字(共10个)
0 1 2 3 4 5 6 7 8 9
(3) 特殊字符(共10个)
, . / ‘ ( ) * & + - =