Multi- and many-core processors commonly found in server-class systems are now increasingly popular in embedded platforms. Many of these processors feature hardware virtualization capabilities, such as the ARM Cortex A15, and x86 processors with Intel VT-x or AMD-V support. Hardware virtualization offers opportunities to partition physical resources, including processor cores, memory and I/O devices amongst guest virtual machines. For mixed criticality embedded systems it is possible to partition services with different timing and safety criticality levels across separate virtual machines that co-exist on the same hardware platform. However, traditional virtual machine systems are too expensive for time-critical services because of the costs of trapping into hypervisors to multiplex and manage machine physical resources on behalf of separate guests. For example, hypervisors are needed to schedule separate VMs on physical processor cores. Similarly, traditional hypervisors have relatively large memory footprints making them inappropriate for embedded systems.
In this talk, I will discuss the Quest system, which features a novel real-time VCPU scheduling framework. Building upon this, I will describe the Quest-V separation kernel, which partitions services of different criticalities into separate virtual machines, or sandboxes. Each sandbox encapsulates a subset of machine physical resources that it manages without requiring intervention of a hypervisor. Moreover, a hypervisor is not needed for normal operation, except to bootstrap the system and establish communication channels between sandboxes. The design of Quest-V makes it robust against faults that can render a traditional SMP system inoperable. Online fault detection and recovery policies allow the system to self-heal and recover without full system reboots.
Time permitting, I will show a brief demo of Quest-V. Additionally, I will show how my group has ported the non-virtualized version of our Quest system to the Intel Galileo boards, which were donated to BU for education work. We are currently developing an Arduino-enhanced API for our Quest-Galileo system, which could be useful in next-generation Internet-of-Thing (IoT) applications and smart devices.
Richard West is an Associate Professor of Computer Science at Boston University. His research interests encompass operating systems, real-time/embedded systems, resource management, kernels, system organization and structure, and hardware-software interaction. His current research focus is on the development of a new operating system, called Quest, and its sister system called Quest-V. While Quest is a real-time OS for multicore systems, Quest-V uses virtualization techniques to implement a safe and predictable OS as a distributed system on a chip.
In the past, Dr. West has collaborated with the resource management team at VMware, Inc. He worked on hypervisor scheduling, and cache modeling and management for multicore processors, which resulted in several patent submissions. One particular aspect of this work showed how to derive accurate cache occupancy predictions using hardware performance counters found on commodity processors. Dr. West holds a Ph.D and M.S from the Georgia Institute of Technology, USA, and an M.Eng from the University of Newcastle-upon-Tyne, England.