I ran into this article on determinism by Kim Hartman while googling for something else. The point of the article is simple: determinism is important for embedded systems, faster processors don't change this. And while this is not news, Kim mentions virtualization (the use of Virtual Machines) on a single or multicore machine as a good way of adding real-time behavior to a non-realtime OS.
Virtualization to combine a real-time OS with a non-real-time OS is certainly one of the use cases that come up on a regular basis while talking to customers.
A hypervisor can provide virtualization and keep multiple different virtual machines with different operating systems separate. Either each running on it's own core of a multicore processor, or sharing a core (typically with the embedded RTOS at a higher priority).
One thing to consider here is device access. In a typical IT setting the hypervisor owns the devices and emulates a device for the guest. There is an additional layer of indirection between the actual hardware and the user in the guest. This layer of course can add additional delays and can harm determinism.
The Wind River Hypervisor solves this by giving the virtual machine direct access to the device. The Hypervisor does not 'own' the device, it merely creates an access window through which the virtual machine can access the device. This provides optimal performance while maintaining determinism.
Mark is a senior product manager with Wind River focusing on multicore and virtualization solutions. Prior to joining Wind River Mark has helped development teams build embedded systems across Asia, Europe and North America in automotive, telecom, consumer electronics and defense industries.

Comments