【问题标题】:What is MVS and JCL?什么是 MVS 和 JCL?
【发布时间】:2012-05-10 20:52:50
【问题描述】:

有人知道 MVS 和 JCL 吗?

是否可以向我解释一下 MVS 是什么?而JCL是用来做什么的?

【问题讨论】:

    标签: mainframe jcl mvs


    【解决方案1】:

    我相信您指的是MVSJCL

    MVS 是 IBM 大型机系统的操作系统,JCL 是大型机的作业控制语言。例如,您可以将 MVS 关联到 Linux,将 JCL 关联到 Bash。

    AS/400 / iSeries / IBM i / i5 被认为是中端机器。它的操作系统称为 OS/400 或最近的 i5/OS。

    【讨论】:

      【解决方案2】:

      稍微扩展一下MVS这个名字:

      MVS 在 1970 年代后期被添加到 OS/VS2 操作系统的名称中。它代表多个虚拟存储,指出在一台机器上使用虚拟存储概念运行许多任务的能力。最终 OS/VS2 被放弃了。

      MVS 在 MVS/370、MVS/XA(eXtended Architecture,31 位)和 MVS/ESA(Enterprise Systems Architecture,数据空间)时期一直保持名称,直到 1990 年代中期,当操作系统被重命名为 OS/390,随后在 2000 年代初得到 z/OS 的 64 位支持,该名称至今仍在使用。但是,在 IBM 文档中,核心操作系统组件仍称为 MVS。

      有许多很好的 Internet 参考资料扩展了 IBM System/360 和后续操作系统的历史。

      【讨论】:

        【解决方案3】:

        对于 JCL 作业控制语言

        用于

        • 编译COBOL、C..等
        • 对数据集进行排序
        • 创建 VSAM,生成数据集
        • 连接
        • 格式 INREC OUTREC..

        它是一种真正通用的语言,可以控制您在大型机上可以执行的所有操作。

        例如:使用 icetool 和 idcams 检查数据集是否为空,并使用 icetool 计算行数

        000100 //CHKEMPTY JOB 12345,                                                  
        000110 //         'CHECK EMPTY',                                              
        000120 //         CLASS=A,                                                    
        000130 //         NOTIFY=&SYSUID                                              
        000200 //*                                    
        000210 // SET USER=YOURUSERNAME               
        000220 //* SELECT THE CC RETURN FOR ACTION                                                                                 
        000300 //*****************************************************         
        000400 //*1 CHKEMP ICETOOL 2 COUNT ICETOOL 3 CHKEMP IDCAMS             
        000600 //*****************************************************       
        000610 //STEPSET  EXEC PGM=IDCAMS                                             
        000620 //SYSPRINT DD SYSOUT=*                                                 
        000630 //SYSOUT   DD SYSOUT=*                                                 
        000640 //SYSIN    DD *                                                        
        000650  SET MAXCC=2         <----SELECT OPTION YOU WANT TO TEST                                                    
        000660 /*                                                                    
        000670 //*                                                                    
        000680 //*********************************************************************   
        000690 //* CHECK EMPTY WITH MAXCC=12 ICETOOL                                 
        000691 //*********************************************************************   
        000692 //*                                                                    
        000700 //STEP0001 EXEC PGM=ICETOOL,COND=(1,NE,STEPSET)                        
        000900 //IN       DD DSN=&USER..EMPTYDS,DISP=SHR      <--- EMPTY DS FOR TEST                    
        001010 //TOOLMSG  DD SYSOUT=*                                                 
        001100 //DFSMSG   DD SYSOUT=*                                                 
        001110 //TOOLIN   DD DATA                                                     
        001200  COUNT FROM(IN) EMPTY
        001300 /*                                                                      
        001301 //*                                                                     
        001302 //*********************************************************************    
        001303 //* COUNT LINES WITH ICETOOL                                            
        001304 //*********************************************************************     
        001305 //*                                                                     
        001306 //STEP0002 EXEC PGM=ICETOOL,COND=(2,NE,STEPSET)                         
        001307 //TOOLMSG  DD SYSOUT=*                <--- CONTAINS RECORD DATA         
        001308 //DFSMSG   DD SYSOUT=*                                                  
        001309 //IN       DD DSN=&USER..COBOL(CBLPGM),DISP=SHR               
        001310 //TOOLIN   DD DATA                                                      
        001311  COUNT FROM(IN)                                                         
        001312 /*                                                                      
        001313 //*                                                                     
        001314 //****************************************************       
        001315 //* CHECK EMPTY FILES USING IDCAMS   MAXCC=4 EMPTY                                   
        001316 //****************************************************       
        001317 //*                                                                     
        001318 //STEP0003 EXEC PGM=IDCAMS,COND=(3,NE,STEPSET)                          
        001319 //IN       DD DSN=&USER..EMPTYDS,DISP=SHR      <---- EMPTY DS FOR TEST                     
        001320 //SYSPRINT DD SYSOUT=*                                                  
        001330 //SYSIN    DD DATA                                                      
        001340  PRINT INFILE(IN) COUNT(1)                                              
        001350 /*    
        

        【讨论】:

          【解决方案4】:

          MVS 是操作系统,有多种方式与操作系统交互。与 Windows 或 Linux 一样,一种方法是通过命令行。 PC 类型的操作系统将其称为“终端”。在 MVS 上,它称为控制台。 (不过,我不会在这里深入研究不同类型的控制台。)

          另一种方法是通过脚本。 CLIST 是 Command List 的简写,是 TSO(分时选项)中可用的一种较旧的脚本语言,一种交互式请求/响应类型的对话框,是更加用户友好的交互式系统生产力的基础设施,也称为 ISPF。如今,REXX 是 MVS 系统程序员中最流行的脚本语言。但近年来,Python 等新的编程语言也已移植到大型机平台,并且可以像在非大型机平台上使用一样使用。

          与操作系统交互的另一种方式是通过批处理作业。作业控制语言 JCL 在这里发挥作用。它是一种特殊语言,可用于描述批处理作业的一个(或多个)任务、其输入、要执行的实际程序及其输出。

          JCL 作为一种告诉 Job Entry Subsystem JES 需要哪些资源的方法。另一方面,JES 确保这些资源可用(=已分配),以便作业可以成功运行。当所有资源都可用时,JES 启动作业,现在操作系统的任务是为其查找计算资源(CPU、内存、I/O)。此时,作业只是系统上运行的另一个进程。最后,当作业完成时,JES 处理其输出。它是怎么知道的?好吧,通过JCL。 JCL 指定如何处理输出,是否应将其存储在数据集中,是否打印,或者例如是否保留在名为 SPOOL 的内存池中(同时在-line) 直到被用户或操作员清除。

          【讨论】:

            【解决方案5】:

            实际上是“多个虚拟存储”。与早期版本的操作系统相反,“单一虚拟存储”。

            不同之处在于每个作业有一个地址空间(今天的标准)还是所有作业共享一个地址空间(计算机带有地址重定位硬件之前的标准)。

            【讨论】:

              【解决方案6】:

              JCL - 它是一种作业控制语言,用于控制要运行的程序。

              MVS - 多虚拟存储系统。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2023-04-07
                • 1970-01-01
                相关资源
                最近更新 更多