Fragen zu KE5 - Aufgaben PDF

Title Fragen zu KE5 - Aufgaben
Author Pirabakaran Vijayakumar
Course Betriebssysteme
Institution FernUniversität in Hagen
Pages 7
File Size 159.1 KB
File Type PDF
Total Downloads 48
Total Views 118

Summary

Aufgaben ...


Description

KE 5 1. Wie kommuniziert die CPU mit Geräten? Wie kann die Kommunikation zwischen CPU und Controllers realisiert werden? - Die Kommunikation zwischen CPU, Hauptspeicher und Controller erfolgt meistens über eine BusSystem. Viele Geräte werden nicht direkt mit der CPU verbunden, sondern über einen Controller. Der Grund für die Einführung von Controllern liegt vor allem darin, dass andernfalls die CPU mit sehr viel elementaren Aufgaben bei der Steuerung der Geräte belastet würde. Ein weiterer Vorteil ist, dass man neuartige Geräte mit Hilfe eines Controllers, der einen bereits bekannten Gerätetyp simuliert, an einem Rechner betreiben kann, ohne das BS zu ändern. Die geräteabhängigen Funktionen der E/A-Software werden in die Geräte-Treiber verlagert. GeräteTreiber kommunizieren direkt mit deren Controllern über den Bus. Normalerweise ist ein GeräteTreiber Teil des BS-Kerns, damit er auf die Hardware und die Register des Controllers zugreifen kann. Außerdem erfolgt die Kommunikation über die sogenannten I/O-Ports. Die zweite Möglichkeit ist die Realisierung der Register des Controllers als Teil des Hauptspeichers. 2. Wie funktioniert die Ein- und Ausgabe? - Dafür gibt es Controller, das sind Hardware-Komponenten, die Schnittstellen zu den Geräten bilden. Welche drei Techniken gibt es für die Ein-/Ausgabe? - Programm-gesteuerte, Interrrupts-gesteuerte und DMA (direct memory access) Wie funktioniert sie? Welche Vor- und Nachteile haben sie? Programm-gesteuert: - Man kann die von den Applikationen aufgerufenen und vom Betriebssystem exportierten Systemaufrufe synchron arbeiten lassen, d.h. der Prozessor fragt das Statusreguster des Controllers immer wieder ab (busy waiting), ob er für den nächsten Befehl bereit ist. Falls ja, sendet der Prozessor Lese- oder Schreibbefehle an den Controller und überträgt danach die Daten zwischen dem Hauptspeicher und E/A-Geräten. Ein Systemaufruf ist nach Rückkehr zur aufrufenden Applikation fertig ausgefühjrt. Vorteil: ist einfach Nachteil: Der Prozessor wird komplett belegt, bis die gesamte Ein- / Ausgabe beendet ist. Interrrupt-gesteuert: - Besteht aus drei Phasen 1. Startphase: Die CPU übermittelt dem Gerät einen E/A-Auftrag Hierzu ruft die CPU ein oder mehrere E/A Operationen mit angesprochenem Gerät auf, wobei die erforderlichen Parametern übermittelt werden und wodurch letzlich das Gerät gestartet und ein Datentransport zwischen Gerät und Puffer bzw. Register initiiert wird. 2. Wartephase: Es wird auf das Ende des Transportes gewartet. 3. Nachbearbeitungsphase: Eventuell aufgetretene Fehler werden analysiert, Puffer reorganisiert und ähnliche Aufgaben erledigt. Das Ende der Wartephase wird durch eine Unterbrechung angezeigt. Vorteile: Applikationen können mehrere überlappende E/A durchführen. Nachteil: sehr viele Unterbrechungen, die wertvolle Zeit der CPU-Zeit kosten. DMA (direct memory access): - Hierkönnen bestimmte Controller Daten in den Hauptspeicher schreiben und die CPU wird erst involviert, wenn die gewünschten Daten bereits im Hauptspeicher sind. Der DMA-Controller besitzt mindestens 4 Register, die vom Prozessor gelesen und geschrieben werden können. Beispiel Fall: Daten aus der Festplatte in den Hauptspeicher.  CPU schreibt die Quelle (Festplatte), das Ziel (Anfangsadresse eines Hauptspeichers) und die Menge der zu übertragenden Daten in die DMA-Register und gibt zusätzlich ein Lese-Kommando mit der Nummer des zu lesenden Sektors an den Controller der Festplatte ab. CPU erledigt dann andere arbeiten. Der Festplatten Controller liest in der Zeit die Daten von der Festplatte in seinen Puffer und führt die Fehlerprüfung durch. Sobald die gültigen Daten im Puffer des Festplatten-Controllers vorliegen, sendet er ein Signal an den DMA-Controller. Der DMA-Controller veranlasst nun den Festplatten-Controller, die Daten aus dem Puffer wortweise über den Systembus in dem vorgegebenen Bereich im Hauptspeicher zu schreiben. Danach erzeugt der DMA-Controller eine Unterbrechung und teilt der CPU so mit, dass die Daten jetzt im Hauptspeicher vorliegen. 3. Wie sieht das Schichtmodell für E/A-Software aus? - Geräteunabhängige Software - Gerätetreiber - Unterbrechungsverarbeitung

Welche Aufgaben hat jede Schicht? Gerätetreiber: - Die naheliegende Funktion eines Gerätetreibers ist das Entgegennehmen von Lese- und Schreibbefehlen aus höher liegenden Schichten, die Überprüfung der Korrektheit der Eingabeparameter und die Übersetzung solcher Parameter zu konkreten physischen Werten. Geräteunabhängige Software: 4. Wie verwaltet das Betriebssystem die E/A-Aufträgen und Geräten? Verwaltung E/A-Aufträge: - Es muss für jedes Gerät eine E/A- Auftragsliste vom Betriebssystem geführt werden. Bei Geräten, die immer nur eine Ein-/Ausgabe zugleich ausführen können (z. B. Bildschirme), kann immer nur ein Auftrag initiiert sein, alle übrigen müssen warten. Wenn das Gerät fertig meldet, ist automatisch klar, welcher Auftrag nun beendet ist. Bei Geräten, die mehrere Aufträge parallel behandeln können und bei denen die Aufträge nicht notwendigerweise in der Reihenfolge beendet werden, in der sie angekommen sind (z. B. bei manchen Platten/Controllern), muss bei jeder Fertigmeldung des Geräts zugleich angegeben werden, welcher Auftrag gemeint ist. Verwaltung Geräte: - Die Gerätezustandstabelle enthält für jedes angeschlossenes Gerät alle derartigen Angaben sowie die E/A Auftragsliste. Bei jeder Unterbrechung, die durch ein E/A-Gerät verursacht worden ist, wird zunächst der zugehörige Eintrag in der Gerätezustandstabelle lokalisiert und die dort vorhandenen Angaben zum Zustand werden ggf. aktualisiert. Sofern ein früher initiierter E/A-Auftrag nunmehr beendet ist, wird der entsprechende Eintrag aus der E/A-Auftragsliste entfernt und ggf. wird der bisher blockierte Prozess in den Zustand ausführungsbereit versetzt. Außerdem kann ggf. ein bisher wartender E/A-Auftrag nunmehr initiiert werden. 5. Warum braucht man Pufferung im Hauptspeicher bei der Ein-/Ausgabe? - Pufferung im Hauptspeicher. Beim Lesen eines Blocks z. B. von einer Festplatte wird insgesamt der Nutzinhalt eines Sektors der Platte in einen Hauptspeicher Puffer im Hauptspeicher übertragen, beim Schreiben umgekehrt. Die Verwendung eines Puffers im Hauptspeicher hat verschiedene Gründe. Wenn ein Benutzerprozess einen Datenblock von einer Platte in einen Datenbereich in seinem Adressraum lesen will, führt er einen read-Systemaufruf aus und blockiert dann und wartet, bis die relativ langsame Übertragung abgeschlossen ist. Danach wird der Block verarbeitet und der nächste Block gelesen, nun blockiert der Prozess wieder. Dieser Vorgang ist sehr ineffizient. Außerdem könnte ein Benutzerprozess aus irgendeinem Grund gezwungen sein, seinen Adressraum zeitweilig aufzugeben, siehe Kurseinheit 3. Deshalb wird zunächst ein Puffer im Kernadressraum angelegt. Die eingelesenen Daten werden zuerst dorthin übertragen und erst später in einem Schritt in den Benutzeradressraum kopiert 6. Welche Techniken gibt es, um exklusive Geräte zu reservieren? - Die Spooling-Technik Wie funktionieren sie? (Siehe auch Kunrseinheit 4) - Spooling verwendet einen Puffer, um die Ausgabedaten für ein Gerät zwischenzuspeichern. Drucker und ähnliche Geräte sind langsam und stehen normalerweise nur in sehr geringer Anzahl zur Verfügung, werden andererseits von sehr vielen parallelen Prozessen benutzt. Zwei parallele Prozesse können natürlich nicht überlappend denselben Drucker benutzen, sonst würden die beiden Ausdrucke vermischt. Drucker sind also exklusiv zu benutzenden Betriebsmitteln, Prozesse müssen daher nacheinander den Drucker benutzen. Beim Spooling simuliert das Betriebssystem für jeden Prozess einen eigenen privaten Drucker. Hierbei werden die Daten, die ein Prozess drucken will, zunächst in einer Datei gesammelt. Ein zyklischer Prozess, der auch Dämon (daemon) oder Hintergrundprozess genannt wird, fügt die Datei in eine Warteschlange (Spooling-Verzeichnis) ein, entnimmt dann immer wieder eine auszudruckende Datei aus dem Spooling-Verzeichnis und gibt sie direkt auf dem Drucker aus. 7. Wie wird eine E/A-Operation durchgeführt? - E/A Operationen sind sind Systemaufrufe. Ein Benutzerprozess kann die E/A Aufrufe nicht selbst durchführen, sondern muss das Betriebssystem beauftragen.

Warum muss ein Benutzerprozess das Betriebssystem beauftragen, eine E/A-Operation auszuführen? - E/A- Systemaufrufe sind privilegierte Befehle, die im Systemmodus ausgeführt werden müssen. Dadurch kann man verhindern, dass ein Benutzerprozess versehentlich oder absichtlich das Betriebssystem zerstört. 8. Welche Aufgaben haben der E/A-Teil des Betriebssystems, der Gerätetreiber, der Interrupt-Handler und Controller bei einer z.B. read()-Operation? Wie arbeiten sie zusammen? 1. Eine Software-Unterbrechung wird ausgelöst; es findet eine Umschaltung vom Benutzermodus in den Systemmodus statt und die geräteunabhängige E/A-Software übernimmt die Kontrolle. 2. Diese prüft die Korrektheit der übergebenen Parameter und testet, ob die Daten schon im Puffer vorliegen; in dem Fall werden die Daten in den Adressraum des Prozesses kopiert und die E/AOperation ist beendet. 3. Stehen die Daten nicht im Puffer, muss ein Gerätezugriff durchgeführt werden. Der Prozess wird in die Warteschlange für das Gerät eingereiht und der Leseauftrag in die Geräte-Auftragsliste. Dann wird der Gerätetreiber aktiviert. 4. Der Gerätetreiber entnimmt den Leseauftrag aus der Liste und reserviert einen Pufferbereich im Hauptspeicher. Danach schickt er Lesebefehle an den Gerätecontroller. Jetzt blockiert der Gerätetreiber, bis er in 6, vom Interrupt-Handler wieder geweckt wird. 5. Der Controller führt den Leseauftrag aus und überträgt mittels DMAController die Daten in den Pufferbereich. Danach wird eine Unterbrechung ausgelöst. 6. Der Interrupt-Handler führt die entsprechende Unterbrechungsroutine aus. Sie weckt den wartenden Gerätetreiber und kehrt von der Unterbrechung zurück. 7. Der Gerätetreiber erhält das Signal, stellt fest, welcher Leseauftrag bearbeitet wurde, und übergibt die Daten an die geräteunabhängige E/ASoftware. 8. Die Daten werden in den Adressraum des Prozesses übertragen und der Prozess aus der Warteschlange entfernt. Der Prozess wird vom Zustand blockiert in den Zustand bereit versetzt. Der Systemaufruf ist fertig, wenn die Umschaltung vom Systemmodus zurück in den Benutzermodus durchgeführt ist. 9. Welche Ziele hat der E/A-Softwareentwurf? - Hauptaufgabe: Verwaltung der Geräte und die Abwicklung der E/A Systemaufrufe. Außerdem soll die E/A Software speziell die Schnittstelle zu den Benutzerprogrammen, folgende Eigenschaften aufweisen: - Geräteunabhängigkeit von Applikationen: Ein Benutzerprogramm soll, soweit es sinnvoll möglich ist, mit verschiedenen (realen oder virtuellen) Geräten arbeiten können. Beispielsweise sollte ein Benutzerprogramm, das mit Dateien arbeitet, nicht berücksichtigen müssen, ob die Dateien auf einer Magnetplatte, einer CD-ROM oder USB-Speicher gespeichert sind. Der Schlüssel zur Realisierung der Geräte-Unabhängigkeit liegt in der Definition von virtuellen Gerätetypen (s. o.). Die Grundidee ist die gleiche wie bei abstrakten Datentypen: der virtuelle Gerätetyp hat eine spezifizierte Schnittstelle. Diese Schnittstelle kann mehrere Implementierungen haben. In den Implementierungen können unterschiedliche reale Gerätetypen eingesetzt werden. Beispiele für solche Schnittstellen mit mehreren Implementierungen sind: • sequentielle Dateien: diese können sowohl auf Magnetplatten wie auf Magnetbändern verschiedenen Typs realisiert werden. • einfache alphanumerische Terminals: spezifiziert sind diese i. d. R. durch einen Gerätetyp eines größeren Herstellers, ein Beispiel für einen derartigen de-facto Standard ist VT100 von DEC. - Einheitliche Namen: Die Geräteunabhängigkeit erfordert, dass in den Benutzerprogrammen selbst keine Bezeichnungen für Geräte explizit oder implizit z. B. durch Operationsnamen angegeben werden. Stattdessen müssen die Dateien bzw. Geräte, mit denen ein Benutzerprogramm arbeiten soll, als Parameter angegeben werden. Die Namen können entweder beim Aufruf eines Programms mittels eines Kommandos in der Kommando-Sprache des Rechners übergeben werden oder als Parameter eines Systemaufrufs. Die Namen von Dateien und Geräten sollten einen einheitlichen und gemeinsamen Namensraum bilden. Aus Sicht der Benutzer, die normalerweise nur mit Dateien arbeiten, stellt sich diese Forderung so dar, dass Geräte durch Dateien repräsentiert werden sollen.

- Kodierungsunabhängigkeit: Geräte benutzen oft verschiedene Zeichen-Codierungen. Auf der Schnittstelle zu den Applikationen sollte eine für alle Geräte einheitliche Codierung verwendet werden z. B. nach ISO 8859/1 Latin 1. Die notwendigen Übersetzungen von und nach gerätespezifischen Codierungen müssen automatisch vorgenommen werden, z. B. im Geräte-Treiber. - Wechselseitiger Ausschluss: Dateien und viele andere Geräte sind Betriebsmittel, die von verschiedenen Prozessen nur nacheinander exklusiv benutzt werden können. Die E/A-Software muss daher den wechselseitigen Ausschluss bei der Benutzung dieser Geräte ermöglichen. - Fehlerbehandlung: Auftretende Fehler sollten auf einer möglichst tiefen Schicht (d. h. möglichst Hardware-nah) behandelt werden und nur, wenn unvermeidlich, an höhere Schichten weitergemeldet werden. Beispiele: • Ein Übertragungsfehler kann durch einen fehlerkorrigierenden Code schon im Controller korrigiert werden. • Wenn ein Sektor einer Festplatte als defekt bekannt ist, dann kann bereits im Controller veranlasst werden, dass statt dieses defekten Sektors immer ein bestimmter Ersatzsektor benutzt wird. 10. Wie ist eine Festplatte aufgebaut? - Magnetplatte, aus einem Arm mit Lese und Schreibkopf, Zylinder Eine Platte besteht aus mehreren (meist 2 – 10 ) Scheiben, die in ihrer Mitte durch eine Achse fest miteinander verbunden sind und gemeinsam um diese Achse rotieren. Jede Scheibe ist auf beiden Seiten mit einer magnetisierbaren Beschichtung versehen. Die untere Seite der untersten Scheibe und die obere Seite der obersten Scheibe bleiben meist unbenutzt. Die Scheiben haben einen gewissen Abstand voneinander, damit ein Arm des Plattenlaufwerks zwischen je zwei Scheiben einfahren kann. An seinem Ende sind zwei Lese-/Schreibköpfe abgebracht. Alle Arme sind starr miteinander verbunden. Die Scheibe besteht aus mehreren Spuren. Senkrecht übereinander liegende Spuren bezeichnet man als Zylinder. Die Spur wird in Sektoren unterteilt, die aus Präambel, Nutzdaten und Fehlerkorrektur bestehen. Die Präambel beginnt mit einem bestimmten Bitmuster, damit die Hardware den Beginn eines Sektors erkennen kann. Welche Fähigkeit hat eine Festplatte ohne Dateisystem? - Ohne Dateisystem müssten die Benutzer direkt auf dem Plattenspeicher, d.h. auf der konventionellen Maschinenebene arbeiten. Ein Arbeiten mit Dateien wäre nicht möglich. 11. Wie wird die Zugriffszeit auf eine Festplatte definiert? - Suchzeit (Positionierung) + Latenzzeit (Zeit bis gesuchten Sektor unter den Köpfen erscheint) + Übertragungszeit (Zeit zum Lesen) Welche Maßnahmen im Betriebssystem und im Controller können die Suchzeit, die Latenzzeit und die Übertragungszeit verkürzen oder einsparen? SSTF (shortest seek time first): Die Suchzeit ist in etwa linear zu der überbrückenden Distanz. Daher sollten Aufträge in Zylindern, die der aktuellen Position der Köpfe nahe liegen, bevorzugt werden. Als jeweils nächster sollte also derjenige Übertragungsauftrag ausgeführt werden, bei dem die kleinste Suchzeit auftritt. SCAN-Strategie: Abhilfe schafft die SCAN-Strategie, bei der die Köpfe immer abwechselnd nach außen und innen wandern, solange in der jeweiligen Richtung Aufträge vorliegen. Ähnlich funktionieren viele Aufzüge, deshalb wird der Algorithmus auch als Aufzugalgorithmus bezeichnet. Die mittlere Suchzeit ist bei SCAN zwar höher als bei SSTF, die mittlere Ausführungszeit eines Übertragungsauftrags incl. der Wartezeit bis zum Beginn der Ausführung ist hingegen kürzer. 12. Wie funktionieren die Strategien SSTF und SCAN? Welche Vorteile und Nachteile haben die Strategien? SSTF: - SSTF (shortest seek time first) bezeichnet die Strategie, dass derjenige Übertragungsauftrag als nächstes ausgeführt wird, bei dem die kleinste Suchzeit auftritt. Aufträge in Zylindern, die der aktuellen Position nahe liegen, werden folglich bevorzugt. Nachteil: Die Köpfe bewegen sich u.U. aus einem engen Bereich von Zylindern nicht mehr heraus,

wenn dort laufend neue Aufträge abzuarbeiten sind. Aufträge aus entfernteren Zylindern müssen übermäßig lange warten und können im schlimmsten Fall sogar "verhungern". - SCAN: bei der die Köpfe immer abwechselnd nach innen und außen wandern, sofern in der jeweiligen Richtung Aufträge vorliegen. Nachteil: Mittlere Suchzeit ist höher als bei SSTF Vorteil: Mittlere Ausführungszeit eines Übertragungsauftrages inkl. der Wartezeit bis zum Beginn der Ausführung ist kürzer. Die Strategien SSTF und SCAN finden normalerweise im Gerätetreiber statt, weil der Gerätetreiber eine Liste von Anfragen für die Festplatte verwaltet. Mit der Liste kann er die Reihenfolge des Zugriffs organisieren. Was ist das Interleaving und das Interleaving-Faktor? - Wenn man eine Folge von Blöcken, die z.B. zu einer Datei gehören, nacheinander in die Sektoren einer noch leeren Spur schreiben möchte, bietet es sich an, beim Schreiben einen oder mehrere Sektoren zu überspringen und die Blöcke nicht in aufeinander folgende Sektoren (i-ter Block in iten Sektor) zu schreiben. Der Grund ist folgender: Die Zeit zum Übertragen eines Blockes in den Hauptspeicher kann länger sein, als die Zeit, die der Schreib/Lesekopf benötigt, um die Lücke zwischen zwei Sektoren zu überqueren. Wenn also der erste Block übertragen wurde, befindet sich der Kopf bereits hinter dem zweiten Sektor, wenn der zweite Sektor angefordert wird. Wie viele Sektoren übersprungen werden, hängt vom Rechner ab. Diese Zahl nennt man "interleave factor"; sie muss beim Formatieren der Platte festgelegt werden. 13. Wozu ist ein Dateisystem gut? - Ein Dateisystem soll die Transparenz schaffen, dass dem Besitzer der Dateien die Details verborgen bleiben. Er braucht nicht zu wissen, wo und wie die Daten gespeichert sind. Was ist ein Dateisystem? - Ein Dateisystem ist eine Menge von Dateien und Verzeichnissen, die incl. der erforderlichen Hilfsdaten auf einem physischen oder logischen Datenträger gespeichert sind. Was ist ein hierarchisches Dateisystem? - Hierarchische Dateisysteme arbeiten mit Verzeichnissen, die geschachtelt sein können. Ein Verzeichnis kann Dateien oder wieder andere Verzeichnisse enthalten. Die Struktur der Verzeichnisse ist normalerweise ein Baum mit einem Wurzelverzeichnis als Einstiegspunkt. 14. Welche Verfahren gibt es, um die Sektoren einer Datei zu verwalten? - FAT (file allocation table), Sektoradresstabellen und i-nodes, NTFS (new technology file system) 15. Was ist eine FAT beim MS-DOS Betriebssystem? - Ist eine zentrale Datenstruktur, die Informationen über alle Dateien eines Dateisystems sowie über die freien Blöcke enthält. Sie besteht aus einem Array, in dem jeder Sektor der Platte durch einen Eintrag repräsentiert wird. Vorteile von FAT: - freie und defekte Blöcke werden in der FAT als solche markiert. - sehr gute Unterstützung von sequentieller Datei-Verarbeitung Nachteile von FAT: - die gesamte Tabelle muss sich zu jeder Laufzeit des Rechners im Hauptspeicher befinden -> dies benötigt unnötig viel Ressourcen – die Tabelle wird bei großen Platten ebenfalls recht groß. – Wenn ein Block einer Datei gesucht wird, muss man eine lineare Suche durch die Liste der Blöcke der Datei starten. Wenn eine Datei sehr groß ist, kostet das viel Zeit. Wie groß ist eine FAT? (Man sollte nicht sagen, dass eine FAT so groß wie die Anzahl der Dateien ist, die auf einer Festplatte gespeichert werden. Eine FAT hat für jeden Block auf der Festplatte einen Eintrag.) Wie werden die Sektoren einer Datei mit einer FAT verwaltet? Die zu einer Datei gehörigen Sektoren werden in der FAT linear verkettet. Beispiel: Meine Datei text.tex steht in den Sektoren 3, 27 und 5. Im Datei-Verzeichnis gibt es einen Eintrag, dass "text.tex" im Sektor 3 startet. In der FAT gibt es im Eintrag 3 einen Verweis auf 27, welches die Nummer des Folgesektors ist. Eintrag 27 verweist wiederum auf 5 und Eintrag 5 enthält die Angabe "nil", welches anzeigt, dass der letzte Block der Datei...


Similar Free PDFs