Once the TAKE table is built, the receiving
address of the TAKE table in a call to DftTAKE. moves the GIVE request buffer (containing the GIVE the receiving task's TAKE request buffer.
task specifies the
The supervisor then
request element) to
The receiving task performs the service and updates the GIVE request element and places it 1n its TAKE response buffer. This
modified GIVE request element contains information on results of request
processing to be returned to the requesting task. When all request processing is complete, the receiving task again
calls DMTAKE, specifying the address of the TAKE table. The superv1ser
respcnds by i.mediately moving the contents of the receiving task's TARE reponse buffer to the requesting task's GIVE response buffer, and
posting the synch lock in the requesting task's GIVE table.
If another GIVE request addressed to the receiving task has been
enqueued, it 1S given to the receiving task as described above, and
dispatched task execution is resumed. On each call to it, DftTAKE first
responds tc a previously accepted GIVE request (if one exists) and then
gives another modified GIVE request element back to the calling task (if
one exists).
The requesting task waits for request
address of the synch leck in its GIVE routine (DMTWAT). completion by specifying the
table in a call to the WAIT The receiving task waits for request availability by calling DftTWIT and specifying the address of its "task request synch lock," which is
located in its Task Save Area. The task request synch lock is cleared
to zero by DMTAKE when no GIVE request address to the calling task
remains enqueued. It is posted by DMTGIV when such a request is
enqueued as a result of DMTGIV processing for another task.
Figure 9 shows the movement of data during a GIVE/TAKE transaction.
3-26 IBM VM/370: System Logic and Problem Determination--Volu.e 3
SVEC TORS GIVEQ GIVEE GIVEE .f
- I GIVE Request \. Element ,) SML l STORAGE GIVE (Giver)
Request
Table
TAKE 1 DMTCMX STORAGE (Taker) I I \
/ --.. \
\
\ , " ,," /' TAKE
Request
Table , " "'" ..... " -- """'" , "" G,IVEE -- """" GIVE Request
Buffer '- I I I """ TAKE
Request
Buffer "- GIVE Response
Buffer "'C- I TAKE
Response
Buffer ... """, .,," , , ,
TAKE 2\ /' / \
\ I I I I I I /
Figure 9. Mcvement of Data During a Typical GIVE/TAKE Transaction Input/Output Methods and Techniques Two data structures are created when RSCS performs an I/O operation: an I/O element and an I/O table.
The I/O table (defined by DSECT IOTABLE) is tuilt
task and describes specific information required
requested I/O operaticn. ty the requesting
to perform the Introduction 3-27
Previous Page Next Page