Browse Prior Art Database

Space Locking

IP.com Disclosure Number: IPCOM000079783D
Original Publication Date: 1973-Sep-01
Included in the Prior Art Database: 2005-Feb-26
Document File: 7 page(s) / 74K

Publishing Venue

IBM

Related People

Fleck, M: AUTHOR [+2]

Abstract

The proposal for the enforced locking of variable parts of virtual storage assumes a virtual storage of 2**S segments, each composed of 2**L bytes. Access to contiguous parts of a segment ("space") is invariably made by a so-called part reference consisting of the segment identifier SID (having a length of S/8), the segment offset of the part's lowest (leftmost) byte which is referred to as the lower bound, and the part's upper bound (both having a length of L/8), or some equivalent such as the part's extent.

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

Page 1 of 7

Space Locking

The proposal for the enforced locking of variable parts of virtual storage assumes a virtual storage of 2**S segments, each composed of 2**L bytes. Access to contiguous parts of a segment ("space") is invariably made by a so- called part reference consisting of the segment identifier SID (having a length of S/8), the segment offset of the part's lowest (leftmost) byte which is referred to as the lower bound, and the part's upper bound (both having a length of L/8), or some equivalent such as the part's extent.

Unless otherwise indicated, all lengths and offsets are given in bytes of eight bits each.

The proposal proper consists of the following points:
(1) Any segment is uniquely machine-associated with a so-called

phantom. One possibility is to conceive of the phantom as

being a segment or its own with all properties of segments,

except that phantom

segments are not explicitly referenceable (see (2)).

As a consequence, this arrangement reduces the number of

explicitly

referenceable segments to 2**S/2. In the following, phantom

segments are assumed to be the realization of phantoms for ease

of

description. However, (9) contains other realizations of

phantoms;

adaptation of the rest of the proposal to any realization being

straightforward.
(2) For each part reference, the machine constructs the

corresponding

reference to the phantom segment merely by replacing SID by

SID (phantom).

The mapping from SID to SID(phantom) can be made simple and fast,

particularly since it does not involve a table look-up.
(3) The operation of STORAGE ALLOCATION/DEALLOCATION which is

usually

in terms of pages, say of a length of 2**P(P<L), works on the

explicitly referenced segment and likewise on the phantom

segment. This means that any

explicit allocation request causes double the

amount of pages to be allocated. It is further assumed that

allocation/deallocation is restricted to work only "on top"

of the

segment's current allocations, i.e., for any byte which is

allocated, it is ensured that also the various lower bytes

with smaller

offsets) are allocated.

Part references to unallocated storage are erroneous and are

assumed to be detected in the same way as are part references

to nonexistent locks (see (4)). Nonexistent locks in

allocated storage are detected by reset (phi) validity flags,

1

Page 2 of 7

which are reset as

part of storage allocation. Consequently, both kinds of

erroneous

references can be ignored in the following.
(4) The operation CREATE LOCK defines and initializes a lock

consisting of a lockword having a length of 2**LW and a number

of links,

as detailed below, in the phantom segment. The operation has

three operands:

a SID implicitly referring to SID(phantom),

a length of 2**LL is such that LW<LL<L, and

a register R suitable for containing a part reference.

SID and LL are input parameters, R being an output parameter.

The

operation causes a lock of a length of 2**LL to be initialized

on top of the locks already defin...