Browse Prior Art Database

Asynchronous Service Routine Invocation with Safety Serialized Work Queue

IP.com Disclosure Number: IPCOM000044914D
Original Publication Date: 1983-Jan-01
Included in the Prior Art Database: 2005-Feb-06
Document File: 3 page(s) / 38K

Publishing Venue

IBM

Related People

Bibolet, RP: AUTHOR [+2]

Abstract

In a multiprocessing environment, numerous concurrently executing processes may need to invoke a common service routine asynchronously, each passing a queue of work. In the IBM system control program known as MVS (Multiple Virtual Storage), asynchronous service routine invocation is handled by the SCHEDULE macro, which enqueues a service request block (SRB) onto one of the dispatcher's queues. The SRB has one word for use by the scheduling routine (the requester). This word, the parameter anchor, can be set with the address of a queue of work for the scheduled routine (the server).

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

Page 1 of 3

Asynchronous Service Routine Invocation with Safety Serialized Work Queue

In a multiprocessing environment, numerous concurrently executing processes may need to invoke a common service routine asynchronously, each passing a queue of work. In the IBM system control program known as MVS (Multiple Virtual Storage), asynchronous service routine invocation is handled by the SCHEDULE macro, which enqueues a service request block (SRB) onto one of the dispatcher's queues. The SRB has one word for use by the scheduling routine (the requester). This word, the parameter anchor, can be set with the address of a queue of work for the scheduled routine (the server).

When many requesters run simultaneously, serialization problems can occur if only one SRB exists to invoke the server. Serialization can also be a problem if many SRBs exist but no additional serialization mechanisms, such as a global lock, are used. However, if all requesters and the service routine use the Compare and Swap (CS) instruction, as described below, no further serialization problems will exist.

Initially, assume the situation in the figure in which at a given point in time, requester routine A (with work queue elements A1, A2, and A3) and requester routine B (with work queue elements B1, B2, and B3), both need to schedule service routine S. If the parameter anchor in the SRB for service routine S is zero, the routine is available to handle any incoming work. If the anchor is nonzero, it contains the address of a queue of work the service routine has not yet processed.

Requester A attempts to have its work serviced by service routine S. The service routine SRB has a parameter anchor value of 0 which indicates the server S is available to handle the work. The current value of the SRB parameter anchor is stored in the chain pointer of the last element on A's work queue.

When requester...