Einführung in Betriebssyteme


von Prof. Jürgen Plate

4 Peripherieverwaltung

Die Peripheriegeräte gehören zusammen mit dem Prozessor und dem Hauptspeicher zu den elementaren Handwarekornponenten einer Rechenanlage. Entsprechend ihrer Funktion können sie in drei Gruppen unterteilt werden:

4.1 Dateien

Zur Erinnerung: Dateien speichern eine Menge von gleichartigen Objekten (z. B. Bytes) unter einem Namen. Das BS stellt Operationen zum Bearbeiten von Dateien zur Verfügung: Alle Betriebssysteme zielen auf Geräteunabhängigkeit ab, d. h. ein Programm muß sich nicht (oder zumindest nur wenig) darum kümmern, ob eine Datei sich auf Platte, Magnetband oder einem anderen Massenspeicher befindet. Weiterhin sollen Ein- und Ausgabe auf einem Peripheriegerät prinzipiell genauso erfolgen, wie die Lese- und Schreiboperationen auf einer Datei. Bei vielen BS ist es möglich, auf einen beliebigen Datensatz innerhalb einer Datei zuzugreifen (wahlfreier Zugriff). Bei anderen Systemen ist nur sequentielles Lesen möglich.

Bei einigen BS wird zwischen verschiedenen Speichergeräten unterschieden (z. B. MS-DOS), der Benutzer muß genau spezifizieren, auf welchem Gerät (Laufwerk) sich die gewünschte Datei befindet. Bei anderen BS (z. B. UNIX) kann jedes Gerät in das Dateisystem eingebunden werden, das sich um die, auf diesem Gerät befindlichen, Dateien erweitert.

Ein Sektor ist auch die kleinste Informationsmenge, die von der Platte gelesen oder darauf geschrieben werden kann. In der Regel nimmt eine Datei mehrere Sektoren (typische Größen: 512 Byte - 8 KByte) in Anspruch. Das BS sorgt dabei:

Für die "Buchführung" über freie und belegte Sektoren gibt es verschiedene Methoden. Am gebräuchlichsten sind:

Zusätzlich werden Informationen über die Datei selbst benötigt, z. B.:

4.2 Verzeichnisse (Kataloge, Ordner, Directories, Folder)

Bei frühen BS bestand das Dateisystem lediglich aus einem Verzeichnis, das alle oben aufgeführten Informationen zu jeder der Dateien in einer Liste zusammengefasst hat. Über dieses Verzeichnis kann dann gezielt auf eine bestimmte Datei zugegriffen werden.

Ein erster Schritt der Verbesserung war die Unterteilung in Benutzerbereiche auf der Platte (z. B. bei CP/M) oder ein Verzeichnis für jeden Benutzer. Für Benutzer mit vielen Dateien war diese Lösung jedoch immer noch unbefriedigend, da eine logische Strukturierung der Dateien unmöglich war. Erst eine allgemeine Hierarchie von Katalogen (z. B. als Baum) bot die gewünschte Strukturierungsmöglichkeit (UNIX, MS-DOS).

Ist ein Dateisystem als Baum organisiert, benötigt man eine Methode, den Dateinamen zu spezifizieren:

Zum Beispiel:

absoluter Pfadname:/meier/projekt/daten/dat1
working directory:/meier/projet
relativer Pfadname:daten/dat1

System mit nur einem Verzeichnis: z. B. CP/M

Das Verzeichnis besteht aus einer Tabelle mit Einträgen fester Länge:

Die Datei ist in Blöcken auf der Platte gespeichert, wobei der letzte Block nicht vollständig gefüllt sein muß. Das Feld "Extend" wird benötigt, wenn die Länge der Datei 16 Blöcke überschreitet. In diesem Fall wird ein zweiter Eintrag angelegt, und "Extend" hochgezählt. Das Verzeichnis hat eine feste Größe.

Hierarchisches System: z. B. MS-DOS

Hier enthält das Verzeichnis nur die erste Blocknummer der Datei, die als Index für die FAT (File Allocation Table) dient und so die Bestimmung der weiteren Blocknummern gestattet. Das Root-Verzeichnis hat eine feste Größe; die Unterverzeichnisse sind Dateien, die beliebige viele Einträge aufnehmen können.

Hierarchisches System: z. B. UNIX

Bei UNIX ist die Verzeichnisstruktur sehr einfach. Jeder Eintrag besteht nur aus dem Dateinamen und einer Nummer. Der Dateiname war anfangs auf 14 Zeichen begrenzt, kann aber heute bei den meisten Systemen sehr viel länger sein. Die Nummer verweist auf den sogenannten i-node, der alle weiteren Informationen zur Datei enthält. Die Verzeichnisse sind Dateien. Alle i-nodes haben einen festen Platz auf der Platte.

Zusätzlich zu den Dateiverweisen muß bei den hierarchischen Dateisystemen in Unterverzeichnissen (außer Root) noch mindestens ein Verweis auf das übergeordnete Verzeichnis enthalten sein, da sonst ein "Navigieren" in den Verzeichnissen nicht möglich ist (in der Regel ".."). In der Regel existiert noch ein weiterer Verweis auf das Verzeichnis selbst (in der Regel".").

Im Gegensatz zu CP/M oder MS-DOS, bei dem die einzelnen Plattenlaufwerke durch einen Buchstaben, gefolgt von einem Doppelpunkt, gekennzeichnet werden, sind bei UNIX die Platten in das Dateisystem eingebunden und können an ein beliebiges Unterverzeichnis gekoppelt werden.

4.3 Gemeinsam genutzte Dateien

Wenn mehrere Benutzer die gleiche Datei verwenden wollen, kann es nützlich sein, wenn jeder Benutzer die Datei aus einem seiner Kataloge ansprechen (ohne den absoluten Pfad zu verwenden) und u. U. auch einen eigenen Namen für die Datei vergeben kann (bei Namenskonflikt mit eigenen Dateien).

Es wird dann ein Verweis auf die Datei installiert, ein Link. Durch die Einführung von Links dürfen die durch die Datei belegten Plattenblöcke nicht im Katalog gespeichert werden, da sonst alle Katalogeinträge, die auf die Datei verweisen, bei jeder Änderung an der Datei aktualisiert werden müßten. Die Lösung kann auf zwei Arten erfolgen:

Probleme: Die erste Lösung kann in Mehrbenutzersystemen zu Inkonsistenzen führen. Angenommen Benutzer A ist Eigentümer einer Datei und gestattet Benutzer B, ein Link auf diese Datei zu setzen. Zu einem späteren Zeitpunkt wird der Benutzer A aus dem System gelöscht (und damit auch seine Dateien). Nun gibt es über das Link von B eine Datei, zu der es keinen Eigentümer mehr gibt.

Die zweite Lösung vermeidet solche Inkonsistenzen, erfordert beim Dateizugriff jedoch einen höheren Verwaltungsaufwand (aus der Link-Datei den Pfad lesen und erst damit die Datei eröffnen). ISt die Datei nicht mehr vorhanden, erfolgt eine Fehlermeldung.

4.4 Ein- und Ausgabegeräte

E/A-Geräte werden in der Regel in das Dateisystem eingebunden und aus Benutzersicht wie Dateien behandelt (die u. U. von "normalen" Dateien abweichende Eigenschaften haben). E/A-Geräte können grob in zwei Kategorien eingeteilt werden:

Einige Geräte lassen sich nicht definiert einordnen (z. B. Zeitgeber = Timer). Zur Ansteuerung der Geräte ist systemnahe und z. T. hardwareabhängige Software des BS notwendig. In der Regel erhält jedes Gerät einen fest vorgegebenen Namen, unter dem es dann wie eine Datei angesprochen werden kann. Je nach Typ können Geräte gemeinsam von allen Prozessen verwendet werden (z. B. Platte) oder sie sind exclusiv für einen Prozeß reserviert (z. B. Plotter). Die Software zur Ansteuerung von Geräten läßt sich in zwei Ebenen strukturieren:

Gerätesteuerung

Die Peripheriegerätesteuerung erfolgt auf der Hardware-Ebene über den Austausch von Statussignalen und Daten zwischen den angeschlossenen Geräten und dem Prozessor. Die Programme zur Steuerung von Peripheriegeräten werden Treiber (driver, handler) genannt. Die Komplexität der Steuerungsaufgaben ist weitgehend vom Geräteverhalten abhängig.
Alle drei Methoden des Signal- und Datenaustausches können zum Einsatz kommen (programmgesteuert, interruptgesteuert, DMA).

4.5 Gemeinsame Nutzung von Betriebsmitteln

Manche Betriebsmittel dürfen nicht gleichzeitig von mehreren Prozessen genutzt werden. Klassisches Beispiel ist hier der Drucker. Die Ausgaben mehrerer Prozesse würden vermischt. Abhilfe bietet hier die Nutzung des Druckers durch einen einzigen Prozeß, den Druckerspooler. Alle Prozesse übergeben ihre Ausgaben an diesen Prozeß, der die Druckaufträge in einer Warteschlange speichert und nacheinander abarbeitet.

Beim Wettbewerb mehrerer Prozesse um Betriebsmittel (Resourcen), zu denen ja primär Speicher, Dateien und die (als Dateien eingebundenen)Geräte gehören, kann es zu sogenannten Verklemmungen (dead locks) kommen.
Eine Verklemmung tritt bei Anforderungen von Resourcen durch mehrere Prozesse dann auf, wenn ohne drastische Aktionen des BS all diese Anforderungen niemals erfüllt werden können. Folge: Die Prozesse blockieren sich gegenseitig. Dazu ein Beispiel aus dem täglichen Leben.

Das Problem wurde schon vor vielen Jahren behoben. Die Abbiegevorschriften wurden so geändert, daß die Autos voreinander abbiegen dürfen.

Beispiel 2: System mit Drucker und Magnetband, 2 Prozesse

Setzt man für "Drucker" und "Bandstation" zwei Datensätze einer Datenbankdatei, so führt auch diese Situation zur Verklemmung. Nahezu jede Situation, in der Prozesse Resourcen exklusiv anfordern, kann zur Verklemmung führen. Jedes exklusive Betriebsmittel kann immer nur von einem Prozeß angefordert werden. Solange das Betriebsmittel nicht frei ist, verbleibt der Prozeß im Zustand "blockiert". Nicht jede Anforderung von exklusiven Resourcen führt zur Verklemmung. Für das Auftreten einer Verklemmung müssen folgende Bedingungen erfüllt sein:

Im allgemeinen werden vier Strategien zur Behandlung von Verklemmungen verwendet:

Banker-Algorithmus: Eine Methode zur Vermeidung von Verklemmungen

Wie eine Bank niemals soviel Geld bereithält, daß alle Kreditrahmen der Kunden voll ausgeschöpft werden können, kann auch das BS die Resourcen so verwalten, daß immer mindestens ein Prozeß voll befriedigt werden kann. Dazu muß bei jedem Prozeß ein Maximalwert für die anzufordernden BM existieren.

Beispiel: Der Rechner hat 10 Magnetbandstationen

     Zustand 1            Zustand 2            Zustand 3 
 Prozess bel. Max.     Prozess bel. Max.     Prozess bel. Max. 
 -----------------     -----------------     ----------------- 
     A    0    6          A    1    6          A    1    6    
     B    0    5          B    1    5          B    2    5 
     C    0    4          C    2    4          C    2    4 
     D    0    7          D    4    7          D    4    7 
 -----------------     -----------------     ---------------- 
       sicher                sicher              unsicher 
       10 frei               2 frei              1 frei 
Ein Zustand ist dann sicher, wenn das BS mindestens bei einem Prozeß seine Maximalforderung erfüllen kann (die anderen müssen u. U. warten).

Zustand 1 ist sicher, da jeder Prozeß befriedigt werden kann.

Zustand 2 ist sicher, da Prozeß C befriedigt werden kann.

Zustand 3 ist unsicher, da keiner der der Prozesse voll befriedigt werden kann.

Das Schema kann auf beliebig viele BM erweitert werden.

4.6 Dienstprogramme des Dateisystems

Auf der obersten BS-Ebene treten die Benutzer über eine Menge von Kommandos (= Programme) mit dem Rechner in Dialog. Die Benutzerschnittstelle muß dazu eigentlich nur eine Eingabe des Benutzers entgegennehmen (z. B. den Namen eines Programms) und diese Eingabe interpretieren --> Kommandointerpreter oder Shell. Auch bei BS mit geringem Befehlsumfang existieren üblicherweise Kommandos:

Diese Kommandos können entweder Teil des Kommandointerpreters sein (schnelle Ausführung) oder durch getrennte Programme ausgeführt werden, die auf der Platte gespeichert sind. Dabei stützt sich der Kommandointerpreter wieder auf elementate Operationen des BS.

Zum Inhaltsverzeichnis Zum nächsten Abschnitt


Copyright © FH München, FB 04, Prof. Jürgen Plate