Virtualization is a technology that allows running two or more operating systems side-by-side on just one PC or embedded controller, and it is rapidly being adopted in the engineering world. While the word “virtualization” is simply another term for abstraction, in practice it allows engineers to save cost, reduce footprint, and consolidate systems in ways that were not previously possible.
For example, consider a common engineering application that can benefit from virtualization (running multiple operating systems in parallel). Today, many designers need to take advantage of real-time processing or control while providing a graphical user interface. While traditionally this would have required two physical computers (one for each operating system), virtualization enables running both operating systems on the same PC or embedded controller. Eliminating the need for an extra computer means a better integrated overall system, a savings in cost, and a reduction in footprint.
Virtualization can also help engineers better utilize their available processing hardware to build more efficient systems. As multicore processors with 4, 8, and 16 cores on a chip become commonplace, many processor cores are likely to be underutilized in a typical system. Most applications will have only a finite amount of parallel tasks that can be executed at a given time, leaving many processor cores idle. Virtualization software can help solve this challenge by allocating groups of processor cores to individual operating systems running in parallel. Simply put, virtualization allows processing that would have been achieved on multiple computers to run on just one powerful multicore processor.
It is important to note that virtualization is not only being used in the engineering domain. Many information technology (IT) companies have used virtualization to consolidate large groups of servers at a savings that can reach millions of dollars. This paper will specifically outline the major benefits that virtualization can provide engineers, and provide an introduction to the types of virtualization software on the market today.
2. Virtualization Benefits
Save Hardware Cost and Footprint
Virtualization provides the ability to take advantage of multiple operating systems on one physical PC or embedded controller, without investing in a separate computer for every OS. This allows engineers to buy less hardware and reduce overall system footprint (which is especially important in deployed applications).
Take Advantage of Operating System Services
With virtualization it is possible to take advantage of the capabilities offered by different operating systems on just one set of hardware. For example, a designer may wish to use graphics services provided by Windows in conjunction with deterministic processing provided by a real-time OS such as LabVIEW Real-Time.
Make Use of Multicore Processors
Virtualization software can allow users to directly assign groups of processor cores to individual operating systems. For example, if an engineer wishes to use Linux and a real-time OS, more CPU and memory resources can be allocated to the real-time OS to optimize performance. Running virtualization software on a given computer allows designers to make the most of their processing resources by keeping processor cores busy.
Test Beta Software and Maintain Legacy Applications
The ability to run two or more operating systems side-by-side means that programmers can test new releases of software without the need for dedicated test machines. If beta software corrupts a given operating system, a parallel operating system running on the same computer can still be used for development.
In addition, virtualization can help extend support for legacy applications and operating systems to new hardware. By running both legacy and new operating systems on the same PC or embedded controller (e.g. Windows 95 and Vista), engineers can reuse legacy applications and reduce the need to port programs to different operating systems.
Increase System Security
Since individual operating systems running on a virtualized machine can be isolated from each other, virtualization is one way to create secure machines (e.g. for military applications). This reduces the need for multiple physical computers that operate at different security levels but are not fully utilized.
3. Virtualization Software
To virtualize a given computer, a piece of software called a virtual machine monitor (VMM) must be installed. This software is also commonly referred to as a hypervisor. After this VMM software is installed, individual virtual computers (called virtual machines or VMs) can be run on the same hardware. Note that each virtual machine can run its own operating system, applications, etc. – the goal is to make each VM act like a standalone machine would.
Figure 1. Virtual machine monitor software (VMM) enables running multiple operating systems (virtual machines) in parallel on the same computer.
There are two major virtualization architectures that can be used when installing virtualization software, hosted and bare-metal. Essentially, a VMM can be installed either on top of a host operating system (such as Windows), or directly on hardware for more low-level access. Hosted virtualization is typically used during the development process, where running virtual machines on top of a host OS can help engineers test beta software, make use of legacy applications, or run software created for a different operating system.
Figure 2. In the hosted virtualization architecture, virtual machine monitor (VMM) software is installed on a host operating system.
Bare-metal virtualization, on the other hand, can be advantageous for deployed applications. Using bare-metal virtualization enables real-time operating systems to run inside virtual machines, and provides more options for I/O access than a hosted architecture. For an in-depth description of these two architectures and their benefits, see the Virtualization Technology Under the Hood white paper.
Figure 3. The bare-metal virtualization architecture is based on a virtual machine monitor (VMM) installed directly on system hardware.
By enabling multiple operating systems to run in parallel on the same computer, virtualization can provide a variety of benefits to engineering applications. Designers can make use of virtualization in the development process to test beta software without using a dedicated machine, and to maintain legacy applications. In addition, virtualization can reduce hardware requirements for deployed applications that make use of multiple operating systems (e.g. a general purpose OS and real-time OS). As the trend towards multicore processing continues, engineers that make use of virtualization can save cost and reduce footprint as they make better use of the processing power of just one physical computer.
5. Additional Resources
For more information on both virtualization and multicore technologies, visit the following resources.