Browse Prior Art Database

Functional Working Sets

IP.com Disclosure Number: IPCOM000086512D
Original Publication Date: 1976-Sep-01
Included in the Prior Art Database: 2005-Mar-03
Document File: 3 page(s) / 18K

Publishing Venue

IBM

Related People

Callahan, RM: AUTHOR [+2]

Abstract

When a function executes in a data processing system, the function produces a recognizable reference pattern. This phenomenon has often been referred to as "locality of reference" In fact, "locality of reference" appears so naturally in programming designs that machines are routinely built to take advantage of it. Such hardware features are often referred to as "caches", "high speed to buffers" and "pipelines".

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 53% of the total text.

Page 1 of 3

Functional Working Sets

When a function executes in a data processing system, the function produces a recognizable reference pattern. This phenomenon has often been referred to as "locality of reference" In fact, "locality of reference" appears so naturally in programming designs that machines are routinely built to take advantage of it. Such hardware features are often referred to as "caches", "high speed to buffers" and "pipelines".

The code can be intelligently packaged in an architecturally independent fashion such that, as the address of a load module increases, each succeeding member of a load module has a lower probability of being referenced. This would permit machines to automatically prefetch a module's next "page", or the manufacturer would provide predefined "working sets". A "working set" consists of all members of a module whose probability of reference is greater than a predefined limit (i.e., .5). By definition, this would be a single contiguous range. Thus, when a function is invoked, its working set may be "block loaded" for execution, as shown in the figure.

For an IBM 5/370, prior to "Link-editing" a load module, the individual object modules are ordered according to the probability that they will be invoked. This probability is established either manually or by tracing the reference pattern of a function while executing a performance test case. In this way, each user installation can record the pattern of usage of his own or the IBM code, and link- edit this pattern into his execution library. During execution, when an executable module is called, the program manager checks, the Low Water Mark (end of working set) and makes a "block-load" decision.

Default link...