r I Processor Mode Function $CRTNl HOST/RJE $PRTN1 RJE $URTNl RJE $JRTNl HOST $WRTNl HOST/RJE $RRTNl HOST/RJE Processes the following MULTI-LEAVING control
records: permission to transmit, request to
transmit, and SIGNON control records. Precesses print file records received from remote stations and passes them to the spool system.
Processes punch file records received fro.
remote stations and passes them to the VM/370 spool system.
Proc,esses job file records received froll the
remote station and passes them to the VM/370 spool system.
In HOST mode, passes command request elements,
via to DMTCMX for processing.
In RJE mode, passes message request elements
to the RSCS operator's console.
Receives records from the VM/370 spool system
for transmission to remote stations. CMDPROC Executes local commands passed by DMTCMI, and
passes messages and commands to remote pta tions.
Figure 6. SML Function Processors
THE SML LINE I/O HANDLER ROUTINE: COMSUP The SML line I/O handler routine, COMSUP, controls communications on tbe ESC line fer SML. This routine receives data from the BSC line and
passes the da t.a to the deblocker routine ($TPG'ET). COMSUP also sends
data (which has been blocked by the blocker routine, $TPPUT) to a remote
station. COMSUP is also responsible for acknowledging receipt of data
over the line using the standard BSC line control characters.
The $START routine is entered when SML is required (by either a remote station or a virtual machine) to perform a function. The purpose of this routine is to select a function to execute. The routine performs
this function by using a commutator table, a list of synch locks, and
task control tables.
The SML commutator table is a branch table consisting of branch (E)
and no-operation (NOP) instructions. The targets of the branch instructions are the seven processor routines, each of which performs a
specific function. When the service of a processor is not required, tbe
commutator Table entry for that processor is a NOP instruction. When the function of the processor is required, the NOP instruction in tbe
commutator table entry for that processor is replaced with a B
instruction, thereby opening a gate in the commutator table.
3-16 IBM VM/370: System Logic and Problem Determination--Volume 3
The $START routine cycles through the commutator table, falling
through any NOP instructions and taking any branches. Control is passed
in this way to any processor whose gate in the commutator table is open. When the completes the function requested, it closes its
gate in the commutator table by replacing the E instructions with a NCP instruction. $START continues cycling through the commutator table
taking any open branches. When the bottom of the commutator table is reached, tests a
series of synch locks to see if any have been posted, signifying a
request for an SML function. If any synch locks are posted, $STABT opens the commutator table gate for the requested processor and goes to
the top of the commutator table to start cycling through it again.
If the bottom of the commutator table is reached and there are no
posted synch locks, SML discontinues processing by.issuing a wait
request via a call to the supervisor module waiting on a list cf
the synch locks. When any of the synch' locks is posted, receives
control, the appropriate gate, and starts cycling through the
commutator table. The task control table (TCT) is a
each of the processors. There is a
Also, contained within the TCT is
appropriate processor. DSECT defining data required by
TCT for each of the processors.
a branch instruction to the BLOCK AND DEBLOCK SML TELEPROCESSING BUFFERS: $TPPUT AND $TPGET Data received over the BSC line is placed in a teleprocessing (TF) buffer. The size of TP buffers is specified by a START command
parameter and can be up to 1024 bytes.
Data contained in TP buffers is deblocked into tanks, which are unit
buffers of a specific size used to deblock the larger TP buffers. There
are 15 tanks; these are allocated as they are needed by processors. The
size of tanks is determined by MULTI-LEAVING control bytes. When an SML function
blocked fer transmission
deblocked for processing
station) has been requested, the data must be either
(if it is data for a remote station) cr
(if it has been received from a remote
$TPGET receives data from a BSC line (via the COMSUP routine) and
allocates tanks to output processors as they are needed. $TPPUT receives tanks from input processors, blocks the data in these
tanks into TP buffers, .and gives control to COMSUP to transmit the
buffers over the line.
The NPT Line Driver Program
The NPT line driver program processes only one file at a time; it can
either receive a file as input from the remote station or transmit an
output file to a remote station. These two processes execute under
control of a line monitor that reads and writes data over the BSC line
and a functicn selector routine that determines whether an input or
output functicn has been requested. RSCS Introduction 3-11
Previous Page Next Page