Browse Prior Art Database

Signals Implementation on Multiple Virtual Storage Supporting Interoperability

IP.com Disclosure Number: IPCOM000118358D
Original Publication Date: 1996-Dec-01
Included in the Prior Art Database: 2005-Apr-01
Document File: 6 page(s) / 204K

Publishing Venue

IBM

Related People

Bender, S: AUTHOR [+2]

Abstract

Fig. 1 Scheduling an Interrupt Request Block from SRB (Image Omitted)

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 31% of the total text.

Signals Implementation on Multiple Virtual Storage Supporting Interoperability

      Fig. 1  Scheduling an Interrupt Request Block from
           SRB 

                            (Image Omitted)

      Disclosed is a method for solving the problem of implementing
the signal delivery functions, defined by IEEE Standard POSIX 100
3.1, on the Multiple Virtual Storage (MVS) operating system.  The
problem solved by this invention disclosure is unique because it
supports interoperability of POSIX and MVS functions.

      POSIX defines one of the signal delivery functions as being
able to interrupt a program, resulting in a call to a signal catcher
function.  The interrupted program is stopped from executing
instructions, between the time the signal catcher is called and the
time it returns.  The signal catcher is required to run in the same
environment and have addressability to the same storage as the
interrupted program.  POSIX defines a subset of functions, which may
be invoked from a signal catcher function.  The signal catcher can
invoke any of these functions and then return to the interrupted
program.  The interrupted program then continues running as if the
interrupt had never occurred.

      Various techniques have to be devised to delay signal delivery
until the program running on the task was in a state when the signal
catcher could be invoked.  Invocation of a signal catcher had to
occur at a time when resources held by the interrupted program would
not prevent the signal catcher from invoking any of the functions
allowed by POSIX.
  Fig. 2  Scheduling a Directed Interrupt Request Block from
           IRB 

                            (Image Omitted)

      The MVS implementation of POSIX supports interoperability.
This means that POSIX programs were not limited to the functions
defined by POSIX.  For example, a POSIX C program may call a program
written in assembler that invoked any MVS function.  Signals could
not interrupt an MVS function, which may be running in a high
privileged supervisor state.  To support interoperability, signals
had to be delayed until the MVS functions had completed.

      Existing MVS functions provide the ability to interrupt a
program running under a task and pass control to an interrupt program
running on the same task by scheduling an Interrupt Request Block
(IRB).  This interrupt program, called the IRB routine, may interrupt
the task and receive control when the task is using resources that
would prevent the interrupt program from doing anything meaningful.
  Fig. 3  Flows for the Interrupt Request Block
           Routine 

                            (Image Omitted)

      Another problem was the ability to call a C language signal
catcher function.  Whenever, a C language function is called and the
function returns, register save area and...