Towards co-existing of Linux and real-time OSesHitoshi Mitake
The capability of real-time resource management in the Linux kernel is quickly improving due to the active contribution of the real-time Linux community. However, reusing existing real-time application software is required to develop commercial products without significantly increasing the cost of products because existing real-time applications run on real-time OSes whose OS API is significantly different from the POSIX interface. A virtual machine monitor that executes multiple operating system simultaneously is a promising solution, but existing virtual machine monitors such as Xen and KVM are hard to be used for embedded systems due to their complexities and throughput oriented design.
In this paper, we introduce a lightweight processor abstraction layer named SPUMONE. SPUMONE provides virtual CPUs (vCPUs) for its guest OSes, and schedules them according to their priorities. In the typical case, SPUMONE schedules a RTOS with a higher priority than Linux. The important features of SPUMONE are the exploitation of an interrupt prioritizing mechanism and a virtual CPU migration mechanism that improve real-time capabilities in order to make the virtual machine monitor more suitable for embedded systems. We also discuss why the traditional virtual machine monitor design is not appropriate for embedded systems, and how the features of SPUMONE allow us to design modern complex embedded systems with less efforts.