Browse Prior Art Database

Hardware Assist to Management of Dynamically Allocated Working Storage

IP.com Disclosure Number: IPCOM000089194D
Original Publication Date: 1977-Sep-01
Included in the Prior Art Database: 2005-Mar-04
Document File: 2 page(s) / 13K

Publishing Venue

IBM

Related People

Attanasio, CR: AUTHOR

Abstract

A multiprogramming operating system is typically implemented in reentrant code; consequently, required data areas are allocated dynamically from a pool of main storage managed centrally (e.g., GETMAIN in 05-systems, FREE in VM/370). A frequent and particularly exasperating programming error occurs when such storage is mismanaged, either when a routine returns more or different storage to the available pool than it was originally allocated, or enters Into storage which was not properly allocated to it. Such errors are particularly difficult to correct because the result appears only at a later time when the misused storage is again used, most probably by a different routine in an unrelated context.

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

Page 1 of 2

Hardware Assist to Management of Dynamically Allocated Working Storage

A multiprogramming operating system is typically implemented in reentrant code; consequently, required data areas are allocated dynamically from a pool of main storage managed centrally (e.g., GETMAIN in 05-systems, FREE in VM/370). A frequent and particularly exasperating programming error occurs when such storage is mismanaged, either when a routine returns more or different storage to the available pool than it was originally allocated, or enters Into storage which was not properly allocated to it. Such errors are particularly difficult to correct because the result appears only at a later time when the misused storage is again used, most probably by a different routine in an unrelated context.

The present design concept attempts to aid this situation by adding sufficient logic to the machine to allow it to distinguish between allocated and unallocated working storage, thus enabling detection of the type of error described above at the time of occurrence.

A bit is associated with each independently allocatable unit of working storage, whose purpose is to indicate whether that unit is currently in the allocated or unallocated state. When the software working storage manager allocates a range of storage to a process, it executes an instruction (SET ALLOCATION BIT, BASE ADDR, EXTENT) which sets all the test bits associated with the range to one, and which causes an interruption if any of the bits were set to one prior to the instruction. This feature protects against errors in the working storage manager which would otherwise cause the same unit(s) of storage to be simultaneously allocated to two supervisor processes.

A second instruction (RESET ALLOCATE BIT, BASE ADDRESS,...