作業控制語言
出自 MBA智库百科(https://wiki.mbalib.com/)
作業控制語言(Job Control Language,JCL)
目錄 |
作業控制語言是描述運行在IBM S/390大伺服器(主機)電腦上的MVS、OS/390以及VSE操作系統中的作業(執行單元)語言。
描述操作系統對全部作業分配電腦的運行時間和資源。作業是分步驟進行的,在編製程式時需要加入特殊語句使作業能夠分步進行。作業是運行在後臺的,不需要用戶交互,用戶的請求初始化作業。通常前臺作業的優先順序高於後臺作業。
IBM曾經把一系列的JCL語句比作餐館中的菜單。所有的菜對應作業,在廚房廚師將客戶的需要分解為不同的菜,這可以看作是作業中的步驟。當所有作業的步驟完成時,飯也就是好了。
JCL語句主要指定必須訪問的輸入數據集(文件),輸入文件被設置為創建或更新狀態,JCL語言還需要指定運行所需要的資源。一個作業的JCL語句也作為數據集存儲,並由用戶開始它的執行。一個作業的JCL語句集將會以數據集的形式存儲下來,並且能夠通過交互啟動它。MVS和OS/390提供了一個互動式的像菜單一樣的介面ISPF,可以用它來初始化和管理作業。
在MVS和OS/390中,操作系統中用來處理JCL的那部分被稱作作業登錄子系統(JES)。總共有兩個版本,JES2和後來的一個帶有附加功能的版本JES3。
作業控制語言是用戶與操作系統的介面。用戶通過作業控制語言的相應語句來與操作系統通訊,獲得作業所需的資源等,按自己的意圖來控製作業的執行。
作業控制語言由幾個語句組成,對於一個作業,作業控制語言 為被執行的任務引導操作系統,並說明所需要的全部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個)
, . / ‘ ( ) * & + - =