Browse Prior Art Database

Dynamic List Maintenance Instructions

IP.com Disclosure Number: IPCOM000074412D
Original Publication Date: 1971-Apr-01
Included in the Prior Art Database: 2005-Feb-23
Document File: 2 page(s) / 45K

Publishing Venue

IBM

Related People

Canaday, GF: AUTHOR

Abstract

In a multiprocessing, multiprogramming environment, many serially reusable queues or lists are set up in storage and used for various purposes. To prevent multiple access to these lists at any given time, each storage or memory unit is provided with a decoder and controls for executing three queuing instructions while preventing other accesses to the unit during execution of the instructions. The instructions enqueue on a FIFO basis, enqueue on a LIFO basis, and dequeue according to the mode of enqueuing.

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

Page 1 of 2

Dynamic List Maintenance Instructions

In a multiprocessing, multiprogramming environment, many serially reusable queues or lists are set up in storage and used for various purposes. To prevent multiple access to these lists at any given time, each storage or memory unit is provided with a decoder and controls for executing three queuing instructions while preventing other accesses to the unit during execution of the instructions. The instructions enqueue on a FIFO basis, enqueue on a LIFO basis, and dequeue according to the mode of enqueuing.

Each element of the list has a list pointer and a data field. The list pointer will point forward in a FIFO queue and backward in a LIFO queue. A control block is needed and it has a FIRST field that points to the first element to be dequeued and a LAST field that points to the last element to be dequeued. When there is no element in the queue, both LAST and FIRST are set to zero.

The mnemonics and operands for the instructions are:

ENQF R1,R2,R3

R1 - register for pointing to element to be added

R2 - register for pointing to LAST

R3 - register for pointing to FIRST

ENQL R1,R2,R3

R1 - register for pointing to element to be added

R2 - register for pointing to FIRST

R3 - register for pointing to LAST

DEQ R1,R2,R3

R1 - register for pointing to element being dequeued

R2 - register for pointing to FIRST

R3 - register for pointing to LAST.

In order to use these instructions, the programmer has to keep track of the type of queue and...