150 likes | 161 Views
Heterogeneous Multikernel OS. Yauhen Klimiankou BSUIR Evgeny.Klimenkov@gmail.com. Why new OS needed?. Why new OS needed?. Why new OS needed?. Great shift in computer system architecture. A lot of criticism accumulated in regard to the monolithic operating system design.
E N D
Heterogeneous Multikernel OS Yauhen Klimiankou BSUIR Evgeny.Klimenkov@gmail.com
Why new OS needed? Why new OS needed? Why new OS needed? • Great shift in computer system architecture. • A lot of criticism accumulated in regard to the monolithic operating system design. • Upcoming era of Internet of Things. • Great shift in computer system architecture. • A lot of criticism accumulated in regard to the monolithic operating system design. • Upcoming era of Internet of Things. • Great shift in computer system architecture. • A lot of criticism accumulated in regard to the monolithic operating system design. • Upcoming era of Internet of Things.
Hardware Hardware • Multicore and manycore computer systems • Heterogeneous computer systems. • Tight integration of devices into processor. • Modularization of computer system design in such a way that each module has its own computation resources.
Software Software Software Software • Monolithic kernel based OS • Lack of flexibility • Lack of reliability • Lack of scalability • Lack of security • Lack of simplicity • Lack of predictability • Microkernel based OS • Lack of performance (only one actual issue) • Monolithic kernel based OS • Lack of flexibility • Lack of reliability • Lack of scalability • Lack of security • Lack of simplicity • Lack of predictability • Microkernel based OS • Lack of performance (only one actual issue) • Monolithic kernel based OS • Lack of flexibility • Lack of reliability • Lack of scalability • Lack of security • Lack of simplicity • Lack of predictability • Microkernel based OS • Lack of performance (only one actual issue) • Monolithic kernel based OS • Lack of flexibility • Lack of reliability • Lack of scalability • Lack of security • Lack of simplicity • Lack of predictability • Microkernel based OS • Lack of performance (only one actual issue)
OS Design Development OS Design Development
OS Design Development OS Design Development
Role of the kernel in OS Role of the kernel in OS Role of the kernel in OS Role of the kernel in OS • Kernel is: • CPU Driver • Tasks execution container • Kernel functions are: • CPU and memory frame management. • Multitasking and IPC. • Hardware management interface. • Protection. • Inter-Kernel Communication • Kernel is: • CPU Driver • Tasks execution container • Kernel functions are: • CPU and memory frame management. • Multitasking and IPC. • Hardware management interface. • Protection. • Inter-Kernel Communication
Inter-Kernel Communication • Asynchronous message passing • Dynamical scope-based inter-kernel communication network
Main ideas Main ideas • Second generation microkernel as a base • Moving from static design to dynamic design • Moving from centralized design to decentralized design • Moving from one kernel design to many kernels design • Second generation microkernel as a base • Moving from static design to dynamic design • Moving from centralized design to decentralized design • Moving from one kernel design to many kernels design
Benefits • Simplicity of kernel implementation • More intensive use of CPU caches • Reducing the amount traffic and locks on the memory bus. • Ease of portability • The high level of configurability • Reducing the synchronization overhead on multiprocessor systems
Principal advantages • Improved flexibility/portability • Full software dynamics • Improved reliability and fault tolerance
Flexibility/Portability • Kernel Minimalism (Kernel is CPU driver) • Small footprint • Adequate for embedded systems that are highly restricted in resources • Native support of heterogeneous computer systems • Native support of UMA and NUMA computer systems • Possibly, will be useful for systems with advanced FPGA
Full software dynamics • Second generation microkernel as a base • Dynamics in space • Short-term dynamics in time • Long-term dynamics in time
Reliability/Fault tolerance • Second generation microkernel as a base • Distributed system design • Decentralization • Native support for functionality doubling • High-speed system recovery • No loss of context in case of failure