Kapitel 26 BS-Kerne Laufzeitplattform = abstrakte Maschine für den Anwender Komfortabler Zugang Geschützte Adreßräume Traps, privilegierter Zustand Monolithische Systeme Änderungen im Kern, schwierig Literatur: Nehmer-Sturm, Systemsoftware BS-Kerne
Komplexität vermindert Klare Schnittstellen Geschichtete Systeme Komplexität vermindert Klare Schnittstellen BS-Kerne
Neue Mitglieder durch Spezialisten hergestellt Systemfamilien Neue Mitglieder durch Spezialisten hergestellt BS-Kerne
Erweiterungen, Ersetzungen, Modifikationen in der Offene Plattformen Erweiterungen, Ersetzungen, Modifikationen in der Abstraktionsebene des Anwenders Klient-Server-Architektur: - Laufzeitbibliothek im Adreßraum der Anwendungen - Server mit eigenem Adreßraum -(System-)Kern Benutzerschnittstelle , im Extremfall nicht der Kern Neue Funktionalitäten: - Erweiterung der Laufzeitbibliothek - weitere Server all das auf der Abstraktionsebene der Anwendungen BS-Kerne
- Hantierung von Threads und Adreßräumen Minimale Kerne: - Hantierung von Threads und Adreßräumen - Elementare Schutzmechanismen: -- Monopolisierung des Speichers und Prozessors -- Peripheriezugang „Mini- Mikro- Nanokern“ Server: Allgemeine, anwendungsneutrale Dienste Adreßraum-lokale Laufzeitbibliotheken - Stark anwendungsabhängig - Effizienz Mikrokernkonzept entwickelt bei V, Amoeba, Mach, Chorus: Existierende BS sollten auf dem Kern realisierbar sein, auch mehrere zugleich Dazu muß der Kern ganz elementar oder stark parametrisierbar sein BS-Kerne
Funktionen auch in Servern Technologie für leichte Migration auf neuartige Hardware Kernbasierte Systemarchitektur ist Stand der Technik Vorläufer dieser Idee: VM (IBM). Nicht rechnerneutral. Virtuelle Rechner (Speicher, Prozessor, Peripherie). Verschiedene BS nebeneinander. BS-Kerne
Speichereinbettung des Kerns - Eigener virtueller Adreßraum - Zugriffsgeschützter, realer Speicherbereich, real adressiert - In jeden virtuellen Adreßraum eingeblendet; Anwendungsprozesse haben keine Zugriffsrechte; effizient, da weniger Kontextwechsel Funktionsaufruf per Trap (Interrupt) BS-Kerne
Serielle Kerne: Zu jedem Zeitpunkt höchstens ein Kernaufruf Vorteil: Keine Synchronisierung Kern nicht unterbrechbar Probleme: - Blockierende Kernaufrufe - Asynchrone Unterbrechungen Abhilfe bei Einprozessorrechnern: - Vor Prozeßwechsel bei blockierendem Aufruf konsistenten Kernzustand herstellen - Bei asynchronnen Unterbrechungen wird der Thread im Kern nicht gewechselt, und es ist Trennung der Datenbereiche sichergestellt BS-Kerne
Nebenläufige Kerne BS-Kerne
Nukleus: - Prozessormultiplexer Nebenläufige Kerne Nukleus: - Prozessormultiplexer - Mittel für einfache Thread-Synchronisation, z.B. Semaphore Alles andere machen Threads, die sich synchronisieren, in der Ebene höherer Kernfunktionen (oder außerhalb des Kerns) Serialisierbarkeit durch „Spin-Locks“, das sind Synchronisationsoperationen mit aktivem Warten, für kurzedauernde kritische Bereiche; insbesondere werden dabei Unterbrechungen aufgeschoben. Damit organisiert der Nukleus die Kernaufrufe. Auslagerung der E/A aus dem Kern bei speicherbasierter E/A-Architektur, bei der die Geräteregister in den virtuellen Adreßraum eingeblendet sind. Primäre Unterbrechungsbehandlung aber im Kern. Danach werden Gerätestatus-Informationen und Aufträge an einen Server weitergereicht. Externer Pager: - Rahmenverwaltung im Kern (Strategien) - Ein- und Auslagern im Pager BS-Kerne
Vorteile dieser E/A-Architektur: - Weniger Konfigurationsparameter - Geräteverwaltung einfacher, z.B. neues Gerät zur Laufzeit: 1. Geräteserver erzeugen 2. Diesen gegenüber dem Kern authentisieren 3. Einblenden der Geräteregister in den virtuellen Adreßraum des Geräteservers BS-Kerne
Nichtblockierende Kerne - Keine blockierenden Funktionen wie E/A, Synchronisation - Prozessorwechsel nur -- bei Abgabe durch den Thread oder -- Zeitscheibenwechsel Vorteil bei User-Level-Threads (wie DCE), deren Laufzeitsystem in einem Kernel-Level-Thread („virtueller Prozessor“) liegt. Ruft ein User-Level-Thread eine Funktion auf, und diese eine Kernfunktion, dann wird der Prozessor dem virtuellen Prozessor nicht entzogen, aber er kann ihn abgeben, z.B. wenn er im Moment keine Arbeit auszuführen hat. BS-Kerne
BS-Kerne
Minimale Kernfunktionalität: - Authentisierung Minimalkerne Minimale Kernfunktionalität: - Authentisierung Basis für geschützten Zugriff auf Geräte - Prozessorzuteilung - Rahmenzuteilung Fairness; abstrakte Maschine - einfache Kommunikation zum Informationsaustausch zwischen disjunkten Adressräumen; muß bei nichtblockierenden Kernen asynchron sein (send/receive). Wert: Universalität BS-Kerne