Heterogeneous Multikernel OS Yauhen Klimiankou BSUIR Evgeny.Klimenkov@gmail.com.

Post on 02-Jan-2016

216 views 0 download

Tags:

Transcript of Heterogeneous Multikernel OS Yauhen Klimiankou BSUIR Evgeny.Klimenkov@gmail.com.

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.

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.

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.

Hardware

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)

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)

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)

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 DevelopmentOS Design Development

Application

Kernel

Application

Kernel

Application

Kernel

Monolithic Kernel

First generation Microkernel

Second Generation Microkernel

OS Design Development

Application

Kernel

Application

Kernel

Application

Kernel

Monolithic Kernel

First generation Microkernel

Second Generation Microkernel

Multikernel

Application

OS Design Development

Multikernel OS Structure

CPU C

CPU A CPU B

CPU D

Kenrel C Kernel D

Kernel BKernel A

A B

IKC space

C 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

Role of the kernel in OSRole 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

Role of the kernel in OS

Inter-Kernel Communication

• Asynchronous message passing

• Dynamical scope-based inter-kernel communication network

A B

- Communication Scope

- Communication Agent

• 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

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

Main ideas

• 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

Benefits

• Improved flexibility/portability

• Full software dynamics

• Improved reliability and fault tolerance

Principal advantages

• 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

Flexibility/Portability

• Second generation microkernel as a base

• Dynamics in space

• Short-term dynamics in time

• Long-term dynamics in time

Full software dynamics

• 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

Reliability/Fault tolerance