Up Forward

Betriebssysteme

Grundlagen

1 Grundlagen

1.1 Einleitung

1.1.1 Aufgaben eines BS

Ein Betriebssystem ist ein Programmpaket, das als Vermittler zwischen dem Benutzer/Programmierer und der Hardware eines Computers fungiert. Die wichtigsten Aufgaben sind:

1.1.2 Geschichte der BS

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.

1.2 Struktur von Computersystemen

Computersysteme bestehen aus der CPU, einer Reihe von Hardware-Controllern und dem Hauptspeicher, die über einen Systembus kommunizieren. Kommunikation erfolgt durch Interrupts.

1.2.1 Ein/Ausgabe

» 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.

1.2.2 Speicher

» 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.

1.2.3 Hardwareschutz

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.

1.3 BS-Strukturen

1.3.1 Komponenten

·  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

1.3.2 Dienste

·  Programmausführung
·  Ein/Ausgabeoperation
·  Dateioperatonen
·  Kommunikation
·  Fehlererkennung
·  Ressourcenverwaltung
·  Benutzerabrechnung
·  Schutz

1.3.3 Strukturen

» 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.

Up Forward


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