Host基本概念
TSO
TSO是Time Sharing Option的缩写,是MVS的命令输入处理器。
TSO是在操作系统的管理下,用来支持ISPF菜单式会话系统和资源管理设备(RMF)的,而应用程序及系统提供的各种工具则是在ISPF的支持下,完成各自的任务的。
RMF
RMF是用于性能分析,容量规划和问题诊断的IBM产品。
数据集
DATASET(就是PC的文件)。名称全长不超过44个字符,每个小数点间的字符最多8个,不能以数字开头。
分配数据集时,必须指定数据格式,最通用的是定长和变长记录格式。
无论是定长还是变长记录都是分块的,因此所需的存储空间和所需的输入输出操作要少于非分块的记录。
分块是指,在单个块中对多个数据记录的存储处理,任何时候发生输入输出操作时,传送的是整个块,而不是单个记录。
数据集组织和文件格式这两个词紧密对应。一般来说数据集只包含业务数据集合(姓名、薪资、销售额等),而文件则可以包含多种类型的数据(图像、音频数据、视频数据等)。
对于商业数据,相比数据集和文件来说,数据库是一个比较新的选择方案。
传统的z/OS数据集是面向记录的。 正常使用下,它没有PC系统和UNIX系统中所有的字节流文件。
在 z/OS 中,没有新的行(NL)或回车以及行填充字符来指示记录的结束。
顺序数据集(PS)
按进入的先后顺序排列,EOF表示文件结束。记录不能被删除,只能在文件尾部插入。必须按顺序读取记录,想要获取记录5,系统必须先读取前4个记录。
顺序数据集也被认为是物理顺序集(PS)。
可以直接查看和修改,可以存放数据或者源码,可将其简单理解为PC上的根目录下的“ 文本文件” 。
分区数据集( PDS)
PDS就是分区数据集,在他里面可以存放多个MEMBER,常用来作为程序,JCL, LOAD库。
将数据集分为按顺序组织的成员(Member),每个数据集可以有一个或多个成员,每个成员有唯一的名字,作为数据集的一部分存储在地址目录中。
设在数据集开始部位的地址目录包含了每个成员的入口部分,每个地址目录的入口包含成员名和成员在数据集的起始位置,地址目录入口按成员名的字母顺序排列。
分区数据集打开以后,不需要查询整个数据集,用户就可以获取任何一个Member的记录,根据需要可以增加或删除任何一个Member记录。
但只是删除了地址目录中的Member名,在利用系统功能重新分配数据集之前,删除记录的空间是不能被重修使用的。
扩展分区数据集(PDSE:Partitioned Data Set Extended)
与PDS数据集类似,也是由多个Member组成,唯一区别是,PDSE的地址目录的大小是动态的,在创建时不需指定目录块数量。
因此在增加或删除Member时,系统会自动分配或回收存储空间。
VSAM
虚拟存储访问方法(VSAM)是一种能比其他磁盘访问方法提供更多复杂函数(功能)的访问方法。VSAM 以一种唯一的,而其他访问方法不理解的格式来保存磁盘记录的。
VSAM文件不能按常规用 ISPF显示或编辑。AMS 是用来定义 VSAM 的结构的,例如文件和索引。
VSAM 能够以多种方法组织其数据:
<ESDS>
进入顺序数据集(ESDS-Entry Sequence Data Set),这种形式的VSAM现在很少使用。它按记录的写入顺序保存记录(对于这种类型的数据,QSAM比ESDS更常用)。
<KSDS>
索引顺序数据集(KSDS-Key Sequence Data Set),这是VSAM最常见的应用格式。每个记录有一个或多个索引,记录可以通过索引值读取(或插入)。
KSDS提供对数据的随机访问。记录可是定长也可以是变长的。索引设定后不能更改,但整条记录可以删除。
<LDS>
线性数据集(LDS-Linear Data Set),实际上,这是一个字节流的数据集,它是传统MVS中唯一的字节流数据集格式。许多z/OS的系统函数使用这种格式,但是它很少被应用程序使用。
<RRDS>
相对记录数据集(RRDS-Relative Record Data Set ),这种文件格式与Relative File相类似,它将整个存储体分成许多固定长度的Slot,并分别加以编号,
即所谓的相对资料记录编号RRN(Relative Record Number),通过RRN来读取数据记录,提供随机读取和顺序读取。
CATALOG
主机的文件系统是通过CATALOG来管理的。
如果你定义一个dataset, 会最终分配在某个磁盘卷.,在这个磁盘卷的VTOC会增加这个dataset的信息,在没有catalog管理的时候,我们都需要访问这个dataset需要指定这个卷的信息。
这一点类试现在的windows系统。但对于主机存放大量数据, 没有管理很容易数据很混乱,不知道data到底在哪个卷,就引入catalog。
通过catalog, 系统直接通过dataset的hlq在catalog就知道是会分配在哪几个卷上,再到那几个卷去查找相应的dataset就可以了。
Catalog有两种,一种是master catalog, 存放系统dataset信息和user catalog, 所有sys1.**都存放在master catalog, 这样查找就会直接找到, 系统启动的时候也会在loadxx参数制定master catalog。
一种是user catalog, 可以用户自己定义,管理, 一般用于管理用户自己数据集。对于某个dataset要了解它在哪个catalog可以使用listcat。
Eg: listcat entries('ibmuser.jcllib').
VTOC
VTOC也是一个数据集,里面储存了所在卷的数据集的信息,比如位置、大小等。卷上第一个TRACK上有一个记录。这个纪录指向该卷的VTOC位置。
VTOC的位置在cylinder 0, track 0之后,结束在track 65,535之前。
但是 VTOC 只能管理本磁盘卷,不能管理整个磁盘数据,在 z/OS系统中,系统使用目录机制来管理整个系统中的数据集。
目录是根据数据集名来存储信息的,这意味着数据集名必须是唯一的。磁盘和磁带的数据集都可以被编目录。
数据集的存储方式
z/OS系统中的磁盘数据集被组织在磁盘卷上,称为直接访问存储设备(DASD)。在同一 个卷上数据集的名字必须是唯一的。
数据集可以根据设备类型(?)、卷序列号和数据集名来定位。这与UNIX系统的文件树是不一样的,基本的z/OS系统的文件结构是不分等级的,z/OS的数据集没有与路径名类似的等价物。
(1)直接访问存储设备(DASD),是磁盘驱动器的另外一个名字。
(2)磁盘驱动器也称为磁盘卷,磁盘包, 或一个头磁盘集合(HDA)。一般使用 卷(VOLUME)。
(3)磁盘驱动器包含柱面(cylinders)。
(4)柱面包含轨道(Tracks)。
(5)轨道包含数据记录,为CKD(Count Key Data)格式。
(6)数据块是磁盘上记录的组织单位。
数据集记录格式
常用的是FB固定长度BLOCKED。VB变长blocked。U不定长,用于LOAD库。
首先我们说明“块”和“记录”之间的区别。块是逻辑记录的组合,是读取的单位;而记录则是一个逻辑实体。
数据集记录格式说明如下:
(1)定长不组块记录格式(F–Fixed),是指磁盘上的一个物理块就是一个逻辑记录,并且所有的块/记录的大小相同。
(2)定长组块记录格式(FB - Fixed Blocked)是指一些逻辑记录被组合成一个物理块。这能提供有效的空间利用和操作。该格式通常适用于定长记录。
(3)变长不组块记录格式(V- Variable)是指一个逻辑记录就作为一个物理块,因为记录 是变长的,要求应用程序在记录的开始插入一个4字节的记录描述字(RDW)。物理块的长度包含记录的长度和4字节的RDW,该格式很少被使用。
(4)变长组块记录格式(VB –Variable Blocked),是指一个物理块由若干条逻辑记录组成,每条记录都有RDW描述,物理块中还有BDW描述为4个字节。
(5)无定义格式(U – Undefined)该格式是由没有预定义结构的、变长的物理记录/块组成的。虽然这种格式可能对许多特殊的应用程序来说很有吸引力,但是它通常只被用于可执行的模块。
BLKSIZE
块大小 (BLKSIZE-Block Size) 是针对F和FB记录的写在磁盘上的物理块大小。 对于V,VB和U记录格式,数据集可以使用最大物理块大小。
LRECL
逻辑记录大小 (LRECL-Logical Record Length) 是逻辑记录的大小(F,FB) 或允许的最大的逻辑记录大小(V,VB)。 格式U记录没有LRECL。
RECFM
记录格式(RECFM-Record Format)有F,FB,V,VB或U,正如前面介绍的
-- END --
Host基本概念的更多相关文章
- .Net Core小技巧 - Hosted Services + Quartz实现定时任务调度
背景 之前一直有朋友问,.Net Core + Linux环境有没有类似Windows服务的东西.其实是有的,我了解的方法有两种: #1 创建一个ASP.Net Core的Web项目(如Web API ...
- 1. AMQP 0-9-1模型简介(官网直译)
关于这篇指导文档 本文提供了AMQP 0-9-1协议的一个概述,它是RabbitMQ所支持的协议之一. AMQP 0-9-1是什么 AMQP 0-9-1(Advanced Message Queuin ...
- 《NVM-Express-1_4-2019.06.10-Ratified》学习笔记(1)
材料说明: 文档<NVM-Express-1_4-2019.06.10-Ratified.pdf>来自于NVMe网站:https://nvmexpress.org/ 笔记目的是学习NVMe ...
- 理解RabbitMQ中的AMQP-0-9-1模型
前提 之前有个打算在学习RabbitMQ之前,把AMQP详细阅读一次,挑出里面的重点内容.后来找了下RabbitMQ的官方文档,发现了有一篇文档专门介绍了RabbitMQ中实现的AMQP模型部分,于是 ...
- 手写一个简版 asp.net core
手写一个简版 asp.net core Intro 之前看到过蒋金楠老师的一篇 200 行代码带你了解 asp.net core 框架,最近参考蒋老师和 Edison 的文章和代码,结合自己对 asp ...
- .NET 中的 Worker Service 入门介绍
翻译自 Steve Gordon 2020年3月30日的文章 <WHAT ARE .NET WORKER SERVICES?> [1] 随着 .NET Core 3.0 的发布,ASP.N ...
- openstack中region、az、host aggregate、cell 概念
1. region 更像是一个地理上的概念,每个region有自己独立的endpoint,regions之间完全隔离,但是多个regions之间共享同一个keystone和dashboard.(注:目 ...
- 如何一步一步用DDD设计一个电商网站(一)—— 先理解核心概念
一.前言 DDD(领域驱动设计)的一些介绍网上资料很多,这里就不继续描述了.自己使用领域驱动设计摸滚打爬也有2年多的时间,出于对知识的总结和分享,也是对自我理解的一个公开检验,介于博客园这个平 ...
- RabbitMQ总结概念
AMQP:一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计 http://www.diggerplus.org/archives/3110 AMQP ...
随机推荐
- 自己编写的一个有关安卓应用开发培训PPT
这个是我自己编写的一个有关安卓应用开发培训PPT,适合新手. 在这里下载PPT
- 【SharePoint学习笔记】第1章 SharePoint Foundation开发基础
SharePoint Foundation开发基础 第1章 SharePoint Foundation开发基础 SharePoint能做什么 企业信息门户 应用程序工具集(文档库.工作空间.工作流.维 ...
- Buffalo最佳实践
本文将介绍Buffalo AJAX的两种配置的最佳实践,这个AJAX框架还是中国大师开发的,用起来估计是最方便.最简单的一个 准备工作:官网下载buffalo-2.0-bin,也可以下载buffalo ...
- jersy服务,将图片发送另个服务器,再将异步返回
今天在学习新项目时,遇到了jersy服务,完成,将图片发送到另一台服务器.下面介绍一下jersy服务的一个简单例子. 1.建立一个jersy一个java项目,先导入jersy服务相应的jar包 com ...
- ionic 启用sass
转入ionic项目目录,命令行下执行:ionic setup sass 提示编译器未装: You have specified Ionic CI to set up sass.However, you ...
- 通过Daffodil for VS使VS2010的IDE可以用VC6 VC7.1 VC9等编译器进行项目编译
本文内容中的部分资料和知识来源于网络,具体引用出处不明. VS的IDE从VC6到VS2010的变化可谓是天翻地覆,最新的VS2010有一个特性就是支持多显示器开发,这无疑为我们的开发带来很大的便利. ...
- 理解Condition的用法
这个示例中BoundedBuffer是一个固定长度的集合,这个在其put操作时,如果发现长度已经达到最大长度,那么会等待notFull信号,如果得到notFull信号会像集合中添加元素,并发出notE ...
- 用HTML实现凸(凹)起的立体效果的表格
视觉效果如下: 实现这个效果主要用到的是<table>标签的bordercolorlight和bordercolordark两个属性.不过在测试的过程中,我发现有的浏览器不支持这两个属性, ...
- ARM指令分类及其寻址方式
ARM指令分类及其寻址方式 一:ARM指令的分类 ARM指令集可以分为以下6类: •跳转指令: •数据处理指令: •程序状态寄存器(PSR)传输指令: •load/store指令: •协处理器指令: ...
- Spark Job的提交与task本地化分析(源码阅读八)
我们又都知道,Spark中任务的处理也要考虑数据的本地性(locality),Spark目前支持PROCESS_LOCAL(本地进程).NODE_LOCAL(本地节点).NODE_PREF.RACK_ ...