0 DMTVEC 270 DMTMAP DMTEXT DMTSVC DMTIOM DMTQRQ DMTDSP DMTiAT DMTPST DMTASK DMTSTO DMTASY DMTSIG DMTGIV DMTAKE 1000 Supervisor Queue Extension 20001 1 I Free Storage (alloca table)
r I DMTREX 1--------------------------- I DMTCMX 1--------------------------- I DlITEGX 1------------------------- I DHTCRE 1--------------------------- 1 DMTCOM 1--------------------------- I 1 1 I , tMTMSG DHTSYS DMTINll Free Storage 700001-----------------------­ , Third Line Driver 740001 Second Line Driver I 780001-----------------------­ First Line Driver i 7COOOI-----------------------­ I 7DOOOI DMTLAX DMTAXS I 1 IDMTINI begins at the first page boundary following DMTSYS. ,
After I I I initialization its storage becomes part of free storage. L Figure 7. RSCS Storage Allocation
Synchronizing and Dispatching Tasks
The means by which RSCS synchronizes and dispatches tasks are the WAIT/POST routines (DMTWAT and DMTPST), synchronization locks,
asynchronous requests and exits, and the dispatcher routine (DMTDSP). The WAIT/POST method of task synchronization (Supervisor modules DMTWAT and DMTPST) is used when an executing task requires the services
of another task. When this situation occurs, the requesting task must
suspend its execution while it waits for the requested service to be
performed. In conjunction with the dispatcher, WAIT/POST allows tasks
to temporarily suspend execution until they receive a signal (via the
synch lock) that they can resume execution. RSCS Introduction 3-21
THE WAIT/POST ROUTINES To suspend its execution, the requesting task calls DMTWAT, which
inspects the synchronization locks RSCS uses to synchronize task
execution. Cempletion of a service is signaled by aeans of a synch
lock, which is set (or "posted") by DMTPST. SYNCHRONIZATION LOCKS Synchronization locks (or "synch locks") are fullwords contained in task
save areas or centrol tables (such as TAREA or IOTAELE). Synch locks
are also found in control areas in function selector routines sucb as REXCYCLE in medule DMTREX. The syncb lock must be set to zero before the request for services is
made. Setting the synch lock to zero prepares it for processing ty the WAIT routine.
The first byte of the full word may contain either a zero or a "post code." If the first byte is zero, the task is nondispatchable, tecause the requested service has not yet been performed. A post code is a cooe which sets tc one any bit in the first byte of the synch lock. D!TPST sets such a bit to specify that a requested service has been completed.
The requesting task, that is, the caller of tMTWAT, may specify tbe address of a single synch lock (as in the case of a GIVE Tatle or an IOTABLE) or the address of a list of synch locks (as in the case cf REXCYCLE), one of which must be posted by before dispatching cf
the requesting task can resume. Figure 8 shows the contents of Register
1 on a call. Rl Synch Lock r-----------, r -, 1 A (Sy ncb Leck) 1--------> I I OOOCOO 1 L-- _______ --' L
-- OR -- Rl r r-- ---, ,--------.1 1 1 A (List Address) 1----> 1 A (Synch Lock) 1--' L-- -' 1 I IA(Synch Lock) 1--------- I 1 / /
/ / 1 , Synch Lock I >1 0 Synch Lock
r >1 0 IA (Synch Lock) 1-, Synch Lock
L 1 r , '-- __ >1 0 1 Figure 8. InFut to the DMTWAT Routine
3-22 IBM VM/370: System Logic and Problem Determination--Volume 3
Previous Page Next Page