'RUNNER' Program Activation and Parameter Passing Subsystem Design Document by Eddy Fey 10/29/85 1.0 Overview The RUNNER Subsystem (PAPPS) is a standalone process which allows user programs to send parameters and activate other programs running under RSX11-M/M+. Key features include: A) Programs to be activated do not have to be installed permanantly ('flying install' capability). B) Variable length parameters can be passed. C) Parameters are stored in a driver's private partition (not in system pool) until they are received by the requested program. D) Programs activated by name. E) System performance can 'tuned' to learn which programs need to be permanantly installed (for higher performance). 2.0 Subsystem Interface User programs interafce into PAPPS by means of a task-to-task communication system which sends the request to RUNNER/INSREM. PAPPS coordinates the installation (if required), activation and removal of the requested task. Tasks to be activated do not have to be sent parameters, PAPPS can be used for its flying install and activate capabilty alone. 2 Fortran callable subroutines are provided for PAPPS interface: SNDPRM - activate a program by name and send parameters. RCVPRM - receive parameters or exit. 3.0 'Flying' Installs When a program is requested to be activated, the request is queued to RUNNER. If the program is not installed, INSREM will install it from a system account. After installation, the parameters are queued to the program and the program is activated. When the program exits (no more parameters), INSREM is activated to remove the program. Installs are handled by a separate program so that programs to be activated which are already installed will not have to wait. 4.0 Task to Task Communications PAPPS queueing mechanism can also be used for general task-to task communication. Variable sized data buffers can be transferred. A general queue management interface is provided for creation, deletion, sending and receiving and flushing of queues. +--------+ +--------+ +--------+ | Send | RUNNER queue | RUNNER | Program A | Receive| | Program|------------->| queue | queue | Program| | X | | area |------------->| A | +--------+ | | +--------+ | | | | | | +--------+ | | +--------+ | Send | RUNNER queue | | Program B | Receive| | Program|------------->| | queue | Program| | Y | | |------------->| B | +--------+ +--------+ +--------+