[gesichtete Version] | [gesichtete Version] |
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 269: | Zeile 269: | ||
<loop_area type="important">'''{{#index:Wir brauchen ein Betriebssystem|Notwendigkeit Betriebssystem}}Wir brauchen ein Betriebssystem!''' | <loop_area type="important">'''{{#index:Wir brauchen ein Betriebssystem|Notwendigkeit Betriebssystem}}Wir brauchen ein Betriebssystem!''' | ||
<p> | <p> | ||
Und eine der Aufgaben des Betriebssystems wird die Verwaltung der Ein- und | Und eine der Aufgaben des Betriebssystems wird die Verwaltung der Ein- und Ausgabegeräte sein. | ||
</p> | </p> | ||
</loop_area> | </loop_area> |
Im bisherigen Verlauf dieses Moduls sind bereits viele Beispiele gezeigt worden, bei denen das Steuerwerk der CPU mit Registern oder dem Hauptspeicher kommuniziert. Da ein Computer aber noch weitere Komponenten besitzt, muss auch die Kommunikation der CPU mit den sogenannten {{#index:Peripheriegerät}}Peripheriegeräten möglich sein.
Peripheriegeräte sind beispielsweise:
Genaugenommen kommuniziert die CPU dann nicht direkt mit diesen Komponenten, sondern mit einem {{#index:Controller}}Controller, der speziell für die betreffende Komponente zuständig ist.
{{#index:Aufbau, Controller|Controller, Aufbau}}
Genau wie die CPU besitzt auch der Controller eines Peripheriegeräts verschiedene Register. Üblich sind:
In dem (oder den) Zustandsregister(n) können verschiedene Zustände angezeigt werden, beispielsweise
Die folgende Abbildung zeigt den allgemeinen Aufbau eines Controllers. Dabei ist von jeder Registerart nur ein einziges eingezeichnet, es ist jedoch auch denkbar, dass der Controller über mehrere Register je Art verfügt.
Die bislang betrachte Menge an Peripheriegeräten verfügt jeweils über einen eigenen Controller, wobei jeder Controller mit dem entsprechenden {{#index:Registersatz}}Registersatz ausgestattet ist:
Auf das Datenregister eines Controllers kann die CPU sowohl lesend, als auch schreibend zugreifen. Wie verhält es sich aber beim Steuer- und beim Zustandsregister? Ist der Zugriff hier nur lesend, nur schreibend oder lesend und schreibend möglich?
Zwei entscheidende Unterschiede bei der Kommunikation zwischen dem Steuerwerk und Registern, Hauptspeicher sowie den Controllern der weiteren Komponenten bestehen einerseits in der dafür benötigten Zeit, und andererseits in den {{#index:Kosten}}Kosten, die eine technische Realisierung der betreffenden Komponenten verursacht.
Die Kommunikation zwischen Steuerwerk und Registern ist mit Abstand am schnellsten möglich. Beides ist auf der CPU angesiedelt, die Wege sind kurz und effizient ausgebaut. Nachteilig ist lediglich, dass alle Register der CPU zusammen nur recht wenig Speicherplatz bieten. Dies liegt an entsprechend hohen Kosten, welche die Integration (vieler) weiterer Register auf der CPU nach sich ziehen würde.
Wunschvorstellung
Wäre es nicht ideal, wenn alle Programme und Daten, die du normalerweise auf deiner Festplatte gespeichert hast, direkt in Registern der CPU abgelegt wären? Du bräuchtest dann weder Festplatte noch Hauptspeicher und dein System würde konkurrenzlos schnell arbeiten!
Du kannst dir ausmalen, dass das technisch nicht so einfach möglich ist, oder?
Die Kommunikation zwischen Steuerwerk und Hauptspeicher ist - verglichen mit den Registern - bereits deutlich langsamer, jedoch immer noch recht schnell. Der Hauptspeicher ist speziell für eine schnelle Arbeitsweise konzipiert, er bietet auch deutlich mehr Platz als die Menge der CPU-Register. Nachteilig ist hier, dass der Inhalt des Hauptspeichers verloren geht, sobald der betreffende Computer ausgeschaltet wird.
Abhilfe schafft bei diesem Nachteil beispielsweise die Festplatte. Sie bietet üblicherweise deutlich mehr Speicherplatz als der Hauptspeicher und kann ihre Daten zudem dauerhaft (also auch über ein Ausschalten und einen Neustart des betreffenden Rechners hinaus) speichern. Leider ist die Kommunikation zwischen CPU und Festplatten-Controller erheblich langsamer als zwischen CPU und Hauptspeicher. Dafür liegen die Kosten für eine Festplatte (in Bezug zur Speicherkapazität) deutlich unter den Kosten für Hauptspeicher.
Eine Festplatte kostet pro Gigabyte Speicherkapazität deutlich weniger, als ein Gigabyte Hauptspeicher. Dafür arbeitet der Hauptspeicher deutlich schneller.
Tanenbaum 2009 nennt folgende näherungsweisen Vergleichswerte für die Zugriffe auf Daten:
Auch für die Kommunikation zwischen der CPU und allen weiteren Controllern der sonstigen Komponenten gilt: Es ist langsam.
Das folgende Video erläutert die Bedeutung von Interrupts bei der Kommunikation zwischen CPU und Ein-/ Ausgabegeräten. Beispielhaft wird die Festplatte als E/A-Gerät betrachtet.
Wenn Sie dieses Element öffnen, werden Inhalte von externen Dienstleistern geladen und dadurch Ihre IP-Adresse an diese übertragen.
Im Video wird deutlich, dass für jedes einzelne Datenwort folgende Schritte erforderlich sind:
Ganz schön viel Aufwand, oder? (Und dabei ist diese Auflistung noch nicht einmal ganz komplett, aber damit beschäftigst du dich gleich noch in den Aufgaben weiter unten ;-)
Für eine Handvoll Bits...
Es ist an dieser Stelle wichtig zu erkennen, was für ein hoher Aufwand betrieben wird, nur um ein einzelnes Datenwort von der Festplatte in den Hauptspeicher zu kopieren.
Wie hoch der Aufwand tatsächlich ist, wird vermutlich erst mit der Beantwortung der folgenden Fragen deutlich:
Wie groß ist ein einzelnes Datenwort eigentlich?
Wie groß ist heute eine übliche Datei, die beispielsweise ein Anwendungsprogramm enthält?
Weiterführende Literatur
erläutert in Kapitel 5 (Ein- und Ausgabe) weitere Hintergründe zum Thema. Die Lektüre dieser Quelle sei ausdrücklich empfohlen.
Studierende sind oftmals berechtigt, eine PDF-Version dieses Buches ohne entstehende Kosten über ihre Hochschulen von Springerlink zu beziehen.
Im Video wird gezeigt, wie die CPU wartet, und wartet, und wartet. Das ist natürlich keine gute Idee im Hinblick auf die Geschwindigkeit des Gesamtsystems.
Im Video wird darauf verzichtet zu zeigen, wie sich Werte beispielsweise in den Registern PC oder IR (usw.) ändern, und welche Werte davon über das Bussystem übertragen werden.
Das Zustandsregister eines Controllers kann (u.a.) ein READY anzeigen, im Video ist das zu sehen. Es reicht ein Bit, um den Zustand READY zu kennzeichnen. Ist dieses Bit gleich 1, so gilt: der Controller ist READY für den nächsten Steuerbefehl. Gleiches gilt für den Zustand BUSY. Auch hierfür reicht ein Bit.
Für READY und BUSY werden im Zustandsregister demnach zwei Bit benötigt.
Im Text dieser Seite wird erwähnt, dass die im Bild gezeigten Controller nur ein Register je Typ enthalten, dass es aber auch möglich ist, dass ein Controller mehrere Register eines Typs enthält.
Kombiniere das Wissen aus dem Video mal mit deinen Ideen, was die CPU statt warten so tun könnte, und mit dem Wissen aus dem Kapitel Quasi-gleichzeitige Ausführung mehrerer Prozesse. Es könnte dann vorkommen, dass mehrere Prozesse "quasi-gleichzeitig" auf ein E-/A-Gerät (wie z.B. die Festplatte) zugreifen möchten.
WER oder WAS sorgt dann dafür, dass hierbei keine Kollision auf dem Controller des E-/A-Geräts passiert?
Bitte entschuldige, dass die Antwort gleich unterhalb dieser Frage steht ;-)
{{#index:Wir brauchen ein Betriebssystem|Notwendigkeit Betriebssystem}}Wir brauchen ein Betriebssystem!
Und eine der Aufgaben des Betriebssystems wird die Verwaltung der Ein- und Ausgabegeräte sein.
Speziell beim Thema "Datei auf der Festplatte" im Video ergibt sich eine weitere Fragestellung, auf die im Video nicht näher eingegangen wird.
WER oder WAS sorgt dafür, dass Verzeichnisse und Dateien auf einem Datenspeicher (Festplatte, CD, DVD, USB-Stick, etc.) angelegt, wiedergefunden, gelesen, bearbeitet oder gelöscht werden können?
{{#index:Wir brauchen ein Betriebssystem|Notwendigkeit Betriebssystem}}Wir brauchen ein Betriebssystem!
Und eine der Aufgaben des Betriebssystems wird die Datei- und Verzeichnisverwaltung auf Datenträgern sein.
Diese Seite steht unter der Creative Commons Namensnennung 3.0 Unported Lizenz http://i.creativecommons.org/l/by/3.0/80x15.png