on µ-kernel construction - isti.tu-berlin.de · threads und ipc eindeutige ids flexibel genug?...
TRANSCRIPT
On µ-Kernel Construction
von Jochen LiedtkeVorgetragen durch: Janis Danisevskis
9. Juni 2010
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Motivation1. Frage: Funktionalitat
2. Frage: Implementations Details3. Frage: Portierbarkeit
µ-Kern ImplementationenZusammenfassung
Pizza
Switching OverheadSpeichereffekte
Die Messungen
Vortragender: Janis Danisevskis On µ-Kernel Construction 24/35
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Motivation1. Frage: Funktionalitat
2. Frage: Implementations Details3. Frage: Portierbarkeit
µ-Kern ImplementationenZusammenfassung
Pizza
Pizza
Pizza!
Vortragender: Janis Danisevskis On µ-Kernel Construction 35/35