Browse Prior Art Database

Purging Caller Scatter Loaded Transient Programs

IP.com Disclosure Number: IPCOM000052434D
Original Publication Date: 1981-Jun-01
Included in the Prior Art Database: 2005-Feb-11
Document File: 3 page(s) / 35K

Publishing Venue

IBM

Related People

Bolton, DW: AUTHOR [+3]

Abstract

The minimum program storage pool requirement to avoid system deadlock when executing scatter-loaded transient programs in a Control System without virtual storage is reduced by arranging that only one transient program for each task need occupy space in the pool.

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

Purging Caller Scatter Loaded Transient Programs

The minimum program storage pool requirement to avoid system deadlock when executing scatter-loaded transient programs in a Control System without virtual storage is reduced by arranging that only one transient program for each task need occupy space in the pool.

CONTROL SYSTEM

Transient programs are programs which are loaded into storage by the Control System when required by an application task. In the environment under discussion the transient programs are loaded for execution from DASD (direct- access storage device) storage in a Control System environment without virtual storage. Variously sized transient programs capable of being scatter-loaded into the computer system primary storage are relocatable, modular, re-entrant programs which have been segmented into fixed sized blocks. Each block has a system control area containing block linkage information which is used for program branching at execution time and chaining of blocks when the transient program is stored on the system DASD.

The transient program is segmented into blocks at assembly time under the control of macros which are used to structure the program as a transient. The macros also define program linkage using control information generated for the system control area of each block. The control of transient loading into a fixed- size area of primary storage is performed by the system control program. The primary storage into which a transient is loaded is made available by the system control program from a pool of buffers controlled by an allocation table. The transient buffers allocated are scattered within the pool in order to avoid the inefficiencies of storage fragmentation.

In a multi-tasking environment, transients can be loaded for each task. Transients can also request the loading of other transients, causing several transients to be loaded into primary storage at the same time for one task. Transients at the highest level in the program calling tree remain loaded for the task until they are no longer required by their caller.

Transient programs can be shared by several tasks and are therefore re- entrant in execution. Transients can enqueue on serially reusable system resources like data buffers and data set records.

PROBLEM.

Resource deadlock of the Control System can occur when a task has locked a resource and requires a transient to be loaded but there is no space available in the buffer pool because other tasks have transients loaded and are queued waiting for access to the locked resource. To avoid deadlock, the size of the transient buffer must be defined so that the number of transients required simultaneously for each task can always be loaded regardless of the resource locking. This is achieved with realistic transient buffer pools by compromising the System Design so that both the number of transients required simult...