Browse Prior Art Database

Dynamic, Multi-Level Storage Policy for Managing External Page Table Space in the AIX Operating System

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

Publishing Venue

IBM

Related People

Chang, A: AUTHOR [+4]

Abstract

The AIX* operating system implements its virtual memory using paged segmentation. A segment is used to represent an object, such as an ASCII file, a program, or shared memory. A segment, always a 256 Mb partition of contiguous virtual address space, contains 65,536 virtual 4 Kb-sized pages. Each segment, whether it be of type working storage or mapped file, has associated with it an External Page Table (XPT), which is a data structure used by the Virtual Memory Manager (VMM). 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 backing store. As users create files and execute programs, blocks of XPT entries are allocated and initialized on a demand basis.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 31% of the total text.

Page 1 of 3

Dynamic, Multi-Level Storage Policy for Managing External Page Table Space in the AIX Operating System

The AIX* operating system implements its virtual memory using paged segmentation. A segment is used to represent an object, such as an ASCII file, a program, or shared memory. A segment, always a 256 Mb partition of contiguous virtual address space, contains 65,536 virtual 4 Kb-sized pages. Each segment, whether it be of type working storage or mapped file, has associated with it an External Page Table (XPT), which is a data structure used by the Virtual Memory Manager (VMM). 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 backing store. As users create files and execute programs, blocks of XPT entries are allocated and initialized on a demand basis. As segments are destroyed, such as at program termination, the pages within the segment can be released, and the corresponding XPT entries freed so they can be used by another process. Given the ever-changing nature of system activity, it is necessary to devise a method to efficiently and dynamically handle the allocation and deallocation of XPTs. This article discusses the multi- level storage management policy used by the Virtual Memory Manager to provide this support.

The Page Table Area (PTA) is a VMM data structure used to manage the virtual space from which XPT blocks are allocated. The number of PTA segments is a function of the system load. Since AIX does NOT support the notion of an External Page Table spanning multiple PTA segments, this discussion is solely interested in the management of XPTs within one PTA segment. It should also be noted that all of the control structures needed for this management are local to the PTA segment, thereby simplifying the clean up of empty PTA segments.

Conceptually, at the "highest storage level", a PTA segment exists. This working storage segment is 256 Mb in size, as are all segments in AIX. Any PTA segment in use is identified in the PTA segment table, which is located in a separate segment reserved for use by the VMM. This table is used to determine which PTA segment is to be used for allocating the next External Page Table. If all of the currently existing PTA segments are full, then a new PTA segment is created and the table is updated accordingly.

At the next level - within the PTA segment - is the Area Page Map (APM). This data structure is specifically used to manage free space on a per-page basis. It is always located in the first 128 pages (512 Kb) of the segment.

Before describing the APM, it first necessary to discuss the objects which the APM is used to manage, namely the blocks which comprise External Page Tables. The VMM supports the following five sizes: (1) 4 Kb (2) 2 Kb (3) 1 Kb
(4) 512 Bytes (5) 128 Bytes

Besides minimizing working sets, these sizes are a result of the formats used fo...