VM/370 The V5/370 Control program manages the resources of a single computer in
such a manner that multiple computing systems appear to exist. Each
"virtual" computing system, or virtual machine, is the functional
equivalent of an IBM System/370. A virtual machine is configured by recording appropriate information
in the VM/370 directory. The virtual machine configuration includes
counterparts of the components of a real IBM System/370: A virtual operator
1
s console Virtual storage A virtual processor Virtual I/O devices CP makes these components appear real to whichever operating system
is controlling the work flow of the virtual machine.
The virtual machines
techniques. CP overlaps
execution in another.
operate
the idle
concurrently
time of one
via multiprogramming
virtual machine with
Each virtual machine is managed at two levels. The work to be done
by the virtual machine is scheduled and controlled by so.e System/360 or System/370 operating system. The concurrent execution of multiple
virtual machines is managed by the Control Program. VM/370 performs some functions differently when running in attached
processor mode. For a description of the additional processing performed
when in attached processor mode, see 199ic Qy!de. Introduction to the VM/370 Control Program
A virtual machine is created for a user when he logs on VM/370, on the
basis of information stored in his VM/370 directory entry= The entry
for each user identification includes a list of the virtual input/output
devices associated with the particular virtual machine.
Additional information VM/370 directory entry.
class, accounting data,
dispatching priority, and
as extended control mode.
about the virtual machine is kept in the
Included are the VM/370 command normal and maximum virtual storage optional virtual machine characteristics such
The Control Program supervises the execution of virtual machines by
(1) permitting only problem state execution except in its own routines,
and (2) receiving control after all real computing system interrupts. CP intercepts each privileged instruction and simulates it if the
current program status word of the issuing virtual machine indicates a
virtual supervisor state; if the virtual machine is executing in
virtual problem state, the attemFt to execute the privileged instruction
is reflected to the virtual machine as a program interrupt. All virtual
machine interrupts (including those caused by attempting privileged
instructions) are first handled by CP, and are reflected to the virtual
machine if an analogous interrupt would have occurred on a real machine. Part 2. Control Program (CP) 75
VIRTUAL MACHINE TIME MANAGEMENT The real processor simulates multiple virtual processors. Virtual machines that are executing in a conversational manner are given access
to the real processor more frequently than those that are not; these
conversational machines are assigned the smaller of two possible time
slices. CP determines execution characteristics of a virtual machine at
the end of each time slice on the basis of the recent frequency of its
console requests or terminal interrupts. The virtual machine is queued
for subsequent processor utilization according to whether it is a
conversational or nonconversational user of system resources.
A virtual machine can gain control of the processor only if it is not
waiting for some activity or resource. The virtual machine itself may
enter a virtual wait state after an input/output operation has begun.
The virtual machine cannot gain control of the real processor if it is
waiting for a page of storage, if it is waiting for an input/output
operation to be translated and started, or if it is waiting for a CP
command to finish execution.
A virtual machine can be assigned a priority of execution. Priority
is a parameter affecting the execution of a particular virtual machine
as compared with other virtual machines that have the same general
execution characteristics. Priority is a parameter in the virtual
machine's VM/370 directory entry. The system operator can reset the
value with the privilege class A SET command. VIRTUAL MACHINE STORAGE MANAGEMENT The normal and maximum storage sizes of a virtual machine are defined as
part of the virtual machine configuration in the V"/370 directory. You may redefine virtual storage size to any value that is a multiple of 4K
and not greater than the maximum defined value. V"/370 implements this
storage as virtual storage. The storage may appear as paged or unpaged
to the virtual machine, depending upon whether or not the extended
control mode option was specified for that virtual machine. This option
is required if operating systems that control virtual storage, such as OS/VS1 or VM/370, are run in the virtual machine.
Storage in the virtual machine is logically divided into 4096-byte
areas called pages. A complete set of segment and page tables is used
to describe the storage of each virtual machine. These tables are
updated by CP and reflect the allocation of virtual storage pages to
blocks of real storage. These page and segment tables allow virtual
storage addressing in a System/370 machine. Storage in the real machine
is logically and physically divided into 4096-byte areas called page
frames.
Only referenced virtual storage pages are teFt in real storage, thus
optimizing real storage utilization. Further, a page can be brought into
any available page frame; the necessary relccation is done during
program execution by a combination of VM/370 and dynamic address
translation on the System/370. The active pages from all logged on
virtual machines and from the pageable routines of CP compete for
available page frames. When the number of page frames available for
allocation falls below a threshold value, CP determines which virtual
storage pages currently allocated to real storage are relatively
inactive and initiates suitable page-out operations for them.
76 IBM V!/370 System Programmer's Guide
Previous Page Next Page