大型主机操作系统5.ppt
《大型主机操作系统5.ppt》由会员分享,可在线阅读,更多相关《大型主机操作系统5.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章 过程与实用程序过程 和其它高级语言一样,作和其它高级语言一样,作业控制语言中也允许定义业控制语言中也允许定义过程。过程是一段预先编过程。过程是一段预先编写好的写好的JCLJCL语句的集合,它语句的集合,它可以被反复调用。可以被反复调用。作业控制语言中定义了两作业控制语言中定义了两种过程,分别是编目过程种过程,分别是编目过程(cataloged procedurecataloged procedure)和流内过程(和流内过程(in-stream in-stream procedureprocedure)。)。过程编目过程 在指定的过程库中编目的在指定的过程库中编目的过程称为编目过程。该过
2、过程称为编目过程。该过程库可以是分区数据集或程库可以是分区数据集或扩展分区数据集,通常系扩展分区数据集,通常系统过程被编目在系统过程统过程被编目在系统过程库中,用户过程被编目在库中,用户过程被编目在用户库中。由于调用编目用户库中。由于调用编目过程时,系统提供的是该过程时,系统提供的是该过程的拷贝,因此一个编过程的拷贝,因此一个编目过程可以同时被几个作目过程可以同时被几个作业调用。业调用。过程流内过程流内过程是放置在作业输入流中的过程。在一个流内过程是放置在作业输入流中的过程。在一个作业中最多可以有作业中最多可以有1515个流内过程,但不能嵌套使个流内过程,但不能嵌套使用,也不能被其他作业调用用
3、,也不能被其他作业调用过程流内过程与编目过程流内过程与编目过程的区别是流内过程随着一个作业放在输入流中,它紧跟在JOB语句后面而不是作为分区数据集的成员在实际应用时,流内过程只用于测试阶段,一旦流内过程调试成功,即可对其进行编目,使其成为编目过程过程过程的编写 一个过程可由几个作业步组成。在过程中可以包含除下列一个过程可由几个作业步组成。在过程中可以包含除下列语句外的所有语句外的所有JCLJCL语句:语句:调用过程的调用过程的EXECEXEC语句(一个过程不能调用另一个过程)语句(一个过程不能调用另一个过程)JOBJOB语句、语句、/*/*语句或语句或/语句语句JOBLIB DDJOBLIB
4、DD语句或语句或JOBCAT DDJOBCAT DD语句语句 任何的任何的JESJES控制语句控制语句DD*DD*语句或语句或DD DATADD DATA语句语句 流内过程的开始和结束分别用流内过程的开始和结束分别用PROCPROC语句和语句和PENDPEND语句表示,语句表示,对于编目过程,不能有对于编目过程,不能有PENDPEND语句,而如果没有分配给符语句,而如果没有分配给符号参数默认值,号参数默认值,PROCPROC语句是可选的语句是可选的过程过程的结构/过程名过程名 PROC PROC 符号参数符号参数/过程步过程步1 EXEC1 EXEC/dd/dd名名1 DD1 DD /过程步过
5、程步2 EXEC2 EXEC/dd/dd名名2 DD2 DD /PEND/PEND(仅在流内过程中使用)(仅在流内过程中使用)过程结构中的过程名、过程步名及过程结构中的过程名、过程步名及dddd名的书写规则与名的书写规则与JCLJCL中其它语句名中其它语句名的书写规则一样。符号参数的功能类似于其它编程语言子程序中的形的书写规则一样。符号参数的功能类似于其它编程语言子程序中的形式参数式参数过程流内过程的实例 本例中,本例中,RUNRUN是一是一个流内过程,作个流内过程,作业中名为业中名为STEP1STEP1的执行语句调用的执行语句调用这个流内过程。这个流内过程。该流内过程在去掉该流内过程在去掉P
6、ENDPEND语句后也可语句后也可以作为标准的过以作为标准的过程放在用户库中,程放在用户库中,作为编目过程作为编目过程过程过程的调用过程的调用有如下两种方式:过程的调用有如下两种方式:/作业步名作业步名 EXEC PROC=EXEC PROC=过程名过程名 符号参数符号参数/作业步名作业步名 EXEC EXEC 过程名过程名 符号参数符号参数 过程过程的调用规则 当调用一个过程时,系统会以输入流、用户库、系当调用一个过程时,系统会以输入流、用户库、系统库的顺序来检索所要调用的过程。如果所调用统库的顺序来检索所要调用的过程。如果所调用的过程是流内过程,则必须把流内过程放在调用的过程是流内过程,则
7、必须把流内过程放在调用它的它的EXECEXEC语句之前。语句之前。如果调用的编目过程被编目在用户库中,系统从如果调用的编目过程被编目在用户库中,系统从JCLLIBJCLLIB语句确定的用户库中进行检索。因此,若语句确定的用户库中进行检索。因此,若调用的过程是用户库中的过程时,要用调用的过程是用户库中的过程时,要用JCLLIBJCLLIB语语句来指明过程所在的用户库。如果调用的编目过句来指明过程所在的用户库。如果调用的编目过程被编目在系统库中,系统从程被编目在系统库中,系统从JES2JES2中的中的PROCLIBPROCLIB参数指定的系统库进行检索。参数指定的系统库进行检索。过程过程的修改(1
8、)由于不同用户的要求不同,所以当某一个作业调用标准过程时,系统应允许用户对过程进行修改,以满足自己的需要。过程修改的方式有如下三种:置换过程中的符号参数;对过程中的EXEC及DD语句参数进行覆盖和增加;增加新的DD语句。过程过程的修改(2)符号参数由符号符号参数由符号“&”“&”和参数名和参数名组成,参数名可以是以字母或组成,参数名可以是以字母或通配符开头的通配符开头的1818位字母数字位字母数字或通配符,关键字参数和关键或通配符,关键字参数和关键字子参数不能作为符号参数的字子参数不能作为符号参数的参数名。符号参数为修改过程参数名。符号参数为修改过程提供了可选用的方法。提供了可选用的方法。当过
9、程中含有符号参数时,每一当过程中含有符号参数时,每一个符号参数必须指定一个值或个符号参数必须指定一个值或赋空值,该值被称为符号参数赋空值,该值被称为符号参数的初值的初值过程过程的修改(3)用EXEC语句调用过程时,该语句的所有关键字参数都会影响过程的执行,它将覆盖过程中定义的参数,对于过程中没有定义的参数,系统会把它加到过程中去。用EXEC语句修改过程的方式如下:/stepname EXEC 过程名,参数.过程步=值其中“参数.过程步=值”表示准备对过程中所希望的过程步的关键字参数进行修改过程过程的修改(4)例如有下述过程:例如有下述过程:/RUN/RUN PROCPROC/STEP1/STE
10、P1 EXEC EXEC PGM=P1PGM=P1/STEP2/STEP2 EXEC EXEC PGM=P2PGM=P2/STEP3/STEP3 EXEC EXEC PGM=P3,TIME=(2,30)PGM=P3,TIME=(2,30)若要求对若要求对STEP2STEP2增加增加CONDCOND参数并指定条件测试为(参数并指定条件测试为(8,GT8,GT),),对对STEP3STEP3改变其时间限制为改变其时间限制为4 4秒。那么调用该过程时,秒。那么调用该过程时,EXECEXEC语句为:语句为:/GO/GO EXEC RUN,EXEC RUN,/COND.STEP2=(8,GT),COND
11、.STEP2=(8,GT),/TIME.STEP3=4TIME.STEP3=4过程过程的修改(5)对于过程中对于过程中DDDD语句参数的修改可以通过下列方式:语句参数的修改可以通过下列方式:/过程步名过程步名.DD.DD名名 DD DD “过程步名过程步名.DD.DD名名”用来确定要修改的用来确定要修改的DDDD语句,其中语句,其中“DD“DD名名”指需要修指需要修改的改的DDDD句,句,“过程步名过程步名”指过程重要修改的指过程重要修改的DDDD语句所在的过程步的名语句所在的过程步的名字字 例:例:/RUN/RUN PROCPROC/S1/S1 EXEC EXEC/SYSUT2/SYSUT2
12、 DD DD SYSOUT=*SYSOUT=*/PEND/PEND/TEST2/TEST2 EXEC EXEC RUN,RUN,/S1.SYSUT2/S1.SYSUT2 DD DD SYSOUT=SSYSOUT=S过程过程的修改(6)对于调用的过程,可能不包含用户需要的DD语句,这是可通过下列方法来增加新的DD语句:/过程步名.需增加的DD语句其中过程步名是确定新加的DD语句在过程中的位置实用程序在z/OS系统中,IBM提供了种类繁多且十分有用的实用程序,来辅助用户对数据进行组织与维护。实用程序分为三类:系统实用程序、数据集实用程序和独立实用程序。实用程序系统实用程序 系统实用程序通常以系统实
13、用程序通常以IEHIEH打头,它的主要功能是维打头,它的主要功能是维护和管理系统、用户数据集合、整个盘卷。系统护和管理系统、用户数据集合、整个盘卷。系统实用程序及其功能如下:实用程序及其功能如下:IEHNITTIEHNITT:为磁带卷写标号。:为磁带卷写标号。IEHLISTIEHLIST:系统控制数据信息列表。:系统控制数据信息列表。IEHMOVEIEHMOVE:移动或拷贝若干组数据、移动或拷:移动或拷贝若干组数据、移动或拷贝整个卷、移动或拷贝编目目录等。贝整个卷、移动或拷贝编目目录等。IEHPROGMIEHPROGM:建立及维护系统控制数据、建立世:建立及维护系统控制数据、建立世代数据组索引
14、、重命名带卷、删除数据集等。代数据组索引、重命名带卷、删除数据集等。IEHDASDRIEHDASDR:初始化一个直接存取卷。:初始化一个直接存取卷。实用程序数据集实用程序 数据集实用程序通常以数据集实用程序通常以IEBIEB打头。它的主要功能是对数据集或数据打头。它的主要功能是对数据集或数据集纪录行组织、修改或比较。它可以作为单个作业来执行,也可集纪录行组织、修改或比较。它可以作为单个作业来执行,也可以作为某个程序的子程序被调用。需要注意的是这些数据维护实以作为某个程序的子程序被调用。需要注意的是这些数据维护实用程序不能用于用程序不能用于VSAMVSAM数据集。以下是数据集实用程序及其功能:数
15、据集。以下是数据集实用程序及其功能:IEBCOMPRIEBCOMPR:比较顺序数据集、分区数据集或扩展分区数据集。:比较顺序数据集、分区数据集或扩展分区数据集。IEBCOPYIEBCOPY:拷贝、压缩或合并分区数据集及扩展分区数据集。:拷贝、压缩或合并分区数据集及扩展分区数据集。IEBDGIEBDG:创建含有模型数据的测试数据集。:创建含有模型数据的测试数据集。IEBEDITIEBEDIT:有选择的拷贝作业步及其相关的作业语句。:有选择的拷贝作业步及其相关的作业语句。IEBGENERIEBGENER:拷贝顺序数据集记录或将顺序数据集转换为分区数:拷贝顺序数据集记录或将顺序数据集转换为分区数据集
16、。据集。IEBIMAGEIEBIMAGE:修改、打印或连接模块。:修改、打印或连接模块。IEBISAMIEBISAM:卸载、装载、拷贝或打印:卸载、装载、拷贝或打印ISAMISAM数据集。数据集。IEBPTPCHIEBPTPCH:打印或穿卡输出一个数据集。:打印或穿卡输出一个数据集。IEBUPDATEIEBUPDATE:对顺序、分区数据集或扩展分区数据集进行合并:对顺序、分区数据集或扩展分区数据集进行合并修改修改实用程序独立实用程序独立实用程序通常以IBC开头。它是一种特殊的实用程序,可独立于操作系统运行,通常被存放在磁带上。当系统出现重大故障而又无法恢复时,利用系统转储磁带,恢复系统盘卷。如
17、:IBCDASDI:用于初始化和分配一个直接存取卷上的可用道的实用程序。IBCDUMPRS:是转储或再存储直接存取卷数据的实用程序。实用程序实用程序的调用 实用程序的调用方法有两种,一种是在实用程序的调用方法有两种,一种是在ISPFISPF下用下用TSOTSO的的CALLCALL命令调用,另命令调用,另种是通过种是通过JCLJCL语句调用语句调用JCLJCL调用的一般格式为以下两种:调用的一般格式为以下两种:(1 1):):/UTLFM JOB/UTLFM JOB/STEP EXEC PGM=utility/STEP EXEC PGM=utility 调用公用程序调用公用程序/SYSPRINT
18、 DD/SYSPRINT DD 系统输出数据集(系统输出数据集(SYSOUTSYSOUT)/SYSUT1 DD/SYSUT1 DD 输入数据集输入数据集/SYSUT2 DD/SYSUT2 DD 输出数据集输出数据集/SYSIN DD/SYSIN DD 定义实用程序使用的控制数据定义实用程序使用的控制数据(2 2):):/UTLFM JOB/UTLFM JOB/STEP EXEC PGM=utility/STEP EXEC PGM=utility 调用实用程序调用实用程序/SYSPRINT DD/SYSPRINT DD 系统输出数据集(系统输出数据集(SYSOUTSYSOUT)/ddname D
19、D UNIT=/ddname DD UNIT=,VOL=,VOL=,DISP=OLD,DISP=OLD 存取所需数据集的有关信息存取所需数据集的有关信息/ddname DD UNIT=/ddname DD UNIT=,VOL=,VOL=,DISP=OLD,DISP=OLD 所存储数据集的有关信息所存储数据集的有关信息/SYSIN DD/SYSIN DD 定义实用程序使用的控制数据定义实用程序使用的控制数据实用程序控制语句的标准格式 标号用于表示控制语句标号用于表示控制语句,除实用程序除实用程序IEHNITTIEHNITT外,其它实用外,其它实用程序都可以省略标号。标号必须放在控制语句开始的位置
20、,程序都可以省略标号。标号必须放在控制语句开始的位置,后面留有一个以上的空格。标号是由后面留有一个以上的空格。标号是由1818个字母或数字字个字母或数字字符组成。符组成。操作符用于标示控制语句的类型,其后至少跟有一个空格。操作符用于标示控制语句的类型,其后至少跟有一个空格。操作数是由一个或多个关键字参数组成,参数之间以逗号操作数是由一个或多个关键字参数组成,参数之间以逗号相隔。操作数后至少跟一个空格。控制语句内可加注释,相隔。操作数后至少跟一个空格。控制语句内可加注释,但它与操作数之间至少要有一个空格。但它与操作数之间至少要有一个空格。当控制语句有续行时,可在本行有逗号的地方断开,或在当控制语
21、句有续行时,可在本行有逗号的地方断开,或在本行第本行第7272列处设置一个字符,或在下一行的列处设置一个字符,或在下一行的1616列开始。列开始。常用实用程序简介IEBCOMPRIEBCOMPRIEBCOMPR程序用于在两个数据集的逻辑记录间进行比较,程序用于在两个数据集的逻辑记录间进行比较,这两个数据集可以是顺序数据集、分区数据集或扩展分区这两个数据集可以是顺序数据集、分区数据集或扩展分区数据集。它能对数据集或数据集成员的定长、变长、组块、数据集。它能对数据集或数据集成员的定长、变长、组块、非组块或未定义记录进行比较。但它不能对加载模块进行非组块或未定义记录进行比较。但它不能对加载模块进行比
22、较比较 两个顺序数据集比较相同,是指它们含有相同数量的记录两个顺序数据集比较相同,是指它们含有相同数量的记录且相关记录和关键字完全相同。而两个分区数据集或两个且相关记录和关键字完全相同。而两个分区数据集或两个扩展分区数据集比较相同,则是指:扩展分区数据集比较相同,则是指:相关成员含有相同的记录;相关成员含有相同的记录;注释列表在相关成员的位置相同;注释列表在相关成员的位置相同;相关记录和关键字完全相同;相关记录和关键字完全相同;相关目录和用户数据区完全相同相关目录和用户数据区完全相同IEBCOMPR分区数据集的比较对于分区数据集和扩展分区数据集,只有其中一个数据集的所有目录项名字在另一个数据集
23、的目录中都能找到相同的目录项名时,才能进行比较。否则是不能比较的IEBCOMPRJCL语句列表语句语句功能功能JOBJOB作业开始作业开始EXECEXEC定义程序名定义程序名PGM=IEBCOMPRPGM=IEBCOMPRSYSPRINT DDSYSPRINT DD指定系统输出数据集指定系统输出数据集SYSUT1 DDSYSUT1 DD定义需要比较的数据集定义需要比较的数据集SYSUT2 DDSYSUT2 DD定义需要比较的数据集定义需要比较的数据集SYSIN DDSYSIN DD定义控制数据集或定义控制数据集或DUMMYDUMMY,控制,控制语句可以是语句可以是COMPARECOMPARE、
24、EXITSEXITS、LABELSLABELSIEBCOMPR控制语句说明(1)COMPARECOMPARE:定义数据集的组织结构,在:定义数据集的组织结构,在SYSIN DDSYSIN DD中设置控制中设置控制语句时,它必须是第一个控制语句,当输入数据集是分区语句时,它必须是第一个控制语句,当输入数据集是分区数据集或扩展分区数据集时,必须设置这个语句。语句格数据集或扩展分区数据集时,必须设置这个语句。语句格式如下:式如下:label COMPARE TYPROG=PS/POlabel COMPARE TYPROG=PS/PO 其中其中TYPROG=PS/POTYPROG=PS/PO用于指定输
25、入数据集的组织结构,用于指定输入数据集的组织结构,PSPS表示输入数据集为顺序数据集,为缺省值;表示输入数据集为顺序数据集,为缺省值;POPO表示输表示输入数据集是分区数据集或扩展分区数据入数据集是分区数据集或扩展分区数据EXITSEXITS:定义用户所用的出口例程。当用户调用出口例程时,:定义用户所用的出口例程。当用户调用出口例程时,需要用该语句。当设置多个需要用该语句。当设置多个EXITSEXITS时,时,IEBCOMPRIEBCOMPR将只用将只用最后一个。最后一个。EXITSEXITS的语句格式为:的语句格式为:label EXITS INHDR=label EXITS INHDR=例
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大型 主机 操作系统
限制150内