Page of GC20-1807-7 As Updated April 1, 1981 by TNL GN25-0829
tree type structure to a complicated multi-path mesh type structure.
The program logic within each node virtual machine would be the same
logic as required for a real teleprocessing node. In theory, a
reasonably complicated structure could be simulated without requiring
the physical hardware.
The significant testing capability provided by VMCF is the ability to
link the test system with test/simulation routines in another virtual
Although the VMCF interface is intended for communication from one
virtual machine to another it can also be used to communicate within a
single virtual machine (wrap connection) The VKCF interface could
conceivably be used to link one or more operating system tasks that are
logically separated by the software. This would allow task to task
communication rather than virtual machine to virtual machine
communicat ion.
The VMCF interface could possibly be used to simulate a virtual
multiprocessing environment. SECURITY AND DATA INTEGRITY The VMCF interface provides the following security aids: The user doubleword in the external interrupt message header can be
used to contain a security code to prevent unwarranted users from
accessing a shared data base or other confidential information. The AUTHORIZE SPECIFIC option allows a user to restrict messages sent
to his virtual machine. This option is useful when slave machines
are to communicate only with a host machine. The slave machines can AUTHORIZE SPECIFIC with the host and prevent unwarranted users from
clogging their message queues. The design of VMCF prevents malicious users from intercepting
transactions in process for other users. (for example, user D can not
execute a RECEIVE, REPLY, REJECT or CANCEL to a message sent to user
B from user A).
The VMCF support module is designed such that a user is always informed
of conditions that could threaten the integrity of his own data. The
user is notified either with a DIAGNOSE X'006S' return code or data
transfer error code. There is no internal buffering of user data within
the control program (CP), a message is always retained by either the SOURCE or SINK virtual machine. If a SEND type request fails, the SOURCE still has a copy of the original message. If a SINK REPLY fails,
the SINK user still has a copy of the REPLY data. The Diagnose return
code or data transfer error code can indicate to a user that a
transaction failed. It is up to the user to preserve the associated
transaction data. The following are considerations which should be
noted by a VKCF user:
146 IBM VM/370 System Programmer's Guide
1 Page of GC20-1807-7 As Updated April 1, 19a1 by TNL GN25-0829
The buffer used for SOURCE data in a SEND, request should not be freed or reused until
external interrupt is received by the SOURCE. SENDX or SEND/RECV the final response
2. The buffer used for SINK data in a REPLY function can be reused by
the SINK atLer the DIAGNOSE instruction (REPLY; has successfully
3. The user parameter list (VMCPARM) may be reused upon completion of
the Diagnose instruction. At that point the VMCPARM data has been
copied to a VMCF control block (VMCBLOK) by the control program. A
user should, however, maintain queues of VKCPARM data in order to
associate an external interrupt message header (VMCMHDR) with a
particular request.
4. A user should always interrogate the DIAGNOSE return code or data
transfer error code for possible error conditions. It is the
user's responsibility to determine the types and extent of error recovery_ The DIAGNOSE return code 19 for a SOURCE SEND, SEND/RECV or SENDX request indicates that an error was associated with the SINK user and for a SINK RECEIVE or REPLY request indicates that an
error was associated with the SOURCE user. The user who receives
this return code does not have to invoke error recovery for himself
but only be aware that the transaction did not complete
successfully because of an error associated with the other user. PERFORMANCE CONSIDERATIONS There are several factors that can effect the performance of VMCF: 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 module in real storage (CP LOCK command) or alter the CP LOADLIST to make DMKVMC resident. It is to a user's benefit to have the user parameter list, VMCPARM, in the same 4K page as the DIAGNOSE X'0068' instruction. This may
eliminate a paging operation. e 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. The VMCF external interrupt masking is controlled by PSi bit 7 and CRO bit 31. It is to a user's advantage to always have CRO bit 31
set to 1 (while VMCF is in use) and control the interrupts with PSi bit 7 only. This reduces the number of LCTL instructions. 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/370 performance is not affected when VMCF is not used by an installation. Part 2. Control Program (CP) 147
Previous Page Next Page