**3.2 Virtualization technologies**

The idea of computer system virtualization is not new, the earliest examples dates back to the 60s when IBM introduced the IBM 7044 and when Manchester University presented the Atlas project (one of the first world's supercomputers). These systems present the first rudimental example of demand paging and supervisor calls.

However, in the last ten years, the use of virtualization in modern data centers increased mainly due to contain operating. Virtualization is a technology that allows running several concurrent Operating System (OS) instances inside a single physical machine called host. The physical device is divided into multiple isolated virtual environments called guest system. A Virtual Machine (VM) is an instance of the physical machine and gives users the illusion of accessing the physical machine directly and each VM is a fully protected and isolated copy of the underlying system. Virtualization is thus used to reduce the hardware costs on one side and to improve the overall productivity by letting many more users work on it simultaneously. Moreover the global cost and electricity power consumption makes the virtualization adoption convenient. Furthermore, the server number can rationalized, while maintaining the functional capacity of the system. A virtualization layer provides the required infrastructural support exploiting lower-level hardware resources in order to create multiple independent virtual machines that are isolated from each other. This layer, traditionally called Virtual Machine Monitor, usually sits on top of the hardware and below the operating system.

The hypervisor, or Virtual Machine Manager (VMM), allows multiple operating systems to concurrently run on a single host computer. It is so named because it is conceptually one level higher than a supervisory program. A supervisory program or supervisor is usually part of an operating system, that controls the execution of other routines and regulates work

a hypervisor for shared access to the underlying hardware but integrates virtualization aware code into the OS itself. In a context of Para Virtualization the guest operating system must be aware of being run in a virtual environment. So the original operating system, in

Grid Infrastructure for Domain Decomposition Methods in Computational ElectroMagnetics 253

**Hardware Virtual Machine (HVM)** Hardware-assisted virtualization is a virtualization approach that enables efficient Full Virtualization using help from hardware capabilities. Last innovations in hardware, mainly in CPU, MMU and memory components (notably the Intel VT-x and AMD-V architectures), provide direct platform-level architectural support for OS virtualization. For some hypervisors (like Xen and KVM) it is possible to recompile Para Virtualized drivers inside the guest machine running in HVM environment and load those drivers into the running kernel to achieve Para Virtualized

As anticipated, several advantages ensue from virtualization use. The number reduction of physical servers is one of the most evident: the hardware (software) solution for virtualization allows multiple virtual machines running on one physical machine, moreover additional advantages are power consumption reduction, better fault tolerance, optimization of time needed for device installation and of the number of cabinets. Another advantage is that virtualization can be used to abstract hardware resources, since operating systems are closely related to the underlying hardware, several issues need to be taken into account when a server is moved or cloned, e.g., incompatible hardware, different drivers and so on. Another virtualization feature is the creation of abstraction levels such that the operating system does not see the actual physical hardware, but a virtualized one. Administrator can move or clone a system on other machines that run the same virtualization environment without worrying

Another important aspect is adaptability: if a company changes its priorities and needs, a service may become more important than another or may require more resources. Virtualization allows resource allocation to virtual hardware easily and quickly. Some companies maintain old servers with obsolete operating systems that cannot be moved to new servers as these OS would not be supported. In virtualized environments it is possible to run legacy systems allowing IT managers to get rid of old hardware no longer supported, and more prone to failure. In many cases it is appropriate to use virtualization to create test environments. It frequently happens that production systems need to be changed without knowledge about consequences, i.e., installing an operating system upgrade or a particular service pack is not a risk-free. Virtualization allows immediate replication of virtual machines

Like any other technology, the virtualization gives disadvantages that depends on the application scenario. The most important are performance overhead and presence of hardware virtualization. Each virtualization solution is decreasing the overall performance, such as disk access times or access to memory. Some critical applications may suffer from this overhead introduced by virtualization. Depending on the products used, some devices may not be used by virtual machines, such as serial and parallel ports, USB and Bluetooth

particular its kernel, is modified to run in a Para Virtualized environment.

I/O performance within an HVM guest.

about physical details (network and graphics cards, chipsets, etc.).

**3.2.1 Virtualization considerations**

in order to run all necessary tests.

interfaces, or graphics acceleration hardware.

Fig. 3. Virtualization approaches.

scheduling, input/output operations, error actions, and similar functions and regulates the flow of work in a data processing system. The supervisor is generally called kernel. The hypervisor presents to the guest OS a virtual hardware platform and manages the execution of the guest OS. Multiple instances of different operating systems may share the virtualized hardware resources. Hypervisors are installed on server hardware whose only task is to run guest operating systems. Non hypervisor virtualization systems are used for similar tasks on dedicated server hardware, but also commonly on desktop, portable and even handheld computers. There are three popular approaches to server virtualization: Full Virtualization, Para Virtualization and virtualization with hardware support (Hardware Virtual Machine, or HVM).

**Full Virtualization** provides emulation of the underlying platform on which a guest operating system and application set run without modifications and unaware that the platform is virtualized. This approach is idealistic, in real world scenarios virtualization comes with costs.

Providing a Full Virtualization implies that every platform device is emulated with enough details to permit the guest OS to manipulate them at their native level (such as register-level interfaces). Moreover, it allows administrators to create guests that use different operating systems. These guests have no knowledge about the host OS since they are not aware that the hardware they see is not real but emulated. The guests, however, require real computing resources from the host, so they use a hypervisor to coordinate instructions to the CPU. The hypervisor provides virtual machine to show all the needed hardware to start and run the operating system. Via a virtual bios, it shows CPU, RAM and storage devices. The main advantage of this paradigm concerns the ability to run virtual machines on all popular operating systems without requiring them to be modified since the emulated hardware is completely transparent.

**Para Virtualization Machine** approach is based on the host-guest paradigm and uses a virtual machine monitor. In this model the hypervisor modifies the guest operating system's code in order to run as a guest operating system in a specific virtual machine environment. Like virtual machines, Para Virtual Machines are able to run multiple operating systems. The main advantage of this approach is the execution speed, always faster than HVM and Full Virtualization approach. The Para Virtualization method uses a hypervisor for shared access to the underlying hardware but integrates virtualization aware code into the OS itself. In a context of Para Virtualization the guest operating system must be aware of being run in a virtual environment. So the original operating system, in particular its kernel, is modified to run in a Para Virtualized environment.

**Hardware Virtual Machine (HVM)** Hardware-assisted virtualization is a virtualization approach that enables efficient Full Virtualization using help from hardware capabilities. Last innovations in hardware, mainly in CPU, MMU and memory components (notably the Intel VT-x and AMD-V architectures), provide direct platform-level architectural support for OS virtualization. For some hypervisors (like Xen and KVM) it is possible to recompile Para Virtualized drivers inside the guest machine running in HVM environment and load those drivers into the running kernel to achieve Para Virtualized I/O performance within an HVM guest.
