Software Virtualization Not All Virtualization Approaches are Suitable for Embedded Systems
Multi-core processors and virtualization bring major opportunities to system developers to cut costs and improve performance by consolidating multi-platform embedded systems onto a single computer platform running multiple operating systems. However, not all virtualization approaches are satisfactory for all applications.
Anbieter zum Thema

The secret to getting multiple operating systems to run on the same platform is to use virtualization techniques, whereby a hypervisor or virtual machine manager presents each operating system with its own separate version of the underlying machine’s software architecture.
Virtualization is implemented in different ways, and not all virtualization approaches are satisfactory for all applications. For example, some hypervisors virtualize the entire underlying machine, including its I/O, for each guest operating system. This approach may work for servers, where there is no real-time constraints that communications from an I/O device be handled by a within a set time interval, but it causes serious performance limitations in embedded applications that have real-time constraints.
Another difference between virtualization in the server environment and embedded virtualization is the need for embedded virtualization to combine operating systems of different types on the same system. As explained above, high performance embedded systems typically involve multiple processor platforms, each running an operating system that is tailored for the tasks it performs.
Embedded virtualization with RTOS and GPOS
Normally, there will be a real-time operating system (RTOS) running a control application on one platform alongside a general purpose operating system (GPOS) that’s implementing an advanced human-machine interface (HMI) and/or data processing software on another platform.
GPOS schedulers tend to prioritize tasks on a first come, first served basis while RTOS schedulers are event-prioritized. RTOS schedulers handle new interrupts immediately (unless they are masked), regardless of what other tasks are running. Therefore when a sensor or another data capturing device generates an interrupt, it is serviced at the speed that the CPU can service the interrupt every time, resulting in predictable and deterministic response time.
As mentioned above, combining a GPOS and RTOS on the same system can eliminate the cost of separate real-time computer modules, allowing the consolidation of “two-box” systems to one for some OEMs. Embedded virtualization has also opened the door to other OEMs who want to improve the usability of their control application by adding an advanced HMI without requiring an expensive two-box solution.
How embedded virtualization is implemented
Software environments that support embedded virtualization are not new, but hardware features implemented on microprocessors that make it easier to implement embedded virtualization are new. Without special hardware “hooks” that support the relocation of memory and I/O address spaces, the ability to run multiple OSes on a system requires a technique called paravirtualization.
Using paravirtualization techniques
Paravirtualization techniques refer to the use of software to translate memory addresses, I/O addresses, and interrupt vectors used by the virtualized OSes and applications in order for these to run on the same system. In effect, each OS’s environment needs to be moved “out of each other’s way.” Typically, paravirtualization requires that some modifications be made to code that is imported from the systems being combined, and hence its implementation is usually specific to the environment (OS, platform and application).

For example, to run two OSes on the same platform, one or both of the OSes and its associated application software are relocated in memory. The Figure shows the combination of the HMI (GPOS) and control system (RTOS). Loading the guest OS (RTOS) and associated application(s) is done by the virtual machine manager at system start-up. From that point onwards any memory address generated by the RTOS and the applications running on it must be adjusted by the memory load offset. This is done with paravirtualization techniques that edit memory tables and other memory vectors within the RTOS.
Artikelfiles und Artikellinks
(ID:23993490)