Browse Prior Art Database

Passing Data to STIMER Exits

IP.com Disclosure Number: IPCOM000081012D
Original Publication Date: 1974-Mar-01
Included in the Prior Art Database: 2005-Feb-27
Document File: 3 page(s) / 33K

Publishing Venue

IBM

Related People

Kennedy, PE: AUTHOR

Abstract

STIMER is a macro instruction that causes a control program to set a programmed timer to a specified time interval, or to an interval that will expire at a given time of day. A completion routine may be given control upon expiration of the interval. A problem might exist for a STIMER exit in operating systems of the type, in which the STIMER exit is given control with addressability only to a supervisor-provided register save area. No means is provided to pass to the exit parameters, data areas, or even a base register, and only globally locatable data, for example the CVT (communications vector table), is available to it.

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

Page 1 of 3

Passing Data to STIMER Exits

STIMER is a macro instruction that causes a control program to set a programmed timer to a specified time interval, or to an interval that will expire at a given time of day. A completion routine may be given control upon expiration of the interval. A problem might exist for a STIMER exit in operating systems of the type, in which the STIMER exit is given control with addressability only to a supervisor-provided register save area. No means is provided to pass to the exit parameters, data areas, or even a base register, and only globally locatable data, for example the CVT (communications vector table), is available to it.

Hence, if a program wants to: 1) gain control initially,

2) issue a STIMER REAL to "sleep" for a while,

and 3) regain control when the STIMER interval expires, it may have no way to provide any information to the STIMER code. Frequently, the program would really like to regain control in its mainline, not in a special STIMER exit routine.

The solution to this communication problem lies in the fact that a task can always locate its own TCB (task control block) via the CVT and the new/old pointers. Two approaches can be taken using the TCB:

1. The mainline routine can WAIT on an ECB (event control block) in its TCB; the TCBUSER word serves this purpose well. Before issuing the WAIT, the mainline would issue STIMER with the REAL operand, so that the timer will be decremented while the task is WAITing.

When the specified interval expires, the exit routine specified on the STIMER macro is given control by the system. It then locates its TCB and POST's the TCBUSER field. The exit routine then returns to the system.

As a result of the POST, the mainline becomes ready, and can perform the processing intended at timer expiration.

If appropriate, the mainline can reissue the STIMER and WAIT, repeating the cycle as often as desired.

2. The mainlin...