|
As in the desktop, mobile, or IT server domains, embedded systems and communications infrastructure equipment can also
realize several benefits from virtualizing the hardware execution environment, so that multiple operating systems (OSs)
can share the common resources of the hardware platform. These benefits may be realized in terms of cost reduction
(either by reducing capital costs or operational costs), in terms of increased performance and functionality, or in
terms of increased system reliability and security. There are also several different "usage models" (mechanisms by which
virtualization can be used) which provide these benefits. In this paper we survey several of these models within
embedded and communication systems.
Regardless of the mechanism by which virtualization is used, one commonality between usage models is that it is always
necessary for an additional layer of software to exist that schedules the operating systems which share the hardware
platform, manages the resources assigned to each OS, and saves/restores state when context switching between the OSs. In
this way each OS executes within a "virtual machine" (VM) rather than on a physical machine. This additional layer of
software, the Virtual Machine Monitor (VMM), manages the execution of OSs in much the same way that OSs manage the
execution of applications.
Although the existence of a VMM is common to all usage models, we shall see that the architecture of these VMMs is
tailored to the constraints of the market segments they address, and that different design decisions must be made to optimize
the VMM for the specific requirements of each market segment. It is not only the VMM that is tailored to different market segments, but
also the OSs that execute within the VMs that must be tailored to the requirements of these market segments. Whereas a General
Purpose-Operating System (GPOS) such as Linux*, Microsoft Windows* or Microsoft Windows Server* addresses the
requirements of desktop or IT server environments, a different class of OSthe Real-Time Operating System (RTOS)is
required to address the requirements of embedded and communications systems. As we shall see, providing specific real-
time behaviors in a virtualized environment becomes an overriding factor in embedded system design.
|