Implementation of hypervisor services in multi-constrained operating systems for multi-processor architectures
Lot of effort has been spent in recent years to implement multi Operating System (OS) support at run-time through virtualization. Many commercial solutions exist that mainly target non-critical applications and typical desktop operating systems intended for execution on multi-core computer architectures. The similar concept is however very much needed in embedded systems. Multi-constrained operating systems (such as real-time OS, but not only limited to this one only) will need the execution of a more general purpose OS to handle not only non-critical tasks, but to provide easy interfacing to whatever services are required to run the platform as a whole. In such scenario, a hypervisor could be used to manage shared resources, isolate the OSes from each other and insure the execution coherency. Such approach can be already found in today's smartphones where an RTOS handles critical communication tasks, while more generic OS handles other smartphone applications. Fundamental problem with the current state-of-the-art in the field is the scalability. The whole new approach is required if we consider many-core systems, and especially if these include heterogeneous (non-uniform) systems where different core can have different architecture (and hence instructions set). Major contribution of this PhD will be to bring many-heterogeneous-core computing paradigm in the development of an original hypervisor. Validation and characterisation of the actual contribution will be validated and quantified using several real-life application sourced from the industry.