<< 1.4 Historische Entwicklung | Index | 2.2 Interrupt und Systemaufruf >>


2.1 System-Architekturen

Monolithische Systeme

  • Ein großer, komplexer Systemkern (ein Binary), der alle Dienste enthält
    • Prozedural aufgebaut, keine Kapselung, kein Information-Hiding?
    • Alle System-Funktionen können sich gegenseitig aufrufen, wenn sie wollen
    • Unterteilbar in drei Schichten:
      1. Hauptfunktion (eigentlicher Kernel-Trap): behandelt die System-Calls?
      2. Service-Funktionen: der eigentliche Systemdienst, der per System-Call aufgerufen wurde
      3. Hilfsfunktionen: werden von den Service-Funktionen benötigt, um ihren Dienst zu erfüllen
  • In neueren Architekturen: Modularisierung
    • Zusammenfassung und Abgrenzung von System-Funktionalitäten in einzelne Module
  • Benutzermodus und (priviligierter) System-Modus
    • Schutz vor direktem HW-Zugriff oder fehlerhaften Userlevel-Zugriffen
    • Wird HW-seitig über ein Bit festgelegt
    • System-Modus: Alle Dienste des BS-Kerns werden in diesem Modus ausgeführt
    • Benutzer-Modus
      • Nur nicht-priviligierte Befehle verfügbar
      • Aufruf eines Systemdienstes über System-Calls? (trap): Moduswechsel, Kontrollierter Einsprung in BS-Kern
  • Vorteile:
    • Effizient, schnelle Prozedureaufrufe
  • Nachteile:
    • Kernel sehr Hardware-abhängig (mangels Modularisierung)
    • keine Abschottung der Betriebssystem-Komponenten untereinander
    • schechte Wartbarkeit, Austausch von ganzen Funktionseinheiten schwierig
  • Beispiele:
    • Linux (mit Modularisierung)

Geschichtete Systeme

  • Unterteilung der Funktionen in mehrere Schichten => Kapselung der Dienste
  • Untere Schicht bietet der darüberliegenden ihre Dienste über definierte Schnittstellen an
  • Obere Schicht baut ihre Dienste auf Grundlage der Funktionalität der nächst unteren Schicht, Funktionsaufruf erfolgt nur von oben nach unten
  • Analogie zum OSI-Schichtenmodell in TK-Technik
  • Vorteile:
    • Reduktion der Komplexität durch Schichtenbildung, Modularisierung
  • Nachteile:
    • Aufwändig: Aufruf auf oberer Schicht erfordert Durchlauf aller Schichten und wieder zurück, inkl. Parameterübergabe
    • Aufteilung der Funktionalitäten in die Schichten nicht immer eindeutig.
      Bsp.: Festplattentreiber auf Schicht a, Memory-Manager auf Schicht b, Swapping-Dienst auf welche Schicht?

Virtuelle Maschine

  • Vollständige Isolation der Prozesse
  • Bessere Portabilität
  • Aber: Aufwendig, Ressourcen-Sharing ist schwierig

Client-Server-Architektur mit Mikrokern

  • Mikrokern: Kleiner Betriebssystemkern
    • Strategie: möglichst viele Subsysteme außerhalb des Kerns halten
  • Zusammenfassen von Systemdiensten zu Dienstklassen
  • Realisierung der Dienstklassen mittles Server
  • Benutzerprogramme (Clients) nutzen die Dienste dieser Server mittels Interprozesskommunikation, z. B. das Lesen einer Datei
    • Diese Interprozesskommunikation bleibt Aufgabe des Mikrokerns
  • Vorteile:
    • Durch stark modularisierten Aufbau bleiben die Module klein, übersichtlich und wartbar
    • Durch einzelne Module anpassbar oder austauschbar, ohne Eingriff in den Kernel
    • System leichter verteilbar (Interprozesskommunikation über ein Netzwerk statt maschinenintern)
    • Server laufen in Benutzermodus, haben keinen direkten HW-Zugriff. Bei Absturz eines Servers bliebt das BS davon unberührt.
    • Fehler in einem Server in Benutzermodus bietet keine so große Sicherheitsgefahr wie in einem Kernel-Dienst
  • Nachteile:
    • Nachricht werden über Kernel gesendet, die Dienste aber von vielen einzelnen Prozessen erbraucht: viele Prozesswechsel notwendig (Verwaltungsaufwand)
  • Beispiele:
    • Windows NT/2k (mit Einschränkungen)

Verteilte Betriebssysteme

  • Läuft auf mehreren unabhähingen Maschinen
  • Erscheint nach außen wie ein zentrales Betriebssystem, versteckt seinen verteilten Charakter (Transparenz)
  • Unterteilung in lose gekoppelte (NOS) und eng gekoppelte Systeme (DOS)
  • Siehe Software Conpets of Distributed Systems

Nach oben

Zuletzt geändert am 14 März 2005 14:47 Uhr von chrschn