Browse Prior Art Database

Virtual Machine Simulation on Nonvirtualizable Computing Machines

IP.com Disclosure Number: IPCOM000087410D
Original Publication Date: 1977-Jan-01
Included in the Prior Art Database: 2005-Mar-03
Document File: 4 page(s) / 33K

Publishing Venue

IBM

Related People

Elliott, TM: AUTHOR [+2]

Abstract

This article describes how to provide virtual machines on a data processor not designed to support virtual machines. The requirements needed by a data processor to support the programming of virtual machines (in the sense of the IBM VM/370) are described in reference [*]. That paper refers to machines having "supervisor" and "user" modes of execution, and "privileged" and "nonprivileged" instruction types. If a privileged instruction is issued by a program running in the user mode, the instruction is "trapped" (i.e., the control program gets control via an interrupt, and the privileged instruction is not executed). Relating these architecture characteristics to "virtual machines", the paper defines a class of instructions called "sensitive" instructions.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 39% of the total text.

Page 1 of 4

Virtual Machine Simulation on Nonvirtualizable Computing Machines

This article describes how to provide virtual machines on a data processor not designed to support virtual machines. The requirements needed by a data processor to support the programming of virtual machines (in the sense of the IBM VM/370) are described in reference [*]. That paper refers to machines having "supervisor" and "user" modes of execution, and "privileged" and "nonprivileged" instruction types. If a privileged instruction is issued by a program running in the user mode, the instruction is "trapped" (i.e., the control program gets control via an interrupt, and the privileged instruction is not executed). Relating these architecture characteristics to "virtual machines", the paper defines a class of instructions called "sensitive" instructions. A sensitive instruction either changes the amount of resources available to the program that issued it, or is dependent (for proper execution) on a fixed location in real storage or the mode of execution. The conclusion in the paper is that for a virtual machine to be constructed using a given architecture, the sensitive instructions of that architecture must all be privileged instructions.

The intuitive reason for this conclusion can best be described by illustrating how a system which creates virtual machines works. The VM/370 is a current IBM product which can support plural virtual machines on a S/370 processor, and therefore, it will be used as the example.

The VM/370 Control Program runs in the supervisor state, so it may issue any valid S/370 instruction. However, it runs each virtual machine in the problem program state. Any program may be run as a virtual machine, including an operating system which normally issues sensitive instructions, such as Load PSW. When one of these programs is running, most instructions run unchanged on the machine. However, when a Load PSW (program status word) instruction is encountered, for example, it is not executed (because it is privileged, and the virtual machine is running in problem program state), but it causes the VM/370 Control Program to receive control via a program interrupt. This is referred to as "intercepting" the Load PSW instruction. The VM/370 then simulates the effect of Load PSW and returns control to the next instruction of the virtual machine. Since on S/370 all the sensitive instructions are privileged, VM/370 can safely intercept these instructions and simulate them without any action or cognizance on the part of the programs running as virtual machines.

An example of a nonvirtualizable machine is as follows: Suppose a processor having an architecture different from S/370 exists, which includes a pair of nonprivileged instructions DISPLAY CONFIGURATION TABLE and MODIFY CONFIGURATION TABLE. These instructions operate on a unique hardware/microcode-defined table which lists, among other things, the amount of main storage available (on-line) to the system.

...