The Origin of the VM/370
• Xen or VMWare is not the first work in
Virtual machine architectures.
• VM/370 – OS that provides multiple users
with separate and independent IBM
system/370 computing systems
• VM/370 provides a single-user interactive
system for personal computing and
computer network system for information
• Lots of similarity between present day virtual
machine research and what VM/370
• VM/370 is
– Control Program (CP) : computing machine to
simulate multiple copies of the machine itself.
– Conversational Monitor System (CMS) :
Interactive use of system by one person.
– Remote Spooling and Communications
Subsystem (RSCS) : Information transfer among
machines linked with communication facilities.
OS evolution – Historical
• 1950’s – Programs were hand-crafted.
Running time was quite long compared to
user actions required.
• Simple job monitor systems to reduce cost
of idle time between different programs.
• OS – potion of machine dedicated to
programs which assisted in machine
OS evolution – Historical
perspective … contd
• CTSS – Batched job stream runs in background
even as several users enter commands to
prepare, execute and terminate their programs.
• Techniques were developed to support dynamic
allocation of machine and demand scheduling.
Interactive use became more important as batch
processing include modifications and extensions
to support interactive use.
Design Influences and goals
• CP/CMS evolved as experimental software
designed for “diverse activities” like OS
research, application development and
• CP-40 runs only on specific hardware. CP-
67 used address translation hardware.
• Interactive design – Importance of
character-by-character processing, editors.
• Safe sharing of machines among users and
programs were a major issue.
• CTSS – time-sharing with batch processing.
Time-sharing supervisor would steal and
restore machine without knowledge of
background programs. For things like user
interface, terminal control, disk file system
and attachment of other computers, CTSS
was very much the prototype.
Systems influence …contd
• CP/CMS differed in their modular design
compared to CTSS which involved a lot of
dependencies on supervisor.
• IBM System/360 combining scientific and
commercial instruction sets was considered a
• ISA was considered very important to develop a
flexible OS. Each user would have complete
capability of the entire system.
• System/360 involve two execution states:
privileged and problem.
‘Problem’ - Instructions used commonly by
‘Privileged’ – Instructions affect entire system
state. Machine blocks their execution and
transfer control to designated program.
Virtual memory influence
• Though multiple execution environments are
possible, programs cannot be moved within
memory. Demand scheduling places a need
for dynamic relocation of programs.
• Motivation - High cost/ speed of fast memory
and inconvenience of two-level store
manipulation. Memory was split into fixed-
length page frames
CP/CMS design goals
• Program refinement, test operation,
production use and program enhancement
at the OS level was not developed.
• Back-compatibility and space for future
development were considered important
goals to meet.
CP/CMS design goals …contd
• Virtual machines - cannot be
compromised, new functionalities can be
easily added. Modularity was an important
• Flexibility is easily obtained on virtual
machines. Specific features can be added
or removed from virtual domain with
The Control Program
• CP is an operating system which interprets
the instructions specified by the virtual
• CP - 1. Interface to virtual machines.
2. Support allocation and management
of rest of machine.
• Control of I/O channels, memory and CPU
require “sophisticated” methods.
The Control Program …contd
• Any virtual machine can be activated using
keyboard and terminal. CP can be controlled
to create/delete hardware components and
change machine configuration. Terminals
can be associated with specific virtual
• All connections between virtual machines
are explicitly through CP either via shared
memory or through I/O channels.
Conversational Monitor System
• Normal OS to support personal use of dedicated
• Main functionality of CMS is to provide the file-
system to manage permanent in information
stored on disk.
• Data sharing between users is through
connections established by CP.
• User programs can modify the system and use
privileged instructions. “It was designed to
support its own development and maintenance”.
• RSCS is interrupt-driven, multi-tasking system
used for data transfer among multiple
• It uses the communication links to send and
receive files in “store-and-forward fashion”
between real machines, virtual machines and
• Each virtual machine is identified by unique
names defined within CP directory. CP appears
as central node in star network with a virtual
machine at each point.
• This method employed by VM/370 is
useful within single machine.
• RSCS operated within a virtual machine
with attached communication links. Using
a two-tier address structure, unique
identifier for each connected system as
well, it transmits files among multiple
• VM/370 can be considered as a big step in
today’s world where virtualizing every part
of system is given importance.
• Virtual machine research is leading to a
point where test and production systems
coexist leading to smooth transition for a