第二章zOS操作系统的功能概述2.1zOS的内存管理.PDF
第二章 z/OS 操作系统的功能概述
2.1 z/OS 的内存管理
与其它平台不同的是,主机系统里,storage 指的是内存的概念,而不是磁盘的概念。
主机系统的磁盘的概念用 DASD 来表示,即直接访问存储设备。
从 370-XA 直到 ESA/390 系统架构,处理器内存由中央存储(central storage )和扩展
存储(expanded storage )组成。而在z/OS 系统架构里,不再有扩展存储的概念,如图 2-1
所示。
图 2-1 主机内存结构
中央存储(Central Storage ):也称作主存(main storage ),是为系统提供对数据的直接
寻址、快速访问的半导体存储器。数据和程序都可以被装入中央存储。中央存储的最大容量
受硬件和系统架构的限制。
辅助存储(Auxiliary Storage ): 是放在直接访问存储设备(即 DASD )上的,用于支
持如下一些基本的系统需求:
系统数据集(System data sets)
分页数据集(Paging data sets) ,它包含所有虚拟存储地址空间被页换出(paged-out )
的部分。此外,输出到虚拟I/O 设备的内容也可以存在分页数据集中。
2.1.1 虚拟存储结构
虚拟存储是建立在主存——辅存体系上的存储管理技术。它以程序访问的局部性原则为
基础,通过某种策略,把辅存中的信息分批调入主存,给用户提供一个比实际容量大得多的
逻辑地址空间来访问主存。从 CPU 的角度看,主存—辅存层次的速度接近于主存,容量与
位价则接近于辅存,解决了速度、容量与成本之间的矛盾。
一个 z/OS 程序保存在虚存里,只有活动的那部分程序内容需要在处理的时候会被调入
实存。一个程序要运行时,系统首先把它调入虚存,并分成 4K 字节大小的页。系统把一个
1
程序的页调入实存(中央存储)来执行,不需要时再调出到辅助存储。对程序员来讲,整个
程序好像总是占住实存里连续的空间。实际上,一个程序不是所有的页都必须同时在实存里。
而且,页在实存里也不必占用连续的空间。
一个程序在虚存里执行,它的各部分必然会在实存和辅存之间移动。为了实现这种移动,
物理存储被分成很多区域,每个区域大小相同并且拥有唯一访问的地址。在实存中,这些区
域被称为帧(frame ),在辅助存储中,被称为片(slot )。我们将在 2.1.6 节“帧,页和片”
中进行更深入的讨论。
页地址被称为虚拟地址。从程序进入系统开始直到执行结束,页的虚拟地址都保持不变,
不管该页是在实存中还是在辅助存储中。每页由很多称为字节的单个空间组成,每个字节都
有唯一的虚拟地址。z/OS 用每页的第一个字节标识该页。
2.1.2 页面调度
z/OS 使用地址表确定一个页是在实存中还是在辅存中,并确定位置。要找到程序的一
个页,z/OS 检查地址表来查找该页的虚拟地址,而不是搜索所有的物理存储来查找该页。
然后 z/OS 根据需要将该页传输到实存或者辅存中。这种在辅存的片和实存的帧之间进行的
页面的移动称为页面调度。页面调度是理解 z/OS 中虚拟存储使用的关键。
z/OS 的页面调度对于用户来说是透明的。在程序装入时,不必将其全部读入到内存,
而只需将当前需要执行的部分页或段读入到实存,就可让程序开始执行。在程序执行过程中,
如果需执行的指令或访问的数据尚未在实存(称为缺页),则由处理器通知操作系统将相应
的页调入到实存,然后继续执行程序。另一方面,操作系统将实存中暂时不使用的页调出保
存在辅存上,从而腾出空间存放将要装入的程序以及将要调入的页。
为了选择需要调出到辅存中的页面,z/OS 采用最近最少使用(LRU )算法。即z/OS 假
定一段时间内未被使用的页在将来最近一段时间也不会被使用。
2.1.3 虚拟存储地址
虚拟存储看技术可以使系统看起来比实际拥有更大