Previous Topic: 2. USAGE GUIDELINES

Next Topic: 2.2 Product Use

2.1 Operating System Concepts


The VM operating system provides a simulation of hardware
facilities for operating systems and applications to use.
Operating systems such as MVS, VSE, and VM that run natively
can run in a virtual machine under VM.  VM provides virtual
machine, time sharing, networking, and diagnostic support for
IBM OS390 and z/OS systems.

Since its inception in the early 1970s, the VM operating
system has rapidly increased its popularity and services
among the IBM user community.  Running on machines from the
smallest IBM 9370 to the largest IBM ES/9000, the VM
interface addresses the diverse needs of its user groups.

VM's interactive CMS subsystem has also served to increase
the use of the VM operating system.  CMS's simplicity of use
and numerous products that operate under it -- SAS, PROFS,
FORTRAN, APL, and CICS, to name a few -- have resulted in the
expansion of the VM user community.


THE ENVIRONMENT PROVIDED BY VM

VM has two principal components:  CP and CMS. CP (Control
Program) runs in a real machine and can simulate concurrent
operation of multiple virtual machines.  CP is primarily a
real machine resource manager.  CMS (Conversational Monitor
System) provides the online interface to the system.  CMS
operates only in a virtual machine, and together with CP,
provides a time-sharing system suitable for program
development, problem solving, and general time-sharing work.
Some of other VM components are:

   RSCS - for inter-network data transfer
   PVM  - for networking VM terminals
   VSCS - for networking VM terminals using VTAM

VM also provides services that handles communication between
multiple systems using TSAF (Transparent System Access
Facility) and APPC/VM.  APPC/VM VTAM (AVS) lets application
programs using APPC/VM or CPI Communications communicate with
programs anywhere in a SNA network.

VM provides an environment in which several copies of the
same operating system or of different operating systems can
run concurrently.  These systems all have a unique structure
internally and perform different functions (or similar
functions in a different manner).  The environment provided
by VM comprises the following categories:


HARDWARE INTERFACE

   CPU     - The operating system can use privileged
             instructions to control the CPU.

   storage - The operating system can manage storage
             allocated to it in any way, including setting
             storage keys and resetting reference bits.

   I/O     - The operating system can construct channel
             programs and initiate I/O instructions to read
             and write on any recording medium.


SERVICES

VM controls the real environment (CPUs, storage, and I/O
devices).  To do this, it runs in supervisor state.  This
allows VM to issue any instruction that is valid for the
model of processor on which it is running.  To maintain the
integrity of its own code, to protect the code in one virtual
machine from damage by another, and to prevent unauthorized
modification of the real environment by virtual machines, VM
runs virtual machines in real problem state.  This means that
when the virtual machine issues an instruction that is valid
only in supervisor state, the hardware intercepts the
instruction and passes control to VM.  VM then provides any
management services required for the instruction to execute
properly in the real environment.  This is necessary because
the operating system in a virtual machine behaves as though
it owns the real environment and issues supervisor or
privileged instructions.

 Paging  - VM provides real storage management for virtual
           machines that do not have real storage dedicated
           to them as a part of system generation.  VM
           implements demand and block paging and manages
           data caching in real storage and expanded storage.
           VM allows pages in real storage to be nonpageable
           (locked), eliminating the need to page the locked
           frames.  VM also allows part of real storage to be
           reserved for use by a virtual machine so that it
           is shielded from storage contention by other
           virtual machines.

 I/O     - VM initiates all I/O operations in the real
           machine.  VM provides real device management
           services through the translation of virtual device
           addresses to real device addresses, and of storage
           references in channel programs into real
           addresses.  VM allows DASD to be partitioned for
           use by several virtual machines, and provides for
           relocation of the cylinder or block reference in
           the virtual channel program to the real cylinder
           or block on the device.  VM also provides
           interfaces for synchronous and asynchronous I/O
           that reduce the work required within a virtual
           machine to perform I/O.  VM will also simulate
           channel-to-channel adapters (CTCA) so that two
           virtual machines can communicate with each other.
           No real CTCA is required for this.

 Spool   - VM can simulate unit record devices for a
           virtual machine, providing read access to the VM
           spool via a virtual reader device and providing
           write access to the spool via a virtual punch or
           print device.  These virtual unit record devices
           do not have to have a real counterpart on the
           system.  A facility is also provided that allows
           the recording of virtual console traffic to a
           spool file for subsequent reference.

 Communications - VM provides the ability for virtual
           machines to set up communications between with
           each other.  This is accomplished by means of VMCF
           (virtual machine communication facility) and IUCV
           (interuser communications vehicle).  IUCV is also
           used by VM to provide services such as access to
           VTAM or a security package, and to allow a virtual
           machine to trap messages that would otherwise be
           displayed on its virtual console.

  Assists:
   VMA   - VMA (virtual machine assist) is a microcode
           enhancement for VM that reduces or eliminates the
           need for CP to provide instruction simulation for
           virtual machines.

   PMA   - PMA (preferred machine assist) assist allows a MVS
           guest single preferred to run in real supervisor
           mode, eliminating the requirement for VM to handle
           I/O initiated by the guest to any device on a
           channel that has been set aside for that purpose.
           The only time VM intercepts the guest is when I/O
           is done to some device managed by CP or when some
           other CP service is required.

   SIE   - SIE (start interpretive execution) is used by CP
           to allow a virtual machine access to the real
           hardware facilities.  SIE eliminates much of the
           CP processing on simulating most privilege
           instructions and certain interrupts for a virtual
           machine by performing these functions by way of
           hardware.

   SIE   - SIE Assist provides additional performance Assist
           enhancements for a virtual machine that has
           exclusive control of a real device by eliminating
           the need for CP to intercept the I/O for integrity
           checking.

   MHPGS - MHPGS (multiple high performance guest support)
           provides VM with the ability to have more than one
           guest that has virtual storage mapped directly to
           virtual storage.  The guest which is given control
           of real page zero is called the V=R (virtual=real)
           guest and the other guests that have this
           virtual-to-real storage mapping are called V=F
           (virtual=fixed) guests.  VM/ESA preferred machine
           recovery is available only for the V=R guest.


IMPLICATIONS FOR MEASUREMENT

VM provides measurement data in two basic forms:  account
data and monitor data.  The account data is formatted in
80-byte card images and provides information suitable for
accounting and chargeback.  The monitor data is formatted as
variable length records and provides information suitable for
performance analysis and capacity management and planning.

VM views the virtual machine at the simulated hardware level.
It does not know the unique internal structures, code paths,
or algorithms used by the software running in the virtual
machine.  Therefore, VM can provide measurements of system
use only to the level of resource use that it understands:
the virtual machine.  A transaction within the virtual
machine is not recognized by VM as a transaction in the same
way that the operating system within the virtual machine
recognizes it.  This means that VM cannot measure this
activity as a transaction in a manner that provides meaning
as a measurement of virtual transaction resource consumption
or elapsed time.

VM measures transactions from internal perspective: a
transaction is a piece of work from the time that a virtual
machine is dispatched until the time it is dropped from the
dispatch queue.  VM provides measurements of resource
consumption by the virtual machine, and measurements of
resources required to manage the virtual machine within VM.
VM also provides overall system measurements of real device
activity, storage use and management, scheduler activity, and
system performance.