Conventional System Architectures
Today, virtually all computer systems are composed of the three major components: hardware, the operating system, and application programs, as is shown in the figure below that illustrates interaction between the components and the interfaces. Clearly, the conventional architecture has a lot of advantages as has been proven by its popularity and persistence over the years. However, with the increasing complexities of the hardware and software elements and wide variety of applications being developed, significant disadvantages have become increasingly evident. Major components can work only in proper combinations. Application software compiled for a particular Instruction Set Architecture (ISA) will not run on hardware that implements a different ISA. For example, Apple Macintosh application binaries will not directly execute on an Intel processor. Even if the underlying ISA is the same, applications compiled for one operating system will not run if a different operating system is used.

(a) Three popular computer systems composed on different ISAs, OSes and Applications. [Courtesy of SMI 01]
(b) Although highly modular the major system components are not inter-operable. [Courtesy of SMI 01]
GEMS for Virtual Machines (VM)
To solve the problems with conventional system architectures, special “coupling” software can be used to connect the major components. This software translates the ISA so that conventional software “sees” one ISA while the hardware supports another. In effect, the hardware plus translating software presents a Virtual Machine (VM) to the conventional software. This is in contrast to the underlying hardware that is a real machine. Consequently, we refer to all such coupling software as “virtual machine software”. [Courtesy of SMI 01]
The following features of virtual machines make them highly suitable for usage in grid environments
Security
Interoperability
Isolation
Ease of management
Efficient resource sharing
The HCS lab is collaborating with the Advanced Computing and Information Systems (ACIS) lab at the University of Florida to build VM-Shop, a virtual machines-based management software for grids. VM-shop can loan virtual machines to applications and other users based on resource and configuration requirements.
For example, an application from a remote site might request for a machine with floppy drive, 512MB memory, Linux OS and loaded with MATLAB. Such a VM will be dynamically created and loaded into a physical machine (which might be already hosting other VMs). Subsequently, access will be granted to the application for this VM and perhaps others.

The primary idea of this collaboration is to enhance the monitoring capability of GEMS and integrate it into VM-Shop for efficient management of both physical and virtual resources. GEMS will include features to monitor VM-specific parameters such as heartbeat, status, etc. GEMS must run on VMs and on physical machines (PM) to monitor the resource usage and hence pick the target PM or VM for execution of jobs. The VMs are driven by specific configuration files describing the characteristics and features of the VM. The configuration files should now include GEMS as an application embedded in the VM and run as a daemon when the VM is turned on. Presently, the parameters required for efficient management of VM allocation and maintenance are being investigated.
SMI 01: J. E. Smith, "An overview of virtual machine architectures," October 27, 2001.