• Keine Ergebnisse gefunden

On µ-kernel Construction

N/A
N/A
Protected

Academic year: 2022

Aktie "On µ-kernel Construction"

Copied!
57
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Vorgetragen durch: Janis Danisevskis

9. Juni 2010

(2)

Motivation

Vorteile von µ-Kernen Modularit ¨at

Isolation von Servern Flexibilit ¨at

Aber

Effizienz?!?

(3)

Motivation

Vorteile von µ-Kernen Modularit ¨at

Isolation von Servern Flexibilit ¨at

Aber

Effizienz?!?

(4)

These

Wir haben es einfach noch nicht richtig gemacht.

(5)

Fragen

Welche Funktionalit ¨at geh ¨ort in den Kern?

Was muss man bei der Implementation dieser Fuktionalit ¨at beachten?

Welche Implikation hat die vorgeschlagene

Vorgehensweise auf die Portierbarkeit des µ-Kerns?

(6)

Fragen

Welche Funktionalit ¨at geh ¨ort in den Kern?

Was muss man bei der Implementation dieser Fuktionalit ¨at beachten?

Welche Implikation hat die vorgeschlagene

Vorgehensweise auf die Portierbarkeit des µ-Kerns?

(7)

Fragen

Welche Funktionalit ¨at geh ¨ort in den Kern?

Was muss man bei der Implementation dieser Fuktionalit ¨at beachten?

Welche Implikation hat die vorgeschlagene

Vorgehensweise auf die Portierbarkeit des µ-Kerns?

(8)

Outline

1 Motivation

2 1. Frage: Funktionalit ¨at

3 2. Frage: Implementations Details

4 3. Frage: Portierbarkeit

5 µ-Kern Implementationen

6 Zusammenfassung

(9)

Funktionalit ¨at

Ein Konzept ist nur dann im Kern erlaubt, wenn die

Anforderungen an die Funktionalit ¨at des Gesamtsystems nicht erf ¨ullt werden k ¨onnen, falls sich das Konzept nicht im Kern befindet.

Anforderungen an das Gesamtsystem

Unabh ¨angigkeit: Ein Subsystem S darf nicht durch ein anderes Subsystem S 0 gest ¨ort werden.

Integrit ¨at: Ein Subsystem S muss Garantien geben

k ¨onnen auf die sich andere Subsysteme verlassen k ¨onnen.

(10)

Funktionalit ¨at

Ein Konzept ist nur dann im Kern erlaubt, wenn die

Anforderungen an die Funktionalit ¨at des Gesamtsystems nicht erf ¨ullt werden k ¨onnen, falls sich das Konzept nicht im Kern befindet.

Anforderungen an das Gesamtsystem

Unabh ¨angigkeit: Ein Subsystem S darf nicht durch ein anderes Subsystem S 0 gest ¨ort werden.

Integrit ¨at: Ein Subsystem S muss Garantien geben

k ¨onnen auf die sich andere Subsysteme verlassen k ¨onnen.

(11)

Die Kernkonzepte

Adressr ¨aume

Threads und IPC

Eindeutige IDs

(12)

Adressr ¨aume

Adressr ¨aume sind eine Abstraktion eines wie auch immer

gestalteten Hardwarekonzepts der Speicherverwaltung.

(13)

Am Anfang war σ 0

σ 0 ...

... ist die Mutter aller Adressr ¨aume und hat auf magische Weise s ¨amtlichen im System verf ¨ugbaren Speicher.

... wird von einem initialien Subsystem S 0 verwaltet

(14)

Address Space Operatrionen

Grant

Ubertr ¨agt eine Seite aus dem eigenen Address Space in den ¨ eines anderen Subsystems.

Map

Reicht Zugriffsrechte auf eine eigene Seite an eine andere Task weiter.

Flush

Macht alle Map-Operationen auf eine Seite r ¨uckg ¨angig.

(15)

Address Space Operatrionen

Grant

Ubertr ¨agt eine Seite aus dem eigenen Address Space in den ¨ eines anderen Subsystems.

Map

Reicht Zugriffsrechte auf eine eigene Seite an eine andere Task weiter.

Flush

Macht alle Map-Operationen auf eine Seite r ¨uckg ¨angig.

(16)

Address Space Operatrionen

Grant

Ubertr ¨agt eine Seite aus dem eigenen Address Space in den ¨ eines anderen Subsystems.

Map

Reicht Zugriffsrechte auf eine eigene Seite an eine andere Task weiter.

Flush

Macht alle Map-Operationen auf eine Seite r ¨uckg ¨angig.

(17)

Ein Beispiel

(18)

Threads

Ein Thread ...

... ist eine Aktivit ¨at, die in einem Address Space ausgef ¨uhrt wird.

... ist charakterisiert durch einen Registersatz (mit instruction pointer, stack pointer und Statusregister).

... ist genau einem Address Space zugeordnet.

Die Zuordnung zu einem Address Space wird bedingt durch die

Forderung nach Unabh ¨anigkeit (pricipal of independence)

(19)

Threads

Ein Thread ...

... ist eine Aktivit ¨at, die in einem Address Space ausgef ¨uhrt wird.

... ist charakterisiert durch einen Registersatz (mit instruction pointer, stack pointer und Statusregister).

... ist genau einem Address Space zugeordnet.

Die Zuordnung zu einem Address Space wird bedingt durch die

Forderung nach Unabh ¨anigkeit (pricipal of independence)

(20)

Threads

Ein Thread ...

... ist eine Aktivit ¨at, die in einem Address Space ausgef ¨uhrt wird.

... ist charakterisiert durch einen Registersatz (mit instruction pointer, stack pointer und Statusregister).

... ist genau einem Address Space zugeordnet.

Die Zuordnung zu einem Address Space wird bedingt durch die

Forderung nach Unabh ¨anigkeit (pricipal of independence)

(21)

IPC

IPC ...

... ist die Kommunikation zwischen Threads insbesondere

¨uber Address Space Grenzen hinweg.

... forciert ¨ Ubereink ¨unfte zwischen den kommunizierenden Parteien.

IPC tr ¨agt der Forderung nach Integrit ¨at Rechnung.

(22)

IPC

IPC ...

... ist die Kommunikation zwischen Threads insbesondere

¨uber Address Space Grenzen hinweg.

... forciert ¨ Ubereink ¨unfte zwischen den kommunizierenden Parteien.

IPC tr ¨agt der Forderung nach Integrit ¨at Rechnung.

(23)

Interrupts als IPC

Ger ¨ate sind Aktivit ¨aten.

Interrupts sind ihre IPC Nachrichten

Der Kern muss Interrupts in IPC Nachrichten ¨ubersetzen.

(24)

Interrupts als IPC

Ger ¨ate sind Aktivit ¨aten.

Interrupts sind ihre IPC Nachrichten

Der Kern muss Interrupts in IPC Nachrichten ¨ubersetzen.

(25)

Eindeutige IDs

Eindeutige IDs als Kernkonzept tragen der Forderung nach

Integrit ¨at des Systems Rechnung.

(26)

Flexibel genug?

Speicherverwaltung ?

(27)

Flexibel genug?

Speicherverwaltung X

Multimedia Resource Allocation?

Durch verschiedene Implementationen von Memorymanagern und Pagern lassen sich gleichzeitig Multimedia und

Timesharing Strategien realisieren.

(28)

Flexibel genug?

Speicherverwaltung X

Multimedia Resource Allocation X Treiber ?

Interrupts als IPC

IO durch Address Space mapping

(29)

Flexibel genug?

Speicherverwaltung X

Multimedia Resource Allocation X Treiber X

Remote Communication ?

Kommunikationsserver

benutzt Treiberserver

(30)

Flexibel genug?

Speicherverwaltung X

Multimedia Resource Allocation X Treiber X

Remote Communication X Unix Server ?

Systemcalls via IPC

Als Pager kann memory sharing realiziert werden

(31)

Flexibel genug?

Speicherverwaltung X

Multimedia Resource Allocation X Treiber X

Remote Communication X

Unix Server X

(32)

Noch einmal die These

Wir haben es einfach noch nicht richtig gemacht.

Aber was kann man besser machen?

(33)

Der NULL-Syscall

getpid/get self thread

Mach 3.0, NORMA MK 13 auf 486/50: 18 µ s a L3 auf 486/50: 3 µs

a

Gemessen von Ousterhout [1990]

Daraus folgt:

Kern-User-Umschaltung muss nicht so teuer sein wie bis dato

angenommen.

(34)

Der NULL-Syscall

getpid/get self thread

Mach 3.0, NORMA MK 13 auf 486/50: 18 µ s a L3 auf 486/50: 3 µs

a

Gemessen von Ousterhout [1990]

Daraus folgt:

Kern-User-Umschaltung muss nicht so teuer sein wie bis dato

angenommen.

(35)

Address Space Umschaltung

Fakten

Umschalten der Seitentabelle ist schnell (1–10 Takte) Die Kosten entstehen durch die TLB Architektur Tagged TLB

Keine zus ¨atzlichen Kosten. Der TLB ist transparent bez ¨uglich der Umschaltung der Seitentabelle.

Untagged TLB

Bei der Umschaltung der Seitentabelle muss der TLB geleert

werden was eine Reihe von TLB misses zur Folge hat.

(36)

Address Space Umschaltung

Fakten

Umschalten der Seitentabelle ist schnell (1–10 Takte) Die Kosten entstehen durch die TLB Architektur Tagged TLB

Keine zus ¨atzlichen Kosten. Der TLB ist transparent bez ¨uglich der Umschaltung der Seitentabelle.

Untagged TLB

Bei der Umschaltung der Seitentabelle muss der TLB geleert

werden was eine Reihe von TLB misses zur Folge hat.

(37)

Address Space Umschaltung

Fakten

Umschalten der Seitentabelle ist schnell (1–10 Takte) Die Kosten entstehen durch die TLB Architektur Tagged TLB

Keine zus ¨atzlichen Kosten. Der TLB ist transparent bez ¨uglich der Umschaltung der Seitentabelle.

Untagged TLB

Bei der Umschaltung der Seitentabelle muss der TLB geleert

werden was eine Reihe von TLB misses zur Folge hat.

(38)

Zahlen und Strategien

(39)

Vergleich von Roundtrip Zeiten

(40)

Nutzung von Segmentierung zahlt sich aus

(41)

Versuchsaufbau

System M: Mach µ-Kern + Unix Server System U: Ultrix (Monolitischer Unix Kern) Benchmarks

sed, egrep, yacc, gcc, compress, espresso, ab

Zu Messen:

MCPI: Memory Cycle overhead per instruction Aufgeteilt in:

cache misses im Kern (schwarz)

write buffer stalls, unchached reads und cache misses im

(42)

Die Messungen

(43)

Auswertung

Im Durchschnitt kein Unterschied im Userspace.

Deutlich h ¨oherer MCPI Beitrag durch cache misses im Kern bei Mach

Zweite Messung

conflict misses im Kern (schwarz)

capacity misses im Kern (weiß)

(44)

Auswertung

Im Durchschnitt kein Unterschied im Userspace.

Deutlich h ¨oherer MCPI Beitrag durch cache misses im Kern bei Mach

Zweite Messung

conflict misses im Kern (schwarz)

capacity misses im Kern (weiß)

(45)

Die Messung 2

(46)

Fazit

Mach steht sich selbst im Weg!

Laut Liedtke

Ein konzeptioneller Fehler

(47)

Portierbarkeit

These

µ-Kerne sind von Natur aus nicht portierbar.

(48)

Unterschiede kompatibler Prozessoren

486 versus Pentium

(49)

Unterschiede kompatibler Prozessoren

486 versus Pentium

486 Pentium

Beg ¨unstigste Address Space Umschaltung

TLB Flush + Page Table

Segmentumschaltung

(50)

Unterschiede kompatibler Prozessoren

486 versus Pentium

user-address-space multiplexer, modified address-space switch routines, handling of user supplied addresses, thread controll blocks, task controll blocks, IPC implementation

Betrifft die H ¨alfte aller Module des µ-Kerns

(51)

Unterschiede kompatibler Prozessoren

486 versus Pentium

Die 2 way Assoziativit ¨at des Pentium cache beg ¨unstigt cache-Konflikte w ¨arend der IPC.

L ¨osung:Ausrichten der Thread Kontrollbl ¨ocke an 1K statt an 4K Grenzen.

Betrifft neben der Organisation im Kern auch Userspace-Programme

( ¨ Anderung der uids)

(52)

Unterschiede nicht kompatibler Prozessoren ...

... um Gr ¨oßenordnungen gr ¨oßer.

(53)

µ-Kerne

Synthesis

Compiler im Kern Spin

Compiler im Kern

Erweiterbar durch Usercode im Kern Utah-Mach

Mach mit thread-migrating RPC (um den Factor 3–4

bessere Performance)

(54)

µ-Kerne

DP-Mach

protection domains innerhalb eines Adressraumes Panda

Virtueller Prozessor Cache-Kernel

Virtual Machine

Cached Kernel, Threads, Adressr ¨aume und Mappings

(55)

µ-Kerne

Exokernel

Primitive statt Abstraktionen

Stark hardwarabh ¨angig auch das Interface

(56)

Zusammenfassung

µ-Kerne stellen minimale Abstraktionen bereit auf denen man beliebige OS-Personalities implementieren kann.

µ-Kernel m ¨ussen stark an die jeweilige

Prozessorarchitektur angepasst werden und sind daher von Natur aus nicht portierbar.

Leistungsf ¨ahige µ-Kerne sind durch die stark prozessorspezifische Implementation von

prozessorunabh ¨anigen Abstraktionen realisierbar.

(57)

Pizza

Pizza!

Referenzen

ÄHNLICHE DOKUMENTE

While the political logjam in Baghdad persists, what I find during my visits to Irbil and Sulaymaniyah in Kurdistan, and to the southern cities like Najaf, Nasiriyah and Basra,

Emeritus Professor Sami Zubaida is what I like to think of as the doyen of all that is political sociology – politics and sociology – of the Middle East in London.. I don’t

cophagus chamber; the outer frame refers to the entrance of the tomb, to sunlight and offerings that enter the tomb from the outside world, while the inner frame refers to

rechtfertigen, da ein Tausch der Elemente mit kleinster Häufigkeit auf die unterste Ebene den Wert von B höchstens verkleinern

The GASPI specification itself only offers two of these collective operations: the allreduce, computing a global result from the data of all participants, and the barrier,

The goal of the original subnet assignment strategy was to put the primary subnets for big sites into slots in the address space that had a lot of nearby subnets with a large number

the field of formal power series in two variables R ((X, Y )); second, function fields of curves over the power series field R ((t)) or, more generally, over a field with a

cartographies, and especially collaborative mapping, have distinct influence on the type, style and outcome of mapping discourses, bringing together a critical cartography and a