Browse Prior Art Database

Management of Large Numbers of Assembled Programs

IP.com Disclosure Number: IPCOM000074265D
Original Publication Date: 1971-Apr-01
Included in the Prior Art Database: 2005-Feb-23
Document File: 3 page(s) / 28K

Publishing Venue

IBM

Related People

Blair, FW: AUTHOR [+3]

Abstract

This method achieves the result of having a large number of assembled programs available for execution in a small core area. More specifically, the method provides for the automatic migration of programs to secondary storage, based on their lack of usage. Only frequently called programs are retained in main storage. When subsequent reference is made to such a migrated or expelled program which requires its execution, it is brought into main storage automatically. As described below, the schema is embodied in an IBM S/360 LISP system storage management facility; however, it is not solely restricted to such facility.

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

Page 1 of 3

Management of Large Numbers of Assembled Programs

This method achieves the result of having a large number of assembled programs available for execution in a small core area. More specifically, the method provides for the automatic migration of programs to secondary storage, based on their lack of usage. Only frequently called programs are retained in main storage. When subsequent reference is made to such a migrated or expelled program which requires its execution, it is brought into main storage automatically. As described below, the schema is embodied in an IBM S/360 LISP system storage management facility; however, it is not solely restricted to such facility.

In the IBM S/360 LISP system, the compiled LISP functions (often called "assembled programs") usually reside within the LISP-addressable part of the region, which part are called the "inside". When available space becomes scarce, assembled programs may be expelled by the system from the "inside". If the total region available to the system is sufficiently large, the expelled subroutines are moved to the "outside", that is to the part of the region which is not LISP- addressable. Binary programs can be executed while residing outside because they are referenced at execution time by true address constants and not by LISP pointers. On the other hand, if the total available region is limited, the expelled assembled programs are placed on the auxiliary storage.

Any assembled program may be expelled provided that a reference to it is not on the stack at the time of expulsion and provided that it is not one of a selected few functions which must remain in the "inside" at all times to ensure proper running of the system.

When a function is expelled to auxiliary storage, the address constant pointing to it is changed to point to a linking-in function. The next time the expelled function is called, control passes to this function which obtains available space for, reads in, and passes arguments and control to, the expelled function. The net effect is to make it appear as though the expelled function had been in the "inside" all the time. A side effect of linking-in an expelled function may be the expulsion of other functions to make room for it. The operation of the expel and link-in function and the selected list of functions which must be permanently resident inside are such that expulsion can always be done, at least until the point of system overload.

The point at which a function is expelled may be different, depending on whether LISP is attempting to acquire space for a vector (i.e., a string or a assembled program) or for a node. When sufficient space for a vector cannot be acquired even after the "garbage collector" has been called, a call is made to an EXPEL function which creates the required space by expelling a sufficient number of assembled programs.

On the other hand, when a call to the "garbage collector" has been necessary to acquire space for a ne...