57
On μ-Kernel Construction von Jochen Liedtke Vorgetragen durch: Janis Danisevskis 9. Juni 2010

On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Embed Size (px)

Citation preview

Page 1: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

On µ-Kernel Construction

von Jochen LiedtkeVorgetragen durch: Janis Danisevskis

9. Juni 2010

Page 2: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Motivation

Vorteile von µ-KernenModularitatIsolation von ServernFlexibilitat

AberEffizienz?!?

Vortragender: Janis Danisevskis On µ-Kernel Construction 2/35

Page 3: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Motivation

Vorteile von µ-KernenModularitatIsolation von ServernFlexibilitat

AberEffizienz?!?

Vortragender: Janis Danisevskis On µ-Kernel Construction 2/35

Page 4: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

These

Wir haben es einfach noch nicht richtig gemacht.

Vortragender: Janis Danisevskis On µ-Kernel Construction 3/35

Page 5: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Fragen

Welche Funktionalitat gehort in den Kern?Was muss man bei der Implementation dieser Fuktionalitatbeachten?Welche Implikation hat die vorgeschlageneVorgehensweise auf die Portierbarkeit des µ-Kerns?

Vortragender: Janis Danisevskis On µ-Kernel Construction 4/35

Page 6: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Fragen

Welche Funktionalitat gehort in den Kern?Was muss man bei der Implementation dieser Fuktionalitatbeachten?Welche Implikation hat die vorgeschlageneVorgehensweise auf die Portierbarkeit des µ-Kerns?

Vortragender: Janis Danisevskis On µ-Kernel Construction 4/35

Page 7: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Fragen

Welche Funktionalitat gehort in den Kern?Was muss man bei der Implementation dieser Fuktionalitatbeachten?Welche Implikation hat die vorgeschlageneVorgehensweise auf die Portierbarkeit des µ-Kerns?

Vortragender: Janis Danisevskis On µ-Kernel Construction 4/35

Page 8: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Outline

1 Motivation

2 1. Frage: Funktionalitat

3 2. Frage: Implementations Details

4 3. Frage: Portierbarkeit

5 µ-Kern Implementationen

6 Zusammenfassung

Vortragender: Janis Danisevskis On µ-Kernel Construction 5/35

Page 9: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

AdressraumeThreads und IPCEindeutige IDsFlexibel genug?

Funktionalitat

Ein Konzept ist nur dann im Kern erlaubt, wenn dieAnforderungen an die Funktionalitat des Gesamtsystems nichterfullt werden konnen, falls sich das Konzept nicht im Kernbefindet.

Anforderungen an das Gesamtsystem

Unabhangigkeit: Ein Subsystem S darf nicht durch einanderes Subsystem S′ gestort werden.Integritat: Ein Subsystem S muss Garantien gebenkonnen auf die sich andere Subsysteme verlassen konnen.

Vortragender: Janis Danisevskis On µ-Kernel Construction 6/35

Page 10: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

AdressraumeThreads und IPCEindeutige IDsFlexibel genug?

Funktionalitat

Ein Konzept ist nur dann im Kern erlaubt, wenn dieAnforderungen an die Funktionalitat des Gesamtsystems nichterfullt werden konnen, falls sich das Konzept nicht im Kernbefindet.

Anforderungen an das Gesamtsystem

Unabhangigkeit: Ein Subsystem S darf nicht durch einanderes Subsystem S′ gestort werden.Integritat: Ein Subsystem S muss Garantien gebenkonnen auf die sich andere Subsysteme verlassen konnen.

Vortragender: Janis Danisevskis On µ-Kernel Construction 6/35

Page 11: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

AdressraumeThreads und IPCEindeutige IDsFlexibel genug?

Die Kernkonzepte

AdressraumeThreads und IPCEindeutige IDs

Vortragender: Janis Danisevskis On µ-Kernel Construction 7/35

Page 12: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

AdressraumeThreads und IPCEindeutige IDsFlexibel genug?

Adressraume

Adressraume sind eine Abstraktion eines wie auch immergestalteten Hardwarekonzepts der Speicherverwaltung.

Vortragender: Janis Danisevskis On µ-Kernel Construction 8/35

Page 13: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

AdressraumeThreads und IPCEindeutige IDsFlexibel genug?

Am Anfang war σ0

σ0 ...... ist die Mutter aller Adressraume und hat auf magischeWeise samtlichen im System verfugbaren Speicher.... wird von einem initialien Subsystem S0 verwaltet

Vortragender: Janis Danisevskis On µ-Kernel Construction 9/35

Page 14: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

AdressraumeThreads und IPCEindeutige IDsFlexibel genug?

Address Space Operatrionen

Grant

Ubertragt eine Seite aus dem eigenen Address Space in deneines anderen Subsystems.

MapReicht Zugriffsrechte auf eine eigene Seite an eine andereTask weiter.

FlushMacht alle Map-Operationen auf eine Seite ruckgangig.

Vortragender: Janis Danisevskis On µ-Kernel Construction 10/35

Page 15: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

AdressraumeThreads und IPCEindeutige IDsFlexibel genug?

Address Space Operatrionen

Grant

Ubertragt eine Seite aus dem eigenen Address Space in deneines anderen Subsystems.

MapReicht Zugriffsrechte auf eine eigene Seite an eine andereTask weiter.

FlushMacht alle Map-Operationen auf eine Seite ruckgangig.

Vortragender: Janis Danisevskis On µ-Kernel Construction 10/35

Page 16: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

AdressraumeThreads und IPCEindeutige IDsFlexibel genug?

Address Space Operatrionen

Grant

Ubertragt eine Seite aus dem eigenen Address Space in deneines anderen Subsystems.

MapReicht Zugriffsrechte auf eine eigene Seite an eine andereTask weiter.

FlushMacht alle Map-Operationen auf eine Seite ruckgangig.

Vortragender: Janis Danisevskis On µ-Kernel Construction 10/35

Page 17: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

AdressraumeThreads und IPCEindeutige IDsFlexibel genug?

Ein Beispiel

Vortragender: Janis Danisevskis On µ-Kernel Construction 11/35

Page 18: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

AdressraumeThreads und IPCEindeutige IDsFlexibel genug?

Threads

Ein Thread ...... ist eine Aktivitat, die in einem Address Space ausgefuhrtwird.... ist charakterisiert durch einen Registersatz (mitinstruction pointer, stack pointer und Statusregister).... ist genau einem Address Space zugeordnet.

Die Zuordnung zu einem Address Space wird bedingt durch dieForderung nach Unabhanigkeit (pricipal of independence)

Vortragender: Janis Danisevskis On µ-Kernel Construction 12/35

Page 19: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

AdressraumeThreads und IPCEindeutige IDsFlexibel genug?

Threads

Ein Thread ...... ist eine Aktivitat, die in einem Address Space ausgefuhrtwird.... ist charakterisiert durch einen Registersatz (mitinstruction pointer, stack pointer und Statusregister).... ist genau einem Address Space zugeordnet.

Die Zuordnung zu einem Address Space wird bedingt durch dieForderung nach Unabhanigkeit (pricipal of independence)

Vortragender: Janis Danisevskis On µ-Kernel Construction 12/35

Page 20: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

AdressraumeThreads und IPCEindeutige IDsFlexibel genug?

Threads

Ein Thread ...... ist eine Aktivitat, die in einem Address Space ausgefuhrtwird.... ist charakterisiert durch einen Registersatz (mitinstruction pointer, stack pointer und Statusregister).... ist genau einem Address Space zugeordnet.

Die Zuordnung zu einem Address Space wird bedingt durch dieForderung nach Unabhanigkeit (pricipal of independence)

Vortragender: Janis Danisevskis On µ-Kernel Construction 12/35

Page 21: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

AdressraumeThreads und IPCEindeutige IDsFlexibel genug?

IPC

IPC ...... ist die Kommunikation zwischen Threads insbesondereuber Address Space Grenzen hinweg.... forciert Ubereinkunfte zwischen den kommunizierendenParteien.

IPC tragt der Forderung nach Integritat Rechnung.

Vortragender: Janis Danisevskis On µ-Kernel Construction 13/35

Page 22: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

AdressraumeThreads und IPCEindeutige IDsFlexibel genug?

IPC

IPC ...... ist die Kommunikation zwischen Threads insbesondereuber Address Space Grenzen hinweg.... forciert Ubereinkunfte zwischen den kommunizierendenParteien.

IPC tragt der Forderung nach Integritat Rechnung.

Vortragender: Janis Danisevskis On µ-Kernel Construction 13/35

Page 23: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

AdressraumeThreads und IPCEindeutige IDsFlexibel genug?

Interrupts als IPC

Gerate sind Aktivitaten.Interrupts sind ihre IPC Nachrichten

Der Kern muss Interrupts in IPC Nachrichten ubersetzen.

Vortragender: Janis Danisevskis On µ-Kernel Construction 14/35

Page 24: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

AdressraumeThreads und IPCEindeutige IDsFlexibel genug?

Interrupts als IPC

Gerate sind Aktivitaten.Interrupts sind ihre IPC Nachrichten

Der Kern muss Interrupts in IPC Nachrichten ubersetzen.

Vortragender: Janis Danisevskis On µ-Kernel Construction 14/35

Page 25: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

AdressraumeThreads und IPCEindeutige IDsFlexibel genug?

Eindeutige IDs

Eindeutige IDs als Kernkonzept tragen der Forderung nachIntegritat des Systems Rechnung.

Vortragender: Janis Danisevskis On µ-Kernel Construction 15/35

Page 26: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

AdressraumeThreads und IPCEindeutige IDsFlexibel genug?

Flexibel genug?

Speicherverwaltung ?

Vortragender: Janis Danisevskis On µ-Kernel Construction 16/35

Page 27: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

AdressraumeThreads und IPCEindeutige IDsFlexibel genug?

Flexibel genug?

Speicherverwaltung X

Multimedia Resource Allocation?

Durch verschiedene Implementationen von Memorymanagernund Pagern lassen sich gleichzeitig Multimedia undTimesharing Strategien realisieren.

Vortragender: Janis Danisevskis On µ-Kernel Construction 16/35

Page 28: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

AdressraumeThreads und IPCEindeutige IDsFlexibel genug?

Flexibel genug?

Speicherverwaltung X

Multimedia Resource Allocation X

Treiber ?

Interrupts als IPCIO durch Address Space mapping

Vortragender: Janis Danisevskis On µ-Kernel Construction 16/35

Page 29: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

AdressraumeThreads und IPCEindeutige IDsFlexibel genug?

Flexibel genug?

Speicherverwaltung X

Multimedia Resource Allocation X

Treiber X

Remote Communication ?

Kommunikationsserverbenutzt Treiberserver

Vortragender: Janis Danisevskis On µ-Kernel Construction 16/35

Page 30: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

AdressraumeThreads und IPCEindeutige IDsFlexibel genug?

Flexibel genug?

Speicherverwaltung X

Multimedia Resource Allocation X

Treiber X

Remote Communication X

Unix Server ?

Systemcalls via IPCAls Pager kann memory sharing realiziert werden

Vortragender: Janis Danisevskis On µ-Kernel Construction 16/35

Page 31: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

AdressraumeThreads und IPCEindeutige IDsFlexibel genug?

Flexibel genug?

Speicherverwaltung X

Multimedia Resource Allocation X

Treiber X

Remote Communication X

Unix Server X

Vortragender: Janis Danisevskis On µ-Kernel Construction 16/35

Page 32: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Switching OverheadSpeichereffekte

Noch einmal die These

Wir haben es einfach noch nicht richtig gemacht.Aber was kann man besser machen?

Vortragender: Janis Danisevskis On µ-Kernel Construction 17/35

Page 33: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Switching OverheadSpeichereffekte

Der NULL-Syscall

getpid/get self thread

Mach 3.0, NORMA MK 13 auf 486/50: 18 µsa

L3 auf 486/50: 3 µsaGemessen von Ousterhout [1990]

Daraus folgt:Kern-User-Umschaltung muss nicht so teuer sein wie bis datoangenommen.

Vortragender: Janis Danisevskis On µ-Kernel Construction 18/35

Page 34: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Switching OverheadSpeichereffekte

Der NULL-Syscall

getpid/get self thread

Mach 3.0, NORMA MK 13 auf 486/50: 18 µsa

L3 auf 486/50: 3 µsaGemessen von Ousterhout [1990]

Daraus folgt:Kern-User-Umschaltung muss nicht so teuer sein wie bis datoangenommen.

Vortragender: Janis Danisevskis On µ-Kernel Construction 18/35

Page 35: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Switching OverheadSpeichereffekte

Address Space Umschaltung

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

Tagged TLBKeine zusatzlichen Kosten. Der TLB ist transparent bezuglichder Umschaltung der Seitentabelle.

Untagged TLB

Bei der Umschaltung der Seitentabelle muss der TLB geleertwerden was eine Reihe von TLB misses zur Folge hat.

Vortragender: Janis Danisevskis On µ-Kernel Construction 19/35

Page 36: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Switching OverheadSpeichereffekte

Address Space Umschaltung

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

Tagged TLBKeine zusatzlichen Kosten. Der TLB ist transparent bezuglichder Umschaltung der Seitentabelle.

Untagged TLB

Bei der Umschaltung der Seitentabelle muss der TLB geleertwerden was eine Reihe von TLB misses zur Folge hat.

Vortragender: Janis Danisevskis On µ-Kernel Construction 19/35

Page 37: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Switching OverheadSpeichereffekte

Address Space Umschaltung

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

Tagged TLBKeine zusatzlichen Kosten. Der TLB ist transparent bezuglichder Umschaltung der Seitentabelle.

Untagged TLB

Bei der Umschaltung der Seitentabelle muss der TLB geleertwerden was eine Reihe von TLB misses zur Folge hat.

Vortragender: Janis Danisevskis On µ-Kernel Construction 19/35

Page 38: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Switching OverheadSpeichereffekte

Zahlen und Strategien

Vortragender: Janis Danisevskis On µ-Kernel Construction 20/35

Page 39: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Switching OverheadSpeichereffekte

Vergleich von Roundtrip Zeiten

Vortragender: Janis Danisevskis On µ-Kernel Construction 21/35

Page 40: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Switching OverheadSpeichereffekte

Nutzung von Segmentierung zahlt sich aus

Vortragender: Janis Danisevskis On µ-Kernel Construction 22/35

Page 41: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Switching OverheadSpeichereffekte

Versuchsaufbau

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

Benchmarkssed, egrep, yacc, gcc, compress, espresso, ab

Zu Messen:MCPI: Memory Cycle overhead per instructionAufgeteilt in:

cache misses im Kern (schwarz)write buffer stalls, unchached reads und cache misses imuser space (weiß)

Vortragender: Janis Danisevskis On µ-Kernel Construction 23/35

Page 42: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Switching OverheadSpeichereffekte

Die Messungen

Vortragender: Janis Danisevskis On µ-Kernel Construction 24/35

Page 43: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Switching OverheadSpeichereffekte

Auswertung

Im Durchschnitt kein Unterschied im Userspace.Deutlich hoherer MCPI Beitrag durch cache misses imKern bei Mach

Zweite Messungconflict misses im Kern (schwarz)capacity misses im Kern (weiß)

Vortragender: Janis Danisevskis On µ-Kernel Construction 25/35

Page 44: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Switching OverheadSpeichereffekte

Auswertung

Im Durchschnitt kein Unterschied im Userspace.Deutlich hoherer MCPI Beitrag durch cache misses imKern bei Mach

Zweite Messungconflict misses im Kern (schwarz)capacity misses im Kern (weiß)

Vortragender: Janis Danisevskis On µ-Kernel Construction 25/35

Page 45: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Switching OverheadSpeichereffekte

Die Messung 2

Vortragender: Janis Danisevskis On µ-Kernel Construction 26/35

Page 46: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Switching OverheadSpeichereffekte

Fazit

Mach steht sich selbst im Weg!

Laut LiedtkeEin konzeptioneller Fehler

Vortragender: Janis Danisevskis On µ-Kernel Construction 27/35

Page 47: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Portierbarkeit

Theseµ-Kerne sind von Natur aus nicht portierbar.

Vortragender: Janis Danisevskis On µ-Kernel Construction 28/35

Page 48: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Unterschiede kompatibler Prozessoren

486 versus Pentium

Vortragender: Janis Danisevskis On µ-Kernel Construction 29/35

Page 49: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Unterschiede kompatibler Prozessoren

486 versus Pentium

486 PentiumBegunstigsteAddress SpaceUmschaltung

TLB Flush + PageTable

Segmentumschaltung

Vortragender: Janis Danisevskis On µ-Kernel Construction 29/35

Page 50: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

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 Halfte aller Module des µ-Kerns

Vortragender: Janis Danisevskis On µ-Kernel Construction 29/35

Page 51: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Unterschiede kompatibler Prozessoren

486 versus Pentium

Die 2 way Assoziativitat des Pentium cache begunstigt cache-Konflikte warend der IPC.Losung: Ausrichten der Thread Kontrollblocke an 1K statt an 4K Grenzen.

Betrifft neben der Organisation im Kern auch Userspace-Programme(Anderung der uids)

Vortragender: Janis Danisevskis On µ-Kernel Construction 29/35

Page 52: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Unterschiede nicht kompatibler Prozessoren ...

... um Großenordnungen großer.

Vortragender: Janis Danisevskis On µ-Kernel Construction 30/35

Page 53: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

µ-Kerne

SynthesisCompiler im Kern

SpinCompiler im KernErweiterbar durch Usercode im Kern

Utah-MachMach mit thread-migrating RPC (um den Factor 3–4bessere Performance)

Vortragender: Janis Danisevskis On µ-Kernel Construction 31/35

Page 54: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

µ-Kerne

DP-Machprotection domains innerhalb eines Adressraumes

PandaVirtueller Prozessor

Cache-KernelVirtual MachineCached Kernel, Threads, Adressraume und Mappings

Vortragender: Janis Danisevskis On µ-Kernel Construction 32/35

Page 55: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

µ-Kerne

ExokernelPrimitive statt AbstraktionenStark hardwarabhangig auch das Interface

Vortragender: Janis Danisevskis On µ-Kernel Construction 33/35

Page 56: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Zusammenfassung

µ-Kerne stellen minimale Abstraktionen bereit auf denenman beliebige OS-Personalities implementieren kann.µ-Kernel mussen stark an die jeweiligeProzessorarchitektur angepasst werden und sind dahervon Natur aus nicht portierbar.Leistungsfahige µ-Kerne sind durch die starkprozessorspezifische Implementation vonprozessorunabhanigen Abstraktionen realisierbar.

Vortragender: Janis Danisevskis On µ-Kernel Construction 34/35

Page 57: On µ-Kernel Construction - isti.tu-berlin.de · Threads und IPC Eindeutige IDs Flexibel genug? Funktionalitat¨ Ein Konzept ist nur dann im Kern erlaubt, wenn die Anforderungen an

Motivation1. Frage: Funktionalitat

2. Frage: Implementations Details3. Frage: Portierbarkeit

µ-Kern ImplementationenZusammenfassung

Pizza

Pizza

Pizza!

Vortragender: Janis Danisevskis On µ-Kernel Construction 35/35