Browse Prior Art Database

Mechanism for Data Sharing between Cooperating Processes

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

Publishing Venue

IBM

Related People

Gladney, HM: AUTHOR

Abstract

The invention disclosed relates to a method for passing shared data by reference from one member of a hierarchical co-routine set to another in such manner as to avoid erroneous dereferencing in CPU information handing operations. The method steps comprise: (1) detecting the absence of storage of a data object at a common ancestor; (2) moving the data from a contained process to the earliest common ancestor in a hierarchical co-routine set; (3) maintaining a table of data movements; and (4) searching the table in order to obtain the name of the data that has been moved and re-establishing the reference. The Mechanism - Details

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

Mechanism for Data Sharing between Cooperating Processes

The invention disclosed relates to a method for passing shared data by reference from one member of a hierarchical co-routine set to another in such manner as to avoid erroneous dereferencing in CPU information handing operations. The method steps comprise: (1) detecting the absence of storage of a data object at a common ancestor; (2) moving the data from a contained process to the earliest common ancestor in a hierarchical co-routine set; (3) maintaining a table of data movements; and (4) searching the table in order to obtain the name of the data that has been moved and re-establishing the reference. The Mechanism - Details

Within any process block PP, we need concern ourselves only with those variable names P which occur in one or more transfer-control commands. All other names are local to the procedure and refer to data objects always stored within PP. For the mechanism which is described below, it will be enough to consider cases in which the source process has a single outward reference, the target process has a single inward reference name, and these two references correspond. The generalization to multiple shared data objects is obvious.

In some storages area belonging to the transfer-control mechanism, there should be a moved object table with three columns - old location (OL), new location (NL) and new process reference (NP). The NP column is optional, to aid storage and execution efficiency.

Within the activation record of any process block PP, a subpool is defined for the use of shared data objects. Depending on the storage allocation mechanism for activation records, this might be the same subpool as is used for local data objects. How such storage is allocated and how read/write protection of each data object is assured is not the subject of this article - it is assumed a suitable mechanism is available.

Suppose a new data object P> is created in process block PP. Then it is to be assigned in PP's activation record at location P. Alternatively, P may have been made available to PP as part of a transfer-control from some other process. Now, if PP executes TRANSFER QQ(P), the transfer-control mechanism should determine whether the location P is within the activation record of some ancestor process block of QQ. This can be done from the process tree, by following the parent chain. If the condition is not met, the transfer-control mechanism should identify the earliest common ancestor of PP and QQ and should move the data object P> to the activation record of that process block, and should also make an entry in the moved object table. This entry consists of the old location of P> (in OL), its new location (in NL) and, optionally, an identifier of the new process block containing P> (in NP). Optionally, the storage occupied by the old copy of P> may be released.

The rest of the mechanism is in the ENTRY portion of the transfer-control command. Let Q be a member of...