THE SEND/RECV PROTOCOL The SEND/RECV protocol defines a transaction calling for two-way
transfer of data, as described in Figure 16. The SEND/RECV protocol
uses the SEND/RECV, RECEIVE, and REPLY subfunctions.
The source virtual machine initiates the transaction using the SEND/RECV using an external interrupt, CP notifies the sink virtual machine that there is a message waiting. The sink virtual
machine uses the RECEIVE subfunction to cause the data to be transfered from the source virtual machine's storage to the sink virtual machine
storage. The sink virtual machine now uses the REPLY subfunction to
cause data to be transferred from its storage to the source virtual
.achine's storage. When the REPLY subfunction completes processing, CP causes an external interrupt in the source virtual machine, notifying it
that the transaction is complete.
The SEND/RECV request requires that ·the source virtual machine
specify the address and length of the data to be transferred and the
address where data is expected from the REPLY subfunction. (Both
addresses are in source virtual machine storage.) These addresses,
along with the length of the data to be transferred, are specified via
the VMCPARM parameter list, described below. When RECEIVE is issued by the sink virtual machine in response to the SEND/RECV request, VMCPARM contains the address in sink virtual machine
storage where data is to be received. Finally, when the REPLY request
is issued, VMCPARM contains the address in the sink virtual machine
storage from which data is to be transferred. r I I DMKVMC I I VMCF I I Interface I I Module I Source Virtual Machine L-- SEND/RECV-->----------> -----------------)Data I I I (-----------------Data I (--External Interrupt-- I (Final Response) I I Sink Virtual Machine --External Interrupt------) (--------(----------RECEIVE Transfer-------------------) I I (------------(--------REPLY I Transfer-------(------------ I I I I Figure 16. The SEND/RECV Protocol 150 IBM iM/370 System Programmeris Guide
THE SENDI PROTOCOL The SENDI protocol defines a transaction calling for an expedited
one-way transfer of data. Figure 17 shows the SENDX protocol
graphically. SENDI differs from the SEND protocol in that the sink
virtual machine need not issue the RECEIVE subfunction; data is
transferred from source virtual machine storage to sink virtual machine
storage at the same time the external interrupt from CP notifies the
sink virtual machine of the transaction. Data sent by the source
virtual machine is placed in the external interrupt buffer of the sink
virtual machine. Virtual machines using the SENDX protocol are responsible for
specifying the userid for the sink virtual machine, a message ID, the
address and length of the data being sent, and the external interrupt
buffer address and data length for the sink virtual machine. A virtual machine to be used as a sink virtual machine with the SENDX protoccl
aust specify this information VMCPARM when that virtual machine
issues the AUTHORIZE subfunction. The data length specified must be at
least as long as the maximum amount of data to be transferred during a
transaction; it need not be limited to the usual 40-byte external
interrupt buffer. Effective use of the SENDI protocol requires that VMCF users agree on a maximum size for SEND X data and then issue the AUTHORIZE subfunction with the appropriate external interrupt buffer
If the sink virtual machine has not provided enough SENDX buffer area
in the external interrupt buffer, CP notifies the source virtual machine that the transaction was not completed. When a SENDI data transfer is complete, CP directs a response
external interrupt to the source virtual machine, notifying it that the
transaction is complete.
r I DMKVMC I I VMCF I Interface I Module Source Virtual Machine , I I I I I I I SENDX------)----------)I I -----------------)Data I I I I <--External Interrupt--I (Final Response) t I I Figure 17. The SENDX Protocol I I I I I I I I Sink Virtual Machine I Transfer-------------------) I I --External Interrupt-----) I (Buffer Contains Data)
Part 2. Control Program (CP) 151
Previous Page Next Page