什么是MVS和JCL?

8

有人了解MVS和JCL吗?

是否可以向我解释一下MVS是什么?以及JCL用于什么?

6个回答

21

我相信您所指的是MVSJCL

MVS是IBM大型系统的操作系统,而JCL是大型机的作业控制语言。可以将MVS与Linux相对应,将JCL与Bash相对应, 例如。

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


20

关于MVS名称的解释:

MVS名称是在20世纪70年代末期加入到OS/VS2操作系统中的。它代表着多虚拟存储器,强调了使用虚拟存储器概念在一台计算机上运行多任务的能力。最终,OS/VS2被放弃了。

MVS名称一直沿用至MVS/370、MVS/XA(eXtended Architecture,31位)和MVS/ESA(Enterprise Systems Architecture,数据空间)时期,一直持续到20世纪90年代中期,当操作系统更名为OS/390后,又在21世纪初支持64位技术并更名为z/OS,这个名称今天仍在使用。然而,在IBM文档中,核心操作系统组件仍然被称为MVS。

有许多优秀的互联网参考资料可以展开IBM System/360及其后继操作系统的历史。


4

对于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 /*    

3
"MVS"是操作系统,与Windows或Linux一样,有多种与操作系统进行交互的方式。其中一种方式是通过命令行,在PC型操作系统中被称为“终端”,而在MVS中被称为控制台。(这里不深入探讨不同类型的控制台)
另一种方式是通过脚本。 "CLIST"是TSO(Time Sharing Option)中可用的较旧的脚本语言,TSO是一种交互式请求/响应类型的对话框,它是更用户友好的Interactive System Productivity Facility(ISPF)的基础。现今,“REXX”是MVS系统程序员中最流行的脚本语言。但近年来,诸如“Python”之类的新编程语言也已被移植到主机平台上,并且可以像在非主机平台上一样使用。
与操作系统进行交互的另一种方式是批处理作业。这时,“JCL”(Job Control Language)就发挥作用了。它是一种特殊的语言,可以用来描述批处理作业的任务(或任务)、输入、要执行的实际程序及其输出。
JCL充当了告诉作业进入子系统“JES”需要哪些资源的手段,而JES则确保可用这些资源(即分配),以便作业可以成功运行。当所有资源都可用时,JES启动作业,此时操作系统的任务是为其找到计算资源(CPU、内存、I/O)。此时,该作业只是在系统上运行的另一个进程。最后,在作业完成时,JES处理其输出。如何知道呢?通过JCL。 JCL指定了如何处理输出,无论是将其存储在数据集中,还是将其打印出来,或者例如保留在名为“SPOOL”(联机外部操作)的内存池中,直到被用户或操作员清除。

2
"Multiple Virtual Storage",简称MVS。与操作系统早期版本的“Single Virtual Storage”相对应。
区别在于每个作业是否有一个地址空间(今天的常态)或所有作业共享一个地址空间(计算机配备地址重定位硬件之前的常态)。

0

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

MVS - 多重虚拟存储系统。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接