z/OS环境下Language Environment(LE)的heap storage

Language Environment(以下简称LE)是z/OS环境的一个组件,其为一些高级语言的IBM版本(例如C,C++, COBOL,Fortan及PL/I等)提供了一个公共的运行环境。Heap storage是LE用来进行存储管理(Storage Management)的一个概念。在heap storage中通常包含程序运行过程中动态分配的存储空间。本文主要介绍 heap storage的基本组成结构,并通过一个简单的例子来展示heap storage中的内容是如何随着申请和释放操 作而变化的,从而帮助用户更深入的理解heap storage。

首先我们介绍几个与heap有关的术语。

Heap:Heap是被LE程序所使用的一段存储区域。Heap通常包 含一个初始heap segment(片段)和0个或者多个增量(incremental)

Heap segment:LE从操作系统获得的连续的存储区域

Heap element:通过LE的API调用CEEGTST分配的一段连续的存储区域。Heap element总是在一个heap segment中分配的

Heap incremental:当初始heap segment无法满足对heap storage的申请请求时,LE额外从操作系统获得 的heap segments

(为了减少翻译带来的歧义,下文尽可能使用如element,segment这样的英文术语)

接下来我们介绍在31位模式下Heap storage的布局:

每一个heap segment的开始部分都是一个长度为32个字节(8个全字)的heap header。Heap header包含以 下8个字段,每个字段的长度都是4个字节:

1. 一个四个字符的Eyecatcher,内容为“HANC”,用来标示一个heap segment的开始

2. 指向下一个heap segment或者HPCB(Heap Control Block)的指针

3. 指向前一个heap segment或者HPCB的指针

4. heapid

5. 指向此segment起始地址的指针(即Segment address)

6. Segment中最大的空闲element的开始地址(也可称为根地址(root address))

7. Heap segment的长度(即Segment length)

8. Segment中最大的空闲element的长度(也可称为根元素长度(root element length))

在heap header之后,则包含了已经分配的或者是空闲的heap element。

对于一个已经分配的element,首先是8个字节的header,分成两个部分:前四个字节是这个element所在的 segment的开始地址;接下来的四个字节表示这个element的长度(包含8个字节的header在内的长度);后面 则全是用户数据区域。

一个segment中所有空闲的element,组成了一个Cartesian tree(笛卡尔树)。对于空闲的element,在开 始的部分,同样有16个字节的header,分成4个长度均为4字节的字段,分别表示左节点的地址,右节点的地址 ,左节点的大小和右节点的大小(对于笛卡尔树和左右节点的概念,我们不在本文中描述)。每个节点都表示 一个空闲的element。

获得一个segment的起始地址后,我们就可以通过Header中的root address ,以及每个free segment的 header,定位到这个segment之内所有空闲的elements。

图1是一个简单的示意图。这个图描述了一个Heap segment,其中包含了Heap Header,两个已经分配的和 两个空闲的element。图中的绿色箭头和红色箭头,分别表示指向segment开始地址的指针和指向空闲segment 开始地址的指针。

图1

时间: 2024-09-14 14:05:55

z/OS环境下Language Environment(LE)的heap storage的相关文章

详解z/OS上的Language Environment程序管理模型

LE程序管理模型提供了z/OS上高级语言应用程序的运行框架,它是异常处理,消息处理和内存管理等其他LE模型的基础.本文将会介绍LE程序管理模型的基本概念,以及这一模型中的程序执行实体--Process/Enclave/Thread的行为和语义. 1. 程序管理模型概述 LE程序管理模型提供了z/OS上高级语言应用程序的运行框架,它是异常处理,消息处理和内存管理等其他LE模型的基础.三个程序执行实体--Process,Enclave与Thread--他们是LE程序管理模型的核心概念.首先我们从一个

z/OS LE对程序运行时参数的支持

z/OS 操作系统中Language Environment(LE) 组件为应用程序提供了一组强大的运行时参数(run- time option : RTO)支持.对于开发人员来说,通过在应用程序中设置恰当的RTO,不仅可以快速查看运行时环境数据,提高程序调试的效 率:而且还能够设置LE提供的一系列Callable Services,快速处理异常和中断. 1 RTO分类 LE RTO 主要分为系统环境(eg. ENV),文件(eg. FILEHIST),堆栈管理(eg. HEAP,  HEAPP

IBM Business Process Manager on z/OS简介说明

IBM Business Process Manager 是整个面向服务架构 (SOA) 的一部分,它结合了简单性.易用性和任务管理功能,同时支持企业集成和事务流程管理需求.在 BPM 发行版本 7.5.0.1 之前,使用 WebSphere Lombardi Edition 开发的流程应用程序无法在 z/OS 平台上运行.另一个限制是,现有的 WebSphere Lombardi Edition 服务器无法将 DB2® on z/OS 用作产品数据库. WebSphere Process Se

裸机编程与OS环境编程的有关思考

这里的所谓的裸机编程指的是为"无OS支持的硬件系统编程",而实际的编程工作肯定需要一个环境,通常这样的情况中,编程和编译的环境叫做"宿主机",最终的程序在"目标机"上运行(交叉编译).而OS环境编程指的是最终运行的程序是在有操作系统支持的环境中运行,而编程和编译的环境,可能是运行程序的机器(本地编译),也可能不是(交叉编译). 裸机编程现在主要是正对低端的嵌入式系统,如SCM(single chip machine).各式MCU.DSP等.当然,

【OS】Linux环境下配置固定IP地址

[OS]Linux环境下配置固定IP地址 ---red hat重启网卡service network restart/etc/rc.d/init.d/network restart ---suse重启网卡service network restartrcnetwork restart/etc/rc.d/init.d/network restart ----卸载网卡ifconfig eth0 down --- 单独重启网卡ifdown eth0 && ifup eth0ifconfig et

z/OS LDAP客户定制化的安装配置经验

名词解释: LDAP: Light Directory Access Protocol轻型目录访问协议 DSCONFIG: 是LDAP安装时用于生产配置文件的工具 随着z/OS主机的发展,越来越多的客户选择了z/OS LDAP服务器来提供用户验证和目录访问控制服务.它有着性能强大,多种网络拓扑结构的特点,可以提供多种可能的解决方案,同时在新的版本中提供越来越多的新功能. 本文将介绍客户环境与实验室测试环境的差别,安装时要根据客户的环境做定制化的安装. 在实施安装阶段,需要根据客户的环境,和管理要

CIM on z/OS的功能和特点

公共信息模型 CIM(Common Information Model)是一个与具体实现无关,用于描述管理信息的概念性模型. CIM 有许多不同的实现,Open Pegasus就是其中之一.Open Pegasus 是 DMTF (Distributed Management Task Force) CIM (Common Information Model) 与 WBEM (Web-Based Enterprise Management) 标准的开源实现.针对不同的平台,Open Pegasu

z/OS OpenSSH简介

正如你所知道的,OpenSSH 可以提供更加安全.可靠的login,remote execution 以及文件传输.z/OS OpenSSH 作为 Secure Shell 在z/OS 上的实现能够提供更具特性和性能优良的数据传输.之所以说z/OS OpenSSH 更具特性,是因为z/OS OpenSSH 在实现了开源Secure Shell在UNIX平台上所具有的大部分功能的同时,充分利用了z/OS 的支持.例如,OpenSSH keys 可以存储在 RACF 中,将数据传输产生的信息记录在S

利用WebSphere Application Server for z/OS中面向目标的工作负载管理

除了在 IBM System z 平台之上提供一流的 J2EE 应用程序运行时以外,IBM WebSphere Application Server for z/OS 还经过了优化,以利用作为当今企业 SOA 环境中的核心引擎的 System z 的独特技术优势.WebSphere Application Server for z/OS 的最重要独特功能之一是面向目标的工作负载管理功能. 引言 运行在 z/OS 上的 J2EE 服务器由多个地址空间或进程实现.存在一个控制区域.至少一个服务区域,