Design Article

Is virtualization right for your application?

Casey Weltzin, National Instruments

9/20/2009 12:00 PM EDT

Any electrical or computer engineer that reads industry publications today has likely seen the word "virtualization" enough times to know that it's a hot topic. In fact, a quick search of embedded.com yields over 200 results for the buzz word. How real is this trend? Does virtualization provide real savings? This article will attempt to answer these questions by outlining the major engineering use cases for virtualization, discussing how it impacts performance, and addressing a topic that is critical in engineering designs: hardware I/O. The goal is to allow you to make a straightforward assessment of virtualization technology for your application--independent of the hype.

Note that on December 8-10, National Instruments and Intel will present a webinar series on Embedded Virtualization.

To fully understand the performance implications of using virtualization in your own designs, it helps to know the basic principles that make virtualization hardware and software. The basic goal of virtualization is to run multiple operating systems in parallel on one computer such that no individual operating system affects the others in any way. In simple terms, any individual operating system (called a virtual machine) cannot be allowed to affect shared system resources except in very special circumstances. For example, envision several operating systems inadvertently accessing the same memory location at the same time. This situation would be a nightmare to debug, as any operating system could overwrite the stored value at any time.

The key component required to make virtualization work is a piece of software called a virtual machine monitor (VMM), also known as a hypervisor. See Figure 1 for a conceptual representation of how this software fits into a virtualized system. The VMM's mission is straightforward: prevent individual operating systems (virtual machines or VMs) from altering shared system state, therefore making sure that conflicts do not occur. In more exact terms, a VMM cannot allow individual VMs to independently execute "privileged instructions" such as accessing memory or I/O devices that could potentially conflict with other VMs accessing the same resource.

Note that there are two basic categories of VMM software: hosted and bare-metal. Because hosted VMM solutions (such as VMWare Workstation) rely on a host operating system for scheduling and I/O access, they are generally not a good fit for deployed engineering applications. Therefore, we will focus on bare-metal VMM software for the remainder of this piece.


Next:




rbeisang

9/22/2009 10:41 AM EDT

Can a knowlegable person comment on the following please?
We think we want to virtualize an application which would create a portable application, OS and all, that would be independant of hardware. The goal being we could deploy this on any PC hardware and it would run without the issues with drivers and chipset specific needs of a particular PC. If the PC crashes 4 years later we take any current PC and put our virtualized application on it and run. Is that possible?

Sign in to Reply



vspurlin

9/22/2009 11:27 AM EDT

rbeisang, you just described a virtual appliance (hosted OS with preinstalled user applications). The VMM runs on any PC, while the virtual appliance accesses system resources through a simplified, standardized set of virtualized resources. For example, to the appliance, all disk appears to be SCSI.

Sign in to Reply



galvano

12/20/2009 1:20 AM EST

daer sir i am a embded system designer i have design many complex systems but my systems are fail some time in industry due to noise so mostly microcontroler hang or disturb its function so please guide me regaring this issu i have well control on software and watchdog timer control so please help me in this matter
thanks and regards
email farooq@galvanosci.com.pk

Sign in to Reply



EEcap

1/5/2010 9:30 PM EST

I could be wrong but isn’t that the whole idea behind Java; “write once; run anywhere” ? The Java virtual machine allows platform neutral code. Java was originally designed to be embedded in consumer electronic devices. The internet just accelerated in popularity.

Sign in to Reply



Please sign in to post comment

Navigate to related information

Datasheets.com Parts Search

185 million searchable parts
(please enter a part number or hit search to begin)

Feedback Form