Folie 1 Betriebssysteme 1 Thomas Kolarz

Betriebssysteme 1 Thomas Kolarz Folie 1 Betriebssysteme I -­‐ Inhalt 0.
Einführung, Geschichte und Überblick 1. Prozesse und Threads (die AbstrakFon der CPU) 2. Speicherverwaltung (die AbstrakFon des Arbeitsspeichers) 3. Dateisysteme (die AbstrakFon der PlaPe) 4.  Eingabe und Ausgabe 5.  VerFefung am Beispiel von Linux 6.  Virtuelle Maschinen und Verteilte Systeme Betriebssysteme 1 Thomas Kolarz Folie 2 4. Eingabe und Ausgabe Grundlagen -­‐ 
-­‐ 
-­‐ 
Ein-­‐/Ausgabegeräte KlassifikaFon Ein-­‐/Ausgabeport Nummern Memory Mapped Ein-­‐/Ausgabe Interrupts -­‐ 
-­‐ 
Interrupts Präzise und Unpräzise Interrupts Gerätetreiber -­‐ 
Gerätetreiber Betriebssysteme 1 Thomas Kolarz Folie 3 Ein-­‐/Ausgabegeräte KlassifikaAon   Ein-­‐/Ausgabegeräte werden grob in die zwei Klassen blockorienFerte Geräte und zeichenorienFerte Geräte eingeteilt.   Ein blockorienAertes Gerät speichert InformaFonen in Blöcken fester Größe, von denen jeder eine eigene Adresse besitzt.   Jeder Block kann unabhängig von allen anderen gelesen oder geschrieben werden.   Die FestplaPe ist ein blockorienFertes Gerät. Betriebssysteme 1 Thomas Kolarz Folie 4 Ein-­‐/Ausgabegeräte KlassifikaAon   Ein zeichenorienAertes Gerät erzeugt oder akzepFert Zeichenströme, ohne dabei auf irgendeine Blockstruktur zu achten. Es ist nicht adressierbar und kennt keine SuchoperaFon (z.B. Mäuse, Zeilendrucker, NetzwerkschniPstellenkarten)   Das KlassifikaFonsschema in zeichen-­‐ und blockorienFerte Geräte ist nicht perfekt. Die Übergänge sind zum Teil fließend.   Z.B. können Bandlaufwerke als blockorienFerte Geräte mit wahlfreiem Zugriff genutzt werden, da sie die Blöcke von der PlaPe speichern und es gibt Geräte, die nicht eingeordnet werden können (z.B. Uhren). Betriebssysteme 1 Thomas Kolarz Folie 5 Ein-­‐Ausgabeport-­‐Nummern   Zwischen BS und dem „mechanischen“ Gerät befindet sich der Controller (z.B. als Steckkarte im PC oder Chip auf dem Mainboard).   Das BS iniFalisiert den Controller mit ein paar Parametern und überlässt die weitere Steuerung des Gerätes dem Controller. Betriebssysteme 1 Thomas Kolarz Folie 6 Ein-­‐Ausgabeport-­‐Nummern   Ein Controller besitzt Register, über die das Betriebssystem mit dem Gerät kommuniziert (schreibend u. lesend).   Zusätzlich zu den Registern besitzen viele Geräte Datenpuffer, die ebenfalls zum Datenaustausch mit dem System genutzt werden.   Die Adressen dieser Register sind die Ein-­‐/Ausgabeport-­‐Nummern und bilden den Ein-­‐Ausgabeport-­‐Namensraum.   Die Gerätesteuerregister werden über spezielle Ein-­‐/Ausgabebefehle angesprochen, die zum Assemblercode gehören. Betriebssysteme 1 Thomas Kolarz Folie 7 Memory Mapped Ein-­‐/Ausgabe   Anstelle von separaten Kontrollregistern können Bereiche im Arbeitsspeicher als Kontrollregister reserviert werden.   Gewöhnlich liegen die zugewiesenen Adressen im oberen Adressraum. Diese Methode nennt man Memory-­‐Mapped-­‐Ein-­‐/Ausgabe. Betriebssysteme 1 Thomas Kolarz Folie 8 Interrupts Grundlagen   Eines der wichFgsten HilfsmiPel der allgemeinen Ein-­‐/Ausgabe sind die Programmunterbrechungen (oder Interrupts). Betriebssysteme 1 Thomas Kolarz Folie 9 Interrupts Grundlagen   Sobald ein Gerät eine Aufgabe beendet hat, erzeugt es ein Interrupt (sofern vom Betriebssystem zugelassen).   Der Interrupt-­‐Controller legt eine Nummer auf die Adressleitung (spezifiziert das Gerät) und ein Signal zur Unterbrechung der CPU.   Die Nummer wird als Index für eine Tabelle (den sog. Interrupt-­‐Vektor) verwendet, aus der der neue Befehlszähler geholt wird.   Der neue Befehlszähler zeigt auf den Anfang der entsprechenden Interrupt Service RouFne (UnterbrechungsrouFne).   Bevor die UnterbrechungsrouFne aufgerufen wird, wird der aktuelle Befehlszähler und einige Register von der HW gesichert Betriebssysteme 1 Thomas Kolarz Folie 10 Interrupts Grundlagen   Abhängig vom Aumreten der Unterbrechung unterscheidet man synchrone und asynchrone Unterbrechungen.   Synchrone Interrupts sind an die Ausführung einer InstrukFon gebunden und damit besFmmbar. Beispiele sind: Somware Interrupts durch Trap-­‐Befehle Division durch Null Adressfehler   Asynchrone Interrupts sind nicht an den Programmablauf gebunden. Sie hängen von prozessorexternen Faktoren ab. Beispiele sind: Betriebssysteme 1 Busfehler Unterbrechungen ausgelöst von Peripherieeinheiten Thomas Kolarz Folie 11 Präzise und Unpräzise Interrupts Ein Interrupt, das die Maschine in einem wohldefinierten Zustand hält, nennt man präzises Interrupt. Es besitzt die folgenden 4 Eigenschamen: 1.  Der Befehlszähler wird an einer bekannten Stelle gesichert. 2.  Alle Befehle vor dem aktuellen, auf den der Befehlszähler zeigt, wurden vollständig abgearbeitet. 3.  Kein Befehl nach dem aktuellen Befehl wurde schon ausgeführt. 4.  Der Ausführungsstand des Befehls, auf den der Befehlszähler zeigt, ist bekannt. Ein Interrupt, das diese Kriterien nicht erfüllt, nennt man unpräzises Interrupt. Betriebssysteme 1 Thomas Kolarz Folie 12 Präzise und Unpräzise Interrupts Betriebssysteme 1 Thomas Kolarz Folie 13 Präzise und Unpräzise Interrupts   Lässt man unpräzise Interrupts zu, hat das Betriebssystem enorm viel Arbeit.   Eine große Menge von Daten (für die vielen unterbrochenen Befehle) muss auf dem Stack gespeichert werden, was die Ausführung stark verzögern kann.   Der Code der nöFg ist, um die normale Befehlsausführung nach der Interrupt-­‐
behandlung wieder aufzunehmen ist i.a. sehr kompliziert.   Bei sehr schnellen superskalaren Prozessoren kann es deshalb zu der paradoxen SituaFon führen, dass sie für einen Echtzeitbetrieb ungeeignet sind, da ihre Interrupts zu langsam sind. Betriebssysteme 1 Thomas Kolarz Folie 14 Präzise und Unpräzise Interrupts   Für präzise Interrupts, benöFgt man bei superskalaren Prozessoren (z.B. PenFum Serie) eine sehr komplexe Interruptlogik, die viel Platz auf dem Chip benöFgt.   Der Prozessor muss jede AkFon sorgfälFg protokollieren und SchaPenkopien der Register anzulegen, damit ein präziser Interrupt jederzeit ausgelöst werden kann.   Nicht bei jedem Interrupt ist es notwendig, den Zustand wieder herzustellen, z.B. bei schwerwiegenden Fehlern des Programms wird ein Interrupt ausgelöst und das Programm danach nicht mehr fortgesetzt.   PenFum Prozessoren haben präzise Interrupts, so dass auch ältere Somware korrekt ausgeführt werden kann. (Ältere Somware war noch nicht unbedingt auf superskalare Prozessoren vorbereitet!) Betriebssysteme 1 Thomas Kolarz Folie 15 Gerätetreiber   Jedes Ein-­‐/Ausgabegerät benöFgt geräteabhängige Steuer-­‐SW, den Gerätetreiber.   Die Gerätetreiber gehören zwar zum BS, werden aber von den Herstellern der Geräte programmiert und mit den Geräten ausgeliefert.   Normalerweise sind die Gerätetreiber ein Teil des BS-­‐Kerns, damit sie auf benöFgte HW und insbesondere auf die Register des Controllers zugreifen können.   Der Ansatz die Treiber so zu entwickeln, dass sie im Benutzeradressraum ablaufen ist ebenfalls möglich (Zugriff auf die Geräteregister dann über Systemaufrufe). Betriebssysteme 1 Thomas Kolarz Folie 16 Gerätetreiber Betriebssysteme 1 Thomas Kolarz Folie 17 Zusammenfassung   Die wichFgsten Ressourcen eines Betriebssystems für die Steuerung der Ein-­‐ und Ausgabe, sind Interrupts und Gerätetreiber.   Die Gerätetreiber sind die SchniPstelle zu den Geräten und müssen gerätespezifisch entwickelt und eingebunden werden.   Interrupts (Programmunterbrechungen) sind notwendig, um die asynchrone Natur der KommunikaFon mit den Geräten zu berücksichFgen.   Die KommunikaFon mit der Peripherie bezieht dabei nicht notwendigerweise die CPU ein, so dass diese zwischenzeitlich für andere Aufgaben genutzt werden kann.   Bei modernen superskalaren Prozessoren ist die Interruptbehandlung entweder für das Betriebssystem oder für die Logik der CPU eine besondere Herausforderung. Man spricht in diesem Fall von präzisen und unpräzisen Interrupts. Betriebssysteme 1 Thomas Kolarz Folie 18