Browse Prior Art Database

Dynamic Storage Management for a Teleprocessing Communications Controller

IP.com Disclosure Number: IPCOM000081017D
Original Publication Date: 1974-Mar-01
Included in the Prior Art Database: 2005-Feb-27
Document File: 4 page(s) / 64K

Publishing Venue

IBM

Related People

Duffie, CA: AUTHOR

Abstract

One cause of a deadlock in a realtime teleprocessing system is the allocation of resources to a thread(s) that cannot continue pending the allocation of further resources, and the further resources required are allocated to another thread(s) that also cannot continue, pending the allocation of resources currently allocated to the first thread(s).

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

Page 1 of 4

Dynamic Storage Management for a Teleprocessing Communications Controller

One cause of a deadlock in a realtime teleprocessing system is the allocation of resources to a thread(s) that cannot continue pending the allocation of further resources, and the further resources required are allocated to another thread(s) that also cannot continue, pending the allocation of resources currently allocated to the first thread(s).

The only 100% foolproof guarantee against such deadlocks is the definition of infinite resources, which in most cases is impossible. Consequently, the best that can be done to avoid deadlocks in any system is to minimize the probability of their occurrence. This can most effectively be done by placing fairly rigid controls on the allocation of critical system resources.

The first control is the discrimination of threads into one of the following classifications:

1) PRODUCTIVE - defined as a thread that is to operate upon an idle (i.e., reschedulable) resource (e.g., line) such that the end result of the task execution will be the initiation of I/O over the resource, thereby guaranteeing that the storage related to the I/O operation (including buffers, work areas, save areas, etc.) will eventually be freed.

2) NONPRODUCTIVE - defined as a thread that is to operate upon a busy resource, and can therefore only partially process a request for the resource, thereby not being able to guarantee that the storage required to partially process the request will eventually be freed (should the system need to enter a system WAIT state due to a total depletion of dynamic storage).

The reason for discriminating between the two classes of tasks is that additional storage is required (in a communications environment) by all processing tasks in the form of work areas, save areas, and buffers. Thus, to dispatch nonproductive task; during storage depletion periods only causes a larger drain on an already critical resource, thereby increasing the chances of total storage depletion and a possible "deadly embrace" (i.e., insufficient storage currently tied up in I/O and, therefore, not enough storage available to satisfy the requirements of those tasks in a partial state of completion who are also tying up the bulk of the system dynamic storage).

This first control is discussed in more detail in the publication entitled, "Task Scheduling Algorithm for a Teleprocessing Communications Controller," published in the IBM Technical Disclosure Bulletin, Vol. 16, No. 10, March 1974, pages 3349 to 3352.

The second control, and the subiect of this article, is a dynamic storage management algorithm that provides the following: 1) Two priorities of storage requests. 2) The option of queueing (for later satisfaction) those requests that are currently unsatisfiable. 3) The capability to change the priority of a queued

1

Page 2 of 4

request. 4) The notification to the system when storage slowdown states are entered and exited.

Storage management will be...