
Betriebssysteme
Grundlagen
Ein Betriebssystem ist ein Programmpaket, das als Vermittler zwischen
dem Benutzer/Programmierer und der Hardware eines Computers fungiert.
Die wichtigsten Aufgaben sind:
- Stellt dem Benutzer eine "Erweiterte Maschine" zur
Verfügung, d.h. das BS vereinfacht das Programmiermodell der
Maschine durch Bereitstellung von Funktionen auf höherem
Abstraktionsniveau
- Verwaltung von Ressourcen, d.h. effiziente Unterstützung von
Hardware
- Frühe Systeme:
- Lochkarten und Klinkenfelder (50er Jahre)
- Batch Systems (Stapelsysteme):
-
- » Resident Monitor
-
Jobs werden nicht mehr vom Operator geladen, sondern
von einem Programm, das mit Kontrollkarten ($JOB, $RUN, $END...)
gesteuert wird.
- » Offline-Processing
-
3 Rechner: Lochkarten auf Band übertragen, Berechnung (Eingabe-,
System-, Ausgabebänder), Ausgabe von Band auf Drucker. (60er Jahre)
- » Spooling (Simultanous Peripheral Operation On Line)
-
Ein- und
Ausgabe wird auf Platte gepuffert, die CPU liest Eingabe (Karten) von
und schreibt die Ausgabe auf die Platte.
- Multiprogrammed Batch Systems (Mehrprogrammbetrieb):
- Aufteilung des
Hauptspeichers, so daß mehrere Aufträge im Speicher gehalten werden
können. Wenn Auftrag terminiert, lädt BS neuen Auftrag.
- Time-Sharing Systems:
- Interaktiver Betrieb, Benutzer sind über
Terminals mit Rechner verbunden.
- PC-Systeme:
- Benutzerfreundliche Software, nur auf Singe-User Betrieb
ausgelegt
- Parallele Systeme:
- Eng gekoppelt: mehrere Prozessoren arbeiten auf
einem Speicher. Symmetrisch: jeder Prozessor hat BS, BS kommunizieren
miteinander, Asymmetrisch: jeder Prozessor hat spezielle Aufgaben, Hauptproz.
delegiert Aufgaben auf Hilfsprozessoren.
- Verteilte Systeme (Distributed Systems):
- Lose gekoppelt:
mehrere Prozessoren arbeiten zusammen, jeder hat eigenen Speicher
und Systemtakt
- Real-Time Systems:
- BS garantiert Einhaltung von Zeitcontraints.
Computersysteme bestehen aus der CPU, einer Reihe von
Hardware-Controllern und dem Hauptspeicher, die über einen
Systembus kommunizieren. Kommunikation erfolgt durch Interrupts.
- » Interrupt
-
Von Hardware (Signal) oder Software (spezielle
Operation: System Call) erzeugte
Nachricht an den Prozessor. Dieser unterbricht seine aktuelle Aufgabe und
verzweigt zu einer Interruptbehandlungsroutine.
- » Trap (Exception)
-
Durch Fehler (Div. durch 0) oder Anfrage
des Benutzers erzeugter Softwareinterrupt.
- » Synchrone I/O
-
Nach dem Start einer I/O-Operation wird dem
aufrufenden Prozeß die Kontrolle erst nach Beendigung der Op.
übertragen (wait-Anweisung bis zum nächsten Interrupt).
- » Asynchrone I/O
-
Der Prozeß startet die I/O-Operation und
erhält sofort die Kontrolle wieder. Der Prozeß fragt mit einem
System-Call bei dem Betriebssystem an, ob die I/O-Op. beendet
wurde. BS verwaltet die Geräte in einer Device-Status-Tabelle
(pro Gerät Typ, Adresse, Status, Liste mit Anfragen).
- » Polling
-
I/O-Devices nach Interruptursprung fragen.
Alternative: Interruptvektor (Tabelle mit Behandlungsroutinen).
- » DMA (Direct Memory Access)
-
Gerät kann ohne Benutzung der
CPU Daten mit dem Speicher austauschen. Vorteil: weniger Interrupts.
- » Memory-Mapped-I/O
-
Adreßbereiche der Controller sind
Speicherfenster im Adreßraum des Hauptspeichers. Zugriff auf diese
Speicherbereiche bewirkt Transfer zum Controller.
- » Speicherhierarchie
-
Register <->
Cache <->
Hauptspeicher <->
Ramdisk <->
Platte/Diskette <->
Optische Disk <->
Bänder
- » Cache Konsistenz
-
Im Cache befindliches Datum und originales
Datum müssen übereinstimmen.
- » Cache Kohärenz
-
Datum in zwei Caches (z.B. bei zwei CPUs)
muß übereinstimmen.
Softwarefehler (Illegal Instruction, Illegal Adress) werden dem
Betriebssystem per Trap mitgeteilt. Das BS wählt geeignete
Maßnahmen (z.B. Seiteneinlagerung bei illegaler Adresse). Zwei Modi:
- » User Mode
-
Speicherschutz ist aktiv, keine privilegierten
Befehle (Grenz-, Instr.-, Timerregister setzen, E/A-Befehle,
Modusumschaltung, HALT) erlaubt.
- » Supervisor Mode (Monitor Mode)
-
keine Schutzmechanismen
aktiv, nur das BS sollte in diesem Modus laufen.
- » Timer
-
Timerregister wird auf best. Wert gesetzt und
fortlaufend von der Hardware dekrementiert. Erreicht der Registerwert
Null, wird ein Interrupt ausgelöst. Benutzung: Prozeßumschaltung,
Ermöglicht das Abbrechen von Prozessen, die sich z.B. in
Endlosschleifen befinden.
· Prozeßverwaltung (Erzeugen, Löschen, Abbrechen, Synchonisation,
Kommunikation, Deadlockbehandlung)
· Hauptpeicherverwaltung (Speicherbelegung (Wer Was?, Was Frei?),
Speicher allozieren und deallozieren)
· Sekundärspeicherverwaltung (Freier Speicher, Allokation,
Disk Scheduling)
· Ein/Ausgabe (Puffer, Gerätetreiber)
· Dateiverwaltung (Anlegen, Löschen ..., Verzeichnisse)
· Schutzmechanismen (Hardwareschutz, Zugangskontrollen, ...)
· Netzwerkunterstützung
· Benutzerinterface/Kommandointerpreter
· Programmausführung
· Ein/Ausgabeoperation
· Dateioperatonen
· Kommunikation
· Fehlererkennung
· Ressourcenverwaltung
· Benutzerabrechnung
· Schutz
- » Monolithisches System
-
Betriebssystem ist Sammlung von
Prozeduren ohne Modulstruktur (MS-Dos).
- » Modulares System
-
BS besteht aus mehreren, klar abgegrenzten
Modulen.
- » Schichtenmodell
-
Anordnung der BS-Dienste in einer
Hierarchie von Schichten (Layer). Jede Schicht ist ein abstraktes
Objekt mit gekapselten Datenstrukturen und benutzt nur die Dienste
der darunterliegenden Schicht.
+ einfacher Entwurf, Wartung, Erweiterung, Debugging
- adäquate Definition der Schichten schwierig (welche Schicht liegt
über welcher)
- geringere Effizienz durch mehrfachen Aufruf von Diensten
der nächst unteren Schicht.
Beispiel: THE:
Benutzerprogramme <->
I/O Puffer <->
Treiber für Konsole <->
Speicherveraltung <->
CPU Scheduling <->
Hardware
- » Virtuelle Maschinen
-
Simuliert für den Benutzer eine gesamte
Maschine mit eigener Hardware (Speicher...) und eigenem BS/Kernel mit
den Eigenschaften einer realen Maschine.
Benutzung: Emulation anderer Hardware (z.B. MS-Dos/I386 Emulator auf
Sun), Entwicklung/Analyse von Betriebssystemen.
- » Client/Server-Modell
-
BS besteht aus minimalem Kern, der
lediglich die Kommunikation zwischen Prozessen ermöglicht.
Anforderungen werden als Auftrag eines Clientprozesses an einen
Serverprozess (Dateisystem, Speicherverwaltung, ...) realisiert.

Last modified: Tue Nov 16 00:18:47 MET 1999
, generated by
TOVL