source: https://cseweb.ucsd.edu/classes/fa25/cse221-a/papers/vm370.pdf
Question
What was VM/370’s motivation for virtualizing the hardware? Trying to make a personal computer dedicated to a user so by extending time-sharing of a dedicated machine to with more isolation, to the user it seems like they own the computer. This lead to the idea of a virtual machine.
Introduction
VM/370 is an OS which provides its multiple users with seemingly separate and independent IBM System/370 computing systems.
- Contains three different OSes:
- Control Program (CP)
- OS that uses a computing machine to simulate multiple copies of the machine itself
- Conversational Monitor System (CMS)
- OS that supports the interactive use of a computing machine by one person, the typical OS used within each virtual machine (VM)
- Remote Spooling and Communications Subsystem (RSCS)
- OS used to provide information transfer among machines linked with communication facilities Key idea: perfect hardware compatibility at the ISA boundary
- Control Program (CP)
- privileged operations trap to CP
- problem-state code runs natively
- Multiple different OSes run concurrently, isolated from each other
Design Goals
- Production of VM identical to its real counterpart
- Meant to be a learning experience
- Modularity: split “resource control” (CP) from “user experience/tools” (CMS)
- VM cannot be compromised by the operation of any other VM
- private secure and reliable computing environment for its users
Control Program
General multiprogramming system that uses virtual machines to organize independent job streams
-
Each VM is identified by an entry in the CP directory
-
basically the hypervisor:
- created illusion of private CPU(s), memory, disks, and devices for every user
- S/370’s hardware Dynamic Address Translation (DAT) to map guest physical memory to real physical memory
- Trapped privileged instructions (I/O) and emulated their effects
- Scheduled multiple VMs concurrently, switching context between them’
-
Privileged instruction trapping
- Any s/370 privileged instruction caused a trap (exception), and CP emulated its effect safely
-
Device virtualization
Virtual devices mapped to either:- real hardware (dedicated), or
- spool files (simulated card reader/printer/tape).
-
Scheduler & dispatcher
CP’s scheduler gave each VM CPU time slices, switching among them. -
Shared disks and communication
CP allowed controlled sharing via “minidisks” (sub-volumes of real disks) and message passing.
Key feature of CP/CMS design: independence of each virtual machines
- all connections between VMs are explicitly defined and controlled by CP
Conversational Monitor System
Disk-file-oriented OS to support personal use of a dedicated computer
- Guest operating system to run in side VM