General Considerations
VMCF Protocol
The VMCF support module, DMKVMC, is a pageable CP module. If a user
has significant paging activity, it may be advantageous to either lock the mod­
ule in real storage (CP LOCK command) or alter the CP LOADLIST to make
DMKVMC resident.
It is t<;> a user's benefit to have the user parameter list, VMCP ARM, in the
same 4K page as the DIAGNOSE X'68' instruction. This may eliminate a pag­
ing operation.
User support modules using the VMCF interface should be written as reentrant
modules and be contained within a CP shared segment whenever possible.
This helps reduce CP paging overhead.
For applications that involve serial message processing, the SENDX function is
the most efficient. The SENDX function eliminates the need for the SINK to
do a RECEIVE operation.
Note: Overall system VM/SP performance is not affected when VMCF is not
being used by an installation.
The SENDX function is a fast way to transfer messages or data and can be used in
place of the CP MSG command where the message length exceeds the capacity of
the terminal input line. Its use is somewhat restricted in that the maximum data
length must be agreed upon by all VMCF users and then remains fixed unless
renegotiated.
The SEND and SEND/RECV functions are better suited to transfer high volume
data base type information. This type of data transfer requires the flexibility of a
wide range of data lengths along with rigorous management and control techniques.
The QUIESCE function allows a virtual machine to discontinue receiving messages.
The virtual machine can process those messages already stacked and then use the
RESUME function to continue reception. The QUIESCE function also allows a
virtual machine to process all queued messages prior to terminating VMCF opera­
tion.
The user parameter list, VMCPARM, is designed such that it can be used for any
sub function by simply varying the contents of its fields.
Users should keep copies of VMCPARMs for all requests made via the SEND,
SEND /RECV, or SENDX functions. When a final response interrupt is received
and the interrupt message header indicates no data transfer errors, the correspond­
ing VMCP ARM copy can be released. If a data transfer error is indicated, the
copy can be used to reinitiate the transaction.
VMCF provides four types of protocol: SEND, SEND/RECV, SENDX, and
IDENTIFY. The protocol used to communicate between two virtual machines
depends on the application of VMCF and conventions established by virtual
machine users authorized to use VMCF. A virtual machine must invoke the AUTHORIZE subfunction before it is allowed to use any of the other
subfunctions.
The Virtual Machine Communication Facility 87
The SEND Protocol
The types of transactions that virtual machines can be involved in are described by
a series of VMCF protocols. In these protocols the originating virtual machine is
called the "source" virtual machine. The destination virtual machine is called the "sink" virtual machine.
The protocol for a transaction remains in effect for the duration of the transaction.
The SEND protocol defines a one-way transfer of data from source virtual machine
storage to sink virtual machine storage. The SEND protocol uses the SEND and
RECEIVE subfunctions, as described in Figure 7 . The source virtual machine first
transfers data to the sink virtual machine. This is done by executing the SEND subfunction which specifies the userid of the sink virtual machine, a message ID,
and the address and length of the data being sent. The sink virtual machine
receives an external interrupt from CP notifying it of the data transfer request.
The sink virtual machine can then respond via the RECEIVE subfunction. The
RECEIVE request specifies the address and the length of the SINK buffer that is
to receive the data and causes the data to be transferred from source virtual
machine storage to sink virtual machine storage. When the data transfer is com­
plete, the source virtual machine receives an external interrupt from CP, indicating
that the transaction is complete and that the sink virtual machine has received the
data.
All virtual machines authorized to use VMCF can send data using this protocol.
The amount of data transferred is limited only by virtual machine storage size.
Data is transferred in blocks of up to 2K (when necessary) and only one real page
frame is locked during the data transfer operation. CONTROL PROGRAM DMKVMC VNCF Interface f10dule Source Sink Virtual Virtual
Machine Machine SEND > >
External Interrupt >
< < RECEIVE >Data Transfer >
<-External Interrupt-
(Final Response)
Figure 7. The SEND Protocol
88 VM/SP System Programmer's Guide
Previous Page Next Page