文档介绍:1 Distributed Virtual Machines for Scientific Programming
Distributed programming has been recognized as a sub discipline puter science for almost half a
century, although it has not evolved into an puting technology until the last decade. During
the long history, distributed programs have traditionally required support that the operating system (OS) did
not provide – at least not directly. This stimulated research and development in software that would extend
the behavior of the OS, yet not be a part of the OS. Traditionally such extensions have been libraries of
new functions such as buffered I/O routines, graphics functions, and so on. Runtime libraries (also called
runtime systems) are built to support the execution of programs in a specific language, for example the C
runtime library implements a set of functions on which the language depends for correct operation.
Virtual machines are a step in abstraction over traditional libraries and runtime systems, even though
they are generally implemented with libraries. A virtual machine is a software abstraction of an
underlying machine that defines an application program’s runtime environment. Intuitively, a virtual
machine is distinguished from a runtime system in that the virtual machine middleware can be moved from
one platform to another, providing the same application programming interface (API) to the application
programs. Even with this informal definition, there are other virtual machines that capture the spirit of the
definition, but which allow some aspects of the platform to be visible at the API: For example, there is little
disagreement that an OS is a virtual machine that provides abstractions for the CPU, memory and devices;
however it does not abstract away the user mode instruction set. In this example, the program uses system
calls (trap instructions) to invoke OS virtual machine instructions, and user mode instructions for all other
operations.
It is also p