Design and implementation of the heterogeneous multikernel

advertisement
Heterogeneous Multikernel OS
Yauhen Klimiankou
BSUIR
Evgeny.Klimenkov@gmail.com
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.
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
• 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
Application
Application
Application
Kernel
Kernel
Kernel
Monolithic
Kernel
First
generation
Microkernel
Second
Generation
Microkernel
OS Design Development
Application
Application
Application
Application
Kernel
Kernel
Kernel
Monolithic
Kernel
First
generation
Microkernel
Second
Generation
Microkernel
Multikernel
Multikernel OS Structure
Kernel A
CPU A
Kernel B
A
B
CPU B
IKC space
Kenrel C
C
CPU C
D
Kernel D
CPU D
Pool of RAM
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
Inter-Kernel Communication
• Asynchronous message passing
• Dynamical scope-based inter-kernel
communication network
A
- Communication Scope
- Communication Agent
B
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
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
Download