kit – the cooperation of forschungszentrum karlsruhe gmbh and universität karlsruhe (th) system...

Post on 05-Jan-2016

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

KIT – The cooperation of Forschungszentrum Karlsruhe GmbH and Universität Karlsruhe (TH)

SYSTEM ARCHITECTURE GROUP, KARLSRUHE UNIVERSITY

A Microkernel API for Fine-grained Decomposition

Sebastian Reichelt, Jan Stoess, Frank Bellosa

Component model

Interfaces

Microkernel

OS Decomposition

Sebastian Reichelt, Jan Stoess, Frank BellosaA Microkernel API for Fine-grained Decomposition

2/11

Kernel

Packets

Microkernel

ThreadsAddress spaces

IPC

ThreadsAddress spaces

IPC

TCP/IP stack

Device driver

ThreadsThreads

IPC

Address spaces

Data location?Data transfer?

Split state?System

knowledge?

Ease of development?

Reuse?Granularity?

Microkernel

Our Approach

Sebastian Reichelt, Jan Stoess, Frank BellosaA Microkernel API for Fine-grained Decomposition

3/11

Packets

Microkernel

Component model

TCP/IP stack

Device driver

Interfaces

Function calls

Servers

Local objects

Function calls

Local objects

References

Servers

References

Component model

Data location?Data transfer?

Split state?System

knowledge?

Designing for Decomposition

Sebastian Reichelt, Jan Stoess, Frank BellosaA Microkernel API for Fine-grained Decomposition

4/11

Server

Existing microkernels:Microkernel

ThreadsAddress spaces

IPCCreate thread

Send IPC

Receive IPC

TaskTask

Task Task

Server

Our microkernel: Component model

ServersLocal objects

ReferencesProvided interface

Required interfaces

Threading options

Component Component

ComponentComponent

Reference Management

Sebastian Reichelt, Jan Stoess, Frank BellosaA Microkernel API for Fine-grained Decomposition

5/11

Microkernel

Reference Management

Sebastian Reichelt, Jan Stoess, Frank BellosaA Microkernel API for Fine-grained Decomposition

6/11

openconnection

TCP/IP stack

TCP connection

send packet

Client

Microkernel

Prototype

Multi-server OS (~4 man-months)Basic servers (memory, scheduling, ...)

Drivers (standard PC hardware, PCI, Ethernet)

Decomposed TCP/IP stack

Linux ABI implementation (partial)

Kernel (~2 man-months)IA-32 implementation

Servers in kernel mode

Sebastian Reichelt, Jan Stoess, Frank BellosaA Microkernel API for Fine-grained Decomposition

7/11

Linux

lwIP

Evaluation: granularity, reuse, performance

Granularity

Sebastian Reichelt, Jan Stoess, Frank BellosaA Microkernel API for Fine-grained Decomposition

8/11

Minimum Maximum Average

Lines of code 27 1363 306

Bytes 280 13588 2907

Linux ABI layer

As fine-granular as desired

Size of a server:

Reuse

Sebastian Reichelt, Jan Stoess, Frank BellosaA Microkernel API for Fine-grained Decomposition

9/11

RTL-8139 driver ported from Linux (~1 man-month):

lines of code

e.g. calls via interfacesinstead of directly

queue-basedpacket processing

Reuse possible with little effort

Performance

Sebastian Reichelt, Jan Stoess, Frank BellosaA Microkernel API for Fine-grained Decomposition

10/11

Operation Pentium 4 Core 2

Cross-component call/return (kernel mode)

46 23

Function call/return 11 9

cycles

Operation Pentium 4 Core 2

Cross-component call/return (inter-AS)

1965 771

L4Ka round-trip IPC 2262 1052

Low performance overhead

Conclusion

Microkernel APIs enforce system structureExisting APIs distributed systems

Development, reuse, and granularity problems

Our approach: component model as APIMore general abstractions related to decomposition(servers, interfaces, calls, references, local objects, ...)

Derived microkernel design

Networking-capable prototype OS

Good granularity and reuse, promising performance

Sebastian Reichelt, Jan Stoess, Frank BellosaA Microkernel API for Fine-grained Decomposition

11/11

http://oosys.sourceforge.net/

Demo today

top related