Browse Prior Art Database

Dynamic Allocation of External Page Tables in the AIX Operating System

IP.com Disclosure Number: IPCOM000036547D
Original Publication Date: 1989-Oct-01
Included in the Prior Art Database: 2005-Jan-29
Document File: 4 page(s) / 37K

Publishing Venue

IBM

Related People

Chang, A: AUTHOR [+4]

Abstract

The AIX* operating system implements its virtual memory using paged segmentation. A segment, always a 256 Mb partition of address space that is contiguous in virtual space, is used to represent an object, such as an ASCII file, a program, or shared memory. The two general types of segments are mapped file and working storage. One of the Virtual Memory Manager (VMM) data structures associated with each segment is an External Page Table (XPT). The XPT contains one entry for every virtual page in the segment. Each entry describes the characteristics of its corresponding page, such as its level of protection and its location on hard disk. As users create files and execute programs, XPT entries are allocated on demand and released when no longer needed.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 51% of the total text.

Page 1 of 4

Dynamic Allocation of External Page Tables in the AIX Operating System

The AIX* operating system implements its virtual memory using paged segmentation. A segment, always a 256 Mb partition of address space that is contiguous in virtual space, is used to represent an object, such as an ASCII file, a program, or shared memory. The two general types of segments are mapped file and working storage. One of the Virtual Memory Manager (VMM) data structures associated with each segment is an External Page Table (XPT). The XPT contains one entry for every virtual page in the segment. Each entry describes the characteristics of its corresponding page, such as its level of protection and its location on hard disk. As users create files and execute programs, XPT entries are allocated on demand and released when no longer needed. In other words, the VMM implements a policy of late XPT allo cation - an XPT entry is not allocated until the page is referenced. Given the ever-changing nature of system activity, it is necessary to devise a method to efficiently - in terms of space and time - handle the creation and growth of XPTs dynamically. This article addresses the algorithms used by the Virtual Memory Manager to provide this support.

As mentioned previously, there are two general types of segments - mapped file and working storage. There are several different formats for the XPT, depending on which type of segment is involved, and in some cases, the size of the file in question: FORMAT SEGMENT TYPE DESCRIPTION direct mapped file 32 XPT entries located in 128 bytes

of contiguous storage. Maps

a file

up to and including 128 Kb. indirect mapped file Maps a file bigger than 128 Kb, up to

and including 256 Mb. indirect working storage Maps all sizes up to and including 256 Mb.

The indirect format contains the following:

An indirect block (2 Kb) which contains 512 pointers; each one points to a different (direct) block of XPT entries. For both types of segments, the direct block has 128 entries; but a working storage XPT entry requires twice the space as a mapped file XPT entry. This is due to the fact that different pages in a working storage segment may be read from, or written to, different devices. Therefore, the 32-bit device identifier must be kept in each XPT entry. This causes the size of a working storage direct block to be 1 Kb. Since the file system in AIX dictates that a file must be wholly contained within one device, only one device identifier is required for an entire mapped file segment. This identifier is kept in the segment's control block and not on a per-page basis in the XPT. This implies that the large direct block for a mapped file is half the size (512 bytes) of a working storage direct block. Given the previous background information, the algorithms to create and grow the External Page Tables can now be described: CASE 1: Mapped file up to 128 Kb in size

1

Page 2 of 4

A small direct block is allocated when the segment is cr...