Browse Prior Art Database

Dynamic Quickcell

IP.com Disclosure Number: IPCOM000082527D
Original Publication Date: 1973-Nov-01
Included in the Prior Art Database: 2005-Feb-28
Document File: 5 page(s) / 139K

Publishing Venue

IBM

Related People

Aken, BR: AUTHOR [+4]

Abstract

Dynamic quickcell is a programming technique involving a high-performance method for the allocation and deallocation oi fixed-length cells of storage. It is designed for high-performance systems provided with multiple virtual memories. It is divided into the following four functions each of which can be initiated by a macro: BLDCPOOL - To create, extend or recover a pool (BuildCellPool) of cells. GETCELL - To obtain a single cell from a predefined pool of cells. FREECELL - To return a single cell, previously obtained by a GETCELL, to the predefined pool of cells.

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

Page 1 of 5

Dynamic Quickcell

Dynamic quickcell is a programming technique involving a high-performance method for the allocation and deallocation oi fixed-length cells of storage. It is designed for high-performance systems provided with multiple virtual memories. It is divided into the following four functions each of which can be initiated by a macro:
BLDCPOOL - To create, extend or recover a pool (BuildCellPool) of cells.

GETCELL - To obtain a single cell from a predefined pool of cells.

FREECELL - To return a single cell, previously obtained by a GETCELL, to the

predefined pool of cells.

DELCPOOL - To delete an entire predefined pool (DeleteCellFromPool) of cells or to unchain all extensions or just the last extension of a pool,

optionally FREEMAINing the storage

occupied by the extents.

The size of a quickcell may be anywhere within the range of 8 to 4092 bytes, but only in multiples of four bytes. The boundary of each cell is only guaranteed to be on either a word or doubleword boundary, and each pool can be specified for any storage subpool available to the requestor. A pool of cells can be allocated by the Quickcell function at anytime, i.e., dynamically, or an additional block of storage can be added to an existing pool of cells, but only in the same subpool as the original pool. All the cells within a given pool must be of the same length, but if multiple lengths are required by a function, multiple pools (each defined by a unique CPID) may be obtained.

There are two categories of Quickcell pools.
1) System Defined Pools which have permanently reserved

identifiers, and are usable only by programs executing

in Key 0.
2) Dynamic Pools - unique IDs created at build time, which

are not permanently defined.

A Cell Pool Identifier (CPID) is defined to the system via the Build Cell Pool function. Each functional area which requires a pool (or pools) of cells established permanently in the system must have a unique, permanently assigned CPID. It preferably is a four byte identifier consisting of 3 EBCDIC characters and a 1 byte index number.

During NIP (nucleus initialization program) processing, the Cell Pool Anchor Blocks (CPAB) for all permanently defined cell pools will be allocated in SQA (system queue area) storage. NIP will initialize each CPAB to all 0's, and set the first word to contain the Cell Pool IDentifier. The CPAB is used to control the assignment and release of cells within a pool. The number of CPABs obtained is governed by the number of unique CPIDs required and identified. Once the

1

Page 2 of 5

CPABs are initialized as indicated above, the Dynamic Quickcell Services can be used, but must be called in an ordered hierarchy. That is, BLDCPOOL must first be called to obtain and format a pool of cells; GETCELL to secure the use of one cell; FREECELL to return a cell to the pool, and DELCPOOL to delete a pool.

When NIP processing is almost completed, a set of BLDCPOOL macros will be issued to obtain global cell pools for tho...