Kurseinheit 1 Flashcards
Was ist eigentlich ein Betriebssystem?
Ein Betriebssystem ist:
- Eine Software, die als Vermittler zwischen Hardware und Anwendungsprogrammen agiert.
- Verantwortlich für die kontrollierte Kommunikation zwischen Anwendungen und Hardware.
- Zuständig für die Verwaltung und Regulierung des Hardwarezugriffs.
- Verwaltet Ressourcen wie Speicher und Prozessorzeit.
- Bietet eine Benutzeroberfläche für die Interaktion zwischen Benutzern und dem Computer.
- Wesentlich für benutzerfreundliche Personalcomputer (PCs) und kostengünstige Anwendungsprogramme.
Wozu braucht man ein Betriebssystem?
Ein Betriebssystem erfüllt folgende Aufgaben:
- Verwaltung der Computerhardware.
- Gewährleistung kontrollierter Interaktion von Anwendungsprogrammen mit der Hardware.
- Ressourcenverwaltung (Speicher, Prozessorzeit).
- Bereitstellung einer Benutzeroberfläche zur Nutzerinteraktion.
- Ermöglicht die Unabhängigkeit von Software und Hardware.
- Grundlage für die Entstehung von Personalcomputern (PCs) und kostengünstigen Anwendungsprogrammen.
Welche Aufgaben hat ein Betriebssystem?
Ein Betriebssystem erfüllt folgende Aufgaben:
- Verwaltung der Computerhardware.
- Ressourcenverwaltung wie Speicher und Prozessorzeit.
- Bereitstellung einer Benutzeroberfläche zur Interaktion mit dem Computer.
- Regulierung des Hardwarezugriffs durch Anwendungsprogramme.
- Verwaltung von Dateien und Ordnern.
- Unterstützung von Netzwerkfunktionen.
- Sicherstellung der Systemsicherheit durch Benutzerauthentifizierung und Zugriffskontrolle.
Diese Aufgaben sind wesentlich für den reibungslosen Betrieb eines Computers und können je nach Betriebssystem variieren.
Welche Strategien und Mechanismen benutzt ein Betriebssystem, um diese
Aufgaben zu lösen?
Ein Betriebssystem setzt folgende Strategien und Mechanismen ein:
- Scheduling-Strategien zur effizienten Verwaltung von Prozessen und Threads.
- Speicherverwaltung, einschließlich virtueller Speicherverwaltung und Speichersegmentierung, um den Speicherbedarf der Anwendungen zu verwalten.
- Dateisysteme zur Organisation und Verwaltung von Dateien und Ordnern auf dem Computer.
- Gerätetreiber, um eine reibungslose Kommunikation zwischen Betriebssystem und Hardware zu gewährleisten.
- Netzwerkprotokolle zur Unterstützung von Netzwerkfunktionen wie Datenübertragung und Kommunikation.
- Sicherheitsmechanismen wie Benutzerauthentifizierung und Zugriffskontrolle, um die Systemintegrität und -sicherheit zu gewährleisten.
Diese Strategien und Mechanismen können je nach Betriebssystem variieren, dienen jedoch alle dazu, die vielfältigen Aufgaben des Betriebssystems erfolgreich zu bewältigen.
Welche Schnittstellen werden vom Betriebssystem Anwendungen zur Verfügung gestellt?
Welche Schnittstellen werden vom Betriebssystem Anwendungen zur Verfügung gestellt?
Das Betriebssystem stellt zwei Haupt-Schnittstellen bereit:
- Programmierschnittstelle (API): Diese Schnittstelle erlaubt Anwendungsprogrammen, mit dem Betriebssystem zu kommunizieren und auf dessen Dienste zuzugreifen. Sie besteht aus einer Sammlung von Systemaufrufen (system calls), die von Anwendungen genutzt werden können.
- Benutzerschnittstelle: Diese Schnittstelle gestattet Benutzern die Interaktion mit dem Betriebssystem und die Verwendung von Systemprogrammen wie der Shell, dem Compiler und dem Editor.
Diese Schnittstellen sind essenziell, da sie Anwendungen und Benutzern den Zugriff auf die Ressourcen des Computers ermöglichen und somit die reibungslose Funktionsweise des Betriebssystems sicherstellen.
Welche Idee hatte von Neumann?
John von Neumann hatte die wegweisende Idee, dass ein auszuführendes Programm nicht mehr fest in den Computer eingebettet sein sollte, sondern vor der Ausführung in den Speicher geladen und nach Beendigung wieder gelöscht werden kann. Diese Konzeption, bekannt als von-Neumann-Architektur, bildet das Fundament für die meisten heutigen Computer.
Warum ist seine Idee ein Meilenstein für die Informatik?
Die Idee von John von Neumann, dass Programme nicht mehr fest im Computer eingebettet sein müssen, sondern dynamisch im Speicher geladen und entfernt werden können, markierte einen Meilenstein in der Informatik aus folgenden Gründen:
- Universalität: Diese Idee ermöglichte die Schaffung von universellen Computern, die vielfältige Aufgaben ausführen können, ohne dass für jede spezifische Aufgabe eine neue Hardware benötigt wird.
- Effizienz und Multitasking: Die von-Neumann-Architektur legte den Grundstein für die Entwicklung von Betriebssystemen, die Ressourcen effizient verwalten und die gleichzeitige Ausführung mehrerer Programme ermöglichen.
- Abstraktion: Die Idee erlaubte die Entwicklung von höheren Programmiersprachen, die Programmierern erlauben, sich auf die Logik ihrer Programme zu konzentrieren, ohne sich intensiv mit der Hardware auseinandersetzen zu müssen.
Insgesamt ebnete die von-Neumann-Architektur den Weg für die moderne Informatik, indem sie die Grundlage für flexible, leistungsfähige und abstrahierte Computersysteme legte, die heute in nahezu allen Bereichen des Lebens unverzichtbar sind.
Welche Hardwarekomponenten hat ein moderner von-Neumann-Rechner?
Die Hardwarekomponenten eines modernen von-Neumann-Rechners umfassen:
- Prozessor (CPU): Dies ist die zentrale Verarbeitungseinheit, die Befehle ausführt und Berechnungen durchführt.
- Hauptspeicher: Hier werden Programme und Daten während der Ausführung zwischengespeichert.
- Ein-/Ausgabegeräte (I/O devices): Dazu gehören Bildschirme, Tastaturen, Mäuse und andere Geräte, die die Kommunikation zwischen dem Computer und Benutzern ermöglichen.
- Speichermedien: Festplatten, SSDs und andere Speichergeräte dienen zur dauerhaften Speicherung von Daten und Programmen.
- Motherboard: Dieses Hauptplatinen-Element verbindet alle Komponenten miteinander.
- Erweiterungskarten: Diese Karten fügen dem System zusätzliche Funktionen wie Grafik oder Netzwerk hinzu.
- Netzwerkadapter: Ermöglicht die Verbindung mit Netzwerken wie Ethernet oder WLAN.
- Stromversorgung: Versorgt den Rechner mit Energie.
Diese Komponenten arbeiten zusammen, um die von-Neumann-Architektur zu realisieren und die Funktionsweise moderner Computer zu ermöglichen.
Wie sieht eine CPU aus?
Eine CPU (Central Processing Unit) ist ein rechteckiger Chip, der sich auf der Hauptplatine eines Computers befindet und als das “Gehirn” des Computers fungiert. Hier sind einige Merkmale ihres Aussehens:
- Kleiner Chip: Die CPU ist ein kleines, quadratisches oder rechteckiges Bauteil, oft nur wenige Zentimeter breit und lang.
- Kontakte: Auf der Unterseite der CPU befinden sich viele winzige Kontakte, die in einen speziellen Sockel auf der Hauptplatine passen.
- Metallkühlkörper: Die Oberseite der CPU ist normalerweise von einem Metallkühlkörper oder -kühler bedeckt, der die während des Betriebs entstehende Wärme ableitet und die CPU kühl hält.
- Manchmal Lüfter: Bei leistungsfähigen CPUs wird oft ein Lüfter auf dem Kühlkörper angebracht, um die Kühlung zu verbessern.
- Kennzeichnungen: Auf der Oberseite können Markierungen, Seriennummern oder andere Kennzeichnungen vorhanden sein, um die Identifizierung zu erleichtern.
Die genaue Form und Größe kann je nach Modell und Hersteller variieren, aber diese Merkmale sind bei den meisten modernen CPUs zu finden.
Welche wichtige Register hat die CPU?
Die CPU verfügt über mehrere wichtige Register, die als Zwischenspeicher dienen:
- Befehlszähler (Program Counter, PC): Dieses Register enthält die Adresse der nächsten auszuführenden Befehlsinstruktion im Speicher.
- Befehlsregister (Instruction Register, IR): Hier wird der aktuell auszuführende Befehl gespeichert, während er verarbeitet wird.
- Speicheradressregister (Memory Address Register, MAR): Dieses Register enthält die Adresse der Speicherzelle, die gerade gelesen oder beschrieben wird.
Diese Register spielen eine entscheidende Rolle im Ablauf der Befehlsausführung und im Datentransfer zwischen verschiedenen Komponenten der CPU und des Speichers.
Welche Aufgabe haben diese wichtigen Register?
Die wichtigen Register der CPU erfüllen die folgenden Aufgaben:
- Der Befehlszähler (Program Counter, PC) enthält die Adresse des nächsten auszuführenden Befehls im Speicher. Er wird bei jedem Schritt inkrementiert, um auf den nächsten Befehl zu verweisen.
- Das Befehlsregister (Instruction Register, IR) speichert den gerade ausgeführten Befehl. Der Befehl wird aus dem Speicher in das IR geladen, um von der CPU decodiert und ausgeführt zu werden.
- Das Speicheradressregister (Memory Address Register, MAR) enthält die Adresse der Speicherzelle, die gelesen oder beschrieben werden soll. Wenn die CPU Daten im Speicher suchen oder ablegen muss, wird die entsprechende Adresse im MAR abgelegt.
Diese Register sind entscheidend für die Steuerung und Durchführung der Befehlsabläufe und Datenübertragungen innerhalb der CPU und zwischen der CPU und dem Speicher.
Was ist ein Programm im Hauptspeicher?
Ein Programm im Hauptspeicher ist eine Ansammlung von Anweisungen und Daten, die der Computer ausführt, um eine bestimmte Aufgabe zu erledigen. Hier sind einige wichtige Punkte dazu:
- Ausführung: Programme werden in den Hauptspeicher geladen, damit die CPU auf sie zugreifen und die enthaltenen Anweisungen ausführen kann.
- Flüchtiger Speicher: Der Hauptspeicher ist flüchtig, das bedeutet, dass die darin enthaltenen Daten bei Ausschalten oder Neustart des Computers verloren gehen.
- Dauerhafte Speicherung: Programme und Daten, die dauerhaft gespeichert werden sollen, werden in einem Sekundärspeicher wie Festplatten oder SSDs aufbewahrt.
- Laden von Sekundärspeicher: Vor der Ausführung werden Programme vom Sekundärspeicher in den Hauptspeicher geladen, um die schnelle Verarbeitung durch die CPU zu ermöglichen.
Zusammenfassend wird ein Programm im Hauptspeicher platziert, damit der Computer die darin enthaltenen Anweisungen und Daten effizient verarbeiten kann.
Welche Schritte hat ein Befehlszyklus des Prozessors?
Ein Befehlszyklus des Prozessors besteht aus den folgenden Schritten:
- Fetch (Holen): Der Befehl wird aus dem Hauptspeicher anhand der im Befehlszähler (Program Counter, PC) gespeicherten Adresse geholt und ins Befehlsregister (Instruction Register, IR) gelegt.
- Decode (Decodieren): Der im Befehlsregister befindliche Befehl wird decodiert, d.h. die CPU ermittelt, um welchen Befehl es sich handelt und welche Operanden benötigt werden.
- Execute (Ausführen): Der decodierte Befehl wird ausgeführt, das heißt, die im Befehl beschriebenen Operationen werden durchgeführt, z.B. eine Berechnung oder eine Speicheroperation.
- Store (Speichern): Wenn nötig, wird das Ergebnis der Ausführung in einem Register oder im Hauptspeicher gespeichert.
Nach Abschluss dieser Schritte wird der Befehlszähler inkrementiert, um auf den nächsten Befehl im Speicher zu zeigen, und der Prozessor ist bereit für den nächsten Befehlszyklus. Dieser Zyklus setzt sich fort, während der Prozessor Anweisungen ausführt.
Wie sieht ein Hauptspeicher aus?
Ein Hauptspeicher ist ein elektronisches Bauelement, das aus einer Anordnung von Speicherzellen besteht. Hier sind einige wichtige Aspekte seines Aussehens:
- Speicherzellen: Der Hauptspeicher besteht aus vielen kleinen Speicherzellen, von denen jede eine bestimmte Menge an Daten speichern kann, üblicherweise in Form von Binärzahlen oder Befehlen.
- Größe: Die Größe eines Hauptspeichers wird üblicherweise in Bytes, Kilobytes (KB), Megabytes (MB) oder Gigabytes (GB) angegeben, je nach Kapazität.
- Physikalische Realisierung: Der Hauptspeicher kann entweder auf der Hauptplatine (Motherboard) integriert sein oder als separate Speicherbausteine auf Erweiterungskarten vorhanden sein.
- Flüchtigkeit: Die Speicherzellen im Hauptspeicher sind flüchtig, was bedeutet, dass sie ihren Inhalt verlieren, wenn die Stromversorgung unterbrochen wird.
- Schnelligkeit: Der Hauptspeicher ist im Vergleich zu anderen Speichertypen wie Festplatten oder SSDs sehr schnell in Bezug auf den Zugriff auf Daten.
Zusammengefasst ist der Hauptspeicher eine essenzielle Komponente eines Computers, die dazu dient, Daten temporär während des Betriebs zu speichern, um eine schnelle Verarbeitung durch die CPU zu ermöglichen.
Wie werden die Speicherzellen adressiert?
Die Speicherzellen im Hauptspeicher werden durch eine eindeutige Adresse adressiert, die aus einer festgelegten Anzahl von Bits besteht. Hier sind einige wichtige Punkte zur Adressierung:
- Adresslänge: Die Anzahl der Bits in der Adresse bestimmt die maximale Anzahl der adressierbaren Speicherzellen. Je mehr Bits vorhanden sind, desto größer ist der Adressraum.
- Adressraum: Der Adressraum ist die Gesamtanzahl der möglichen Speicherzellenadressen. Zum Beispiel kann ein 16-Bit-Adressbus theoretisch 2^16 (65536) verschiedene Adressen adressieren.
- Adressbus: Der Adressbus ist der Teil des Computers, der die Adressen von der CPU zum Speicher überträgt.
- Adressübertragung: Die Adresse wird auf den Adressbus gelegt, und die Speicherzelle mit dieser Adresse wird ausgewählt und deren Inhalt kann gelesen oder geschrieben werden.
Die Art der Adressierung variiert je nach Architektur und Design des Computers, aber im Allgemeinen wird die Adresse als Binärzahl im Adressbus übertragen, um die gewünschte Speicherzelle anzusprechen.
Welche Beziehung hat der Adressbus mit dem Hauptspeicher?
Der Adressbus hat eine enge Beziehung zum Hauptspeicher und fungiert als Kommunikationskanal zwischen dem Prozessor und dem Speicher. Hier sind die Hauptpunkte dieser Beziehung:
- Übertragung von Adressen: Der Adressbus besteht aus einer Gruppe von Leitungen, die die Adressen der Speicherzellen transportieren, auf die der Prozessor zugreifen möchte.
- Adressraum: Die Anzahl der Leitungen im Adressbus bestimmt die Größe des Adressraums, also wie viele verschiedene Speicherzellen adressiert werden können. Jede Kombination von Signalen auf den Adressleitungen repräsentiert eine eindeutige Speicheradresse.
- Adressierung des Hauptspeichers: Der Prozessor platziert die gewünschte Speicheradresse auf den Adressbus. Diese Adresse wird dann vom Hauptspeicher interpretiert, um die entsprechende Speicherzelle auszuwählen.
- Datenübertragung: Nachdem der Hauptspeicher die angeforderte Adresse erkannt hat, sendet er den Inhalt der entsprechenden Speicherzelle über den Datenbus zurück zum Prozessor.
- Zweirichtungskommunikation: Der Adressbus dient nicht nur dazu, Adressen an den Speicher zu übertragen, sondern auch dazu, Daten aus dem Speicher zurück zum Prozessor zu transportieren.
Insgesamt ermöglicht der Adressbus die direkte Kommunikation zwischen Prozessor und Hauptspeicher, was für die reibungslose Ausführung von Programmen und die Manipulation von Daten unerlässlich ist.
Wie kann man aus der Größe des Hauptspeichers die Länge des Adressbusses berechnen?
Die Länge des Adressbusses ist nicht direkt von der Größe des Hauptspeichers abhängig, sondern vielmehr von der Anzahl der eindeutigen Adressen, die der Adressbus adressieren kann. Die Größe des Hauptspeichers allein gibt an, wie viele Speicherzellen der Hauptspeicher insgesamt hat, jedoch ist die tatsächliche Adressierbarkeit abhängig von der Breite des Adressbusses.
Um die Länge des Adressbusses zu berechnen, kann die Formel 2^n verwendet werden, wobei “n” die Anzahl der Bits im Adressbus ist. Diese Formel ergibt die Anzahl der eindeutigen Adressen, die der Adressbus adressieren kann. Diese Anzahl sollte mindestens so groß sein wie die Anzahl der Speicherzellen im Hauptspeicher, um jeden Speicherplatz eindeutig ansprechen zu können.
Beispiel: Wenn der Hauptspeicher 64 Kilobyte (64 * 1024 Bytes) groß ist und jede Speicherzelle 1 Byte groß ist, gibt es insgesamt 64 * 1024 Speicherzellen. Um dies zu adressieren, benötigt man einen Adressbus mit mindestens 16 Bits (2^16 = 65536 Adressen), da 2^16 mehr Adressen bietet als die 64 * 1024 Speicherzellen im Hauptspeicher.
Warum hat der Hauptspeicher die Eigenschaft des wahlfreien Zugriffs?
Der Hauptspeicher weist die Eigenschaft des wahlfreien Zugriffs auf, weil jede Speicherzelle im Hauptspeicher eine eindeutige Adresse besitzt und der Prozessor direkt auf jede dieser Zellen zugreifen kann. Diese Eigenschaft bietet mehrere Vorteile:
- Direkter Zugriff: Der Prozessor kann unmittelbar auf jede gewünschte Speicherzelle zugreifen, indem er die entsprechende Adresse auf den Adressbus legt.
- Gleiche Zugriffszeit: Die Zugriffszeit auf den Hauptspeicher ist für alle Speicherzellen gleich, da keine mechanischen Bewegungen wie bei Festplatten erforderlich sind.
- Effiziente Datenverarbeitung: Der wahlfreie Zugriff ermöglicht es Programmen, Daten schnell und effizient zu lesen oder zu schreiben, was zur Leistungsfähigkeit des Systems beiträgt.
- Flexibilität: Programme können Daten flexibel verarbeiten, da sie auf verschiedene Speicherzellen zugreifen können, ohne auf eine sequenzielle Struktur beschränkt zu sein.
Diese Eigenschaft des wahlfreien Zugriffs ist besonders wichtig für die schnelle und effiziente Verarbeitung von Daten durch den Prozessor und trägt zur Gesamtleistung des Computers bei.
Wie ist eigentlich wahlfreier Zugriff definiert?
Der wahlfreie Zugriff (engl. random access) bezieht sich auf die Fähigkeit eines Speichersystems, dass jede einzelne Speicherzelle im Speicher mit gleicher Zugriffsgeschwindigkeit angesprochen werden kann. Das bedeutet, dass der Zugriff auf jede bestimmte Speicherzelle unabhängig von ihrer physischen Position im Speicherbereich genauso schnell erfolgen kann wie der Zugriff auf jede andere Speicherzelle.
Die wesentlichen Merkmale des wahlfreien Zugriffs sind:
- Direkter Zugriff: Jede Speicherzelle kann durch die Verwendung ihrer eindeutigen Adresse direkt angesprochen werden, ohne dass vorherige Zellen durchsucht werden müssen.
- Konstante Zugriffszeit: Die Zeit, die benötigt wird, um auf eine Speicherzelle zuzugreifen, ist konstant und unabhängig davon, wo sich die Zelle im Speicher befindet.
- Effiziente Datenverarbeitung: Der wahlfreie Zugriff ermöglicht schnelle und effiziente Datenmanipulation, da der Prozessor ohne Verzögerung auf benötigte Daten zugreifen kann.
Diese Eigenschaft ist besonders wichtig für Hauptspeicher, Cache-Speicher und andere Speichersysteme, um eine hohe Leistung und effiziente Datenverarbeitung zu gewährleisten.
Was ist ein Cache?
- Ein Cache ist ein schneller Zwischenspeicher.
- Er speichert häufig benötigte Daten, um den Zugriff auf sie zu beschleunigen.
- Der Cache ist kleiner als der Hauptspeicher.
- Er befindet sich in der Nähe des Prozessors, um die Zugriffszeit zu minimieren.
- Bei einem Zugriff auf den Hauptspeicher schaut der Prozessor zuerst im Cache nach den Daten.
- Falls im Cache vorhanden, ermöglicht direkter Zugriff und beschleunigt die Datenabfrage.
- Fehlen die Daten im Cache, müssen sie aus dem Hauptspeicher geladen werden, was länger dauert.
Wozu ist ein Cache gut?
Wozu ist ein Cache gut?
- Zwischenspeicher für häufig benötigte Daten.
- Beschleunigt den Zugriff auf diese Daten.
- Erhöht die Systemgeschwindigkeit.
- Prozessor kann schneller auf Cache-Daten zugreifen.
- Zugriffszeit auf Cache ist schneller als auf Hauptspeicher.
- Verbessert die Gesamtleistung des Systems.
- Reduziert Wartezeiten bei Datenzugriffen auf langsamere Speicher.
Welche Probleme entstehen, wenn ein Cache eingesetzt wird?
-
Cache-Management:
- Begrenzter Platz im Cache kann dazu führen, dass alte Daten überschrieben werden müssen.
- Betriebssystem muss entscheiden, welche Daten ersetzt werden sollen.
- Problem des effizienten Umgangs mit begrenztem Cache-Speicher.
-
Cache-Konsistenz:
- Wenn der Wert einer Variable geändert wird, muss die Änderung im Cache und Hauptspeicher synchronisiert werden.
- Vermeidung von Inkonsistenzen zwischen Cache und Hauptspeicher.
- Besonders relevant bei Multiprozessorsystemen mit eigenen Caches pro Prozessor.
Die Nutzung eines Caches kann somit zu Herausforderungen im Management des Cache-Speichers und in der Aufrechterhaltung der Datenkonsistenz zwischen Cache und Hauptspeicher führen, insbesondere in komplexen Systemen mit mehreren Prozessoren.
Wie läuft der Cache-Algorithmus?
Der Cache-Algorithmus, insbesondere der “first-in, first-out” (FIFO) Algorithmus, funktioniert wie folgt:
-
FIFO-Algorithmus:
- Älteste Daten im Cache werden zuerst entfernt, wenn Platz für neue Daten benötigt wird.
- Implementiert das Prinzip “first-in, first-out” – die zuerst eingetroffenen Daten werden zuerst entfernt.
-
Cache-Nutzung:
- Bevor auf den Hauptspeicher zugegriffen wird, wird im Cache nach den benötigten Daten gesucht.
- Falls gesuchte Daten im Cache vorhanden sind, erfolgt der Zugriff direkt aus dem Cache.
- Wenn Daten fehlen, wird ein Hauptspeicherzugriff durchgeführt, und eine Kopie der Daten wird im Cache abgelegt.
Der FIFO-Algorithmus ist nur einer von vielen Cache-Algorithmen. Er demonstriert, wie Daten im Cache verwaltet werden, um häufig benötigte Daten zu speichern und bei Bedarf effizient darauf zuzugreifen. Andere Algorithmen wie “Least Recently Used” (LRU) oder “Random Replacement” verwenden unterschiedliche Strategien zur Datenverwaltung im Cache.
Was ist ein Sekundärspeicher?
- Ein Sekundärspeicher ist ein Speichermedium.
- Dient zur dauerhaften Speicherung von Daten und Programmen.
- Im Gegensatz zum flüchtigen Hauptspeicher gehen Daten beim Ausschalten nicht verloren.
- Auch Massenspeicher genannt.
- Beinhaltet verschiedene Medien wie Festplatten, SSDs, CDs, DVDs und USB-Sticks.
- Im Vergleich zum Hauptspeicher langsamer, aber mit größerer Kapazität und niedrigeren Kosten.
Wie ist eine Festplatte aufgebaut?
- Festplatte: Magnetisierbare Scheiben auf gemeinsamer Spindel.
- Scheiben: Drehen sich mit hoher Geschwindigkeit, haben zwei Seiten.
- Schreib-/Leseköpfe: Winzige Köpfe auf beweglichem Arm über den Scheiben.
- Köpfe lesen/schreiben Daten auf magnetischen Oberflächen der Scheiben.
- Datenorganisation: Kreisförmige Spuren auf den Scheiben, in Sektoren unterteilt.
- Motor: Treibt Spindel und Arm an.
- Datenübertragung: Schnittstelle wie SATA oder IDE verbindet Festplatte mit Computer.
Welche Befehle kann die Festplatte ausführen?
Die Festplatte kann Befehle zur Armsteuerung ausführen, um die Schreib-/Leseköpfe zu positionieren und Daten auf den magnetischen Oberflächen der Scheiben zu lesen oder zu schreiben. Die genauen Befehle variieren je nach Art der Festplatte und der verwendeten Schnittstelle, können aber Folgendes umfassen:
-
Positionierungsbefehle:
- Ansteuern der Schreib-/Leseköpfe zu einer bestimmten Spur oder Position auf der Scheibe.
-
Lesen/Schreiben von Daten:
- Befehle zum Lesen von Daten von einer bestimmten Position auf der Scheibe.
- Befehle zum Schreiben von Daten auf eine bestimmte Position auf der Scheibe.
-
Lese- und Schreibgeschwindigkeit:
- Befehle zur Steuerung der Lese- und Schreibgeschwindigkeit.
Es ist wichtig zu beachten, dass die genauen Befehle und die Funktionalität der Festplatte von verschiedenen Faktoren abhängen, darunter die Technologie, die Schnittstelle und der Hersteller der Festplatte. Die meisten dieser Befehle werden jedoch normalerweise vom Betriebssystem oder von Gerätetreibern verwaltet und sind für den Benutzer nicht direkt sichtbar.
Warum unterstützt eine Festplatte auch den wahlfreien Zugriff?
Eine Festplatte unterstützt den wahlfreien Zugriff, da:
- Einzigartige Adressierung: Jeder Sektor auf der Festplatte hat eine eindeutige Adresse, die einen direkten Zugriff ermöglicht.
- Positionierung des Schreib-/Lesekopfs: Der Schreib-/Lesekopf muss jedoch korrekt auf den Zylinder positioniert werden, wo der gesuchte Sektor liegt.
- Positionierungszeit: Diese Positionierung erfordert Zeit, da der Kopf physisch bewegt werden muss, was zu einer Positionierungszeit führt.
- Latenzzeit: Nach Positionierung wartet der Kopf auf die Rotation der Scheibe, um den gesuchten Sektor zu erreichen (Latenzzeit).
- Effizienter Zugriff: Wahlfreier Zugriff ermöglicht schnellen Zugriff auf bestimmte Daten, ohne sequenzielle Durchsuchung aller Daten.
Dieser wahlfreie Zugriff ermöglicht eine effiziente Datennutzung auf der Festplatte und ist besonders wichtig für Anwendungen, die schnellen Zugriff auf spezifische Daten erfordern, ohne alle gespeicherten Daten durchsuchen zu müssen.
Was ist die Positionierungszeit, Latenzzeit, Übertragungszeit und Zugriffszeit?
Die Zeiten sind wie folgt definiert:
- Positionierungszeit: Die Zeit, die benötigt wird, um den Schreib-/Lesekopf auf den richtigen Zylinder zu positionieren, wo sich der gewünschte Sektor befindet.
- Latenzzeit: Die Zeit, die der Schreib-/Lesekopf benötigt, um auf den gesuchten Sektor zu warten, nachdem er auf den richtigen Zylinder positioniert wurde. Sie entspricht der Zeit, die die rotierende Festplattenscheibe benötigt, um den gewünschten Sektor unter den Schreib-/Lesekopf zu drehen.
- Übertragungszeit: Die Zeit, die benötigt wird, um die Daten zwischen der Festplatte und dem Pufferspeicher (Cache) zu übertragen, oder umgekehrt.
- Zugriffszeit: Die gesamte Zeit, die benötigt wird, um auf einen bestimmten Sektor auf der Festplatte zuzugreifen. Sie ist die Summe aus Positionierungszeit, Latenzzeit und Übertragungszeit.
Diese Zeiten sind wichtige Faktoren bei der Leistung von Festplatten und anderen Speichermedien, da sie die Geschwindigkeit beeinflussen, mit der Daten gelesen oder geschrieben werden können. Je kürzer diese Zeiten sind, desto schneller kann auf die gewünschten Daten zugegriffen werden.
Welche Strategien gibt es, um die Aufträge für Plattenlaufwerk abzuarbeiten?
Die Strategien sind wie folgt:
- FCFS (first-come, first-served): Die Aufträge werden in der Reihenfolge ihres Eingangs abgearbeitet. Dabei wird der Auftrag, der als erster eingegangen ist, als erster ausgeführt.
- SSTF (shortest-seek-time-first): Der Auftrag mit der kürzesten Positionierungszeit, also dem geringsten Abstand zur aktuellen Position des Schreib-/Lesekopfs, wird als nächstes bearbeitet. Diese Strategie zielt darauf ab, die Positionierungszeit insgesamt zu minimieren.
- SCAN: Bei dieser Strategie bewegt sich der Schreib-/Lesekopf in einer Richtung über die Platte und führt dabei die Aufträge aus, deren Spuren er überquert. Wenn er am Rand der Platte angekommen ist, kehrt er um und arbeitet die Aufträge auf dem Rückweg ab. Diese Strategie kann dazu führen, dass Aufträge in der Mitte der Platte länger warten müssen.
Jede dieser Strategien hat Vor- und Nachteile und eignet sich je nach Situation unterschiedlich gut, um die Zugriffszeit auf die Daten auf der Festplatte zu minimieren.
Welche Probleme kann es bei der Strategie SSTF geben?
Die SSTF-Strategie hat folgende Probleme:
- Verhungern: Die SSTF-Strategie bevorzugt immer den Auftrag mit der kürzesten Suchzeit. Dadurch könnten lange Aufträge kontinuierlich übergangen werden, während kurze Aufträge bevorzugt werden. Dies kann dazu führen, dass lange Aufträge nie ausgeführt werden und in einem Zustand des Verhungerns verbleiben.
- Unvorhersehbarkeit: Es ist oft schwer vorherzusagen, wie lange ein Auftrag benötigen wird, um abgeschlossen zu werden. Dies kann die Effizienz der SSTF-Strategie beeinträchtigen, da die Auswahl des nächstbesten Auftrags aufgrund der Schwierigkeit der Vorhersage ungenau sein kann.
- Eingeschränkte Gesamtleistung: Obwohl die SSTF-Strategie die Suchzeit minimiert, berücksichtigt sie nicht die Gesamtperformance des Systems. Andere Faktoren wie die Gesamtzahl der bearbeiteten Aufträge oder die Durchsatzrate könnten vernachlässigt werden, was zu einer suboptimalen Gesamtleistung führen kann.
- Potential für Blockierung: Wenn Aufträge mit ähnlichen Suchzeiten in einer bestimmten Region der Festplatte konzentriert sind, kann dies dazu führen, dass der Schreib-/Lesekopf zwischen diesen Aufträgen hin und her springt, was als Arm-Bewegungsblockierung bezeichnet wird. Dies könnte die Effizienz der SSTF-Strategie beeinträchtigen.
Insgesamt ist die SSTF-Strategie trotz ihrer Vorteile anfällig für einige Probleme, die sich negativ auf die Effizienz und Leistung des Festplattenzugriffs auswirken können.
Kann es passieren, dass ein Auftrag mit SSTF nicht bearbeitet wird?
Ja, es ist möglich, dass ein Auftrag bei Verwendung der SSTF-Strategie nicht bearbeitet wird. Dies liegt daran, dass die SSTF-Strategie immer den Auftrag mit der kürzesten Suchzeit bevorzugt. Dadurch könnten Aufträge mit längeren Suchzeiten kontinuierlich übergangen werden, was dazu führt, dass diese Aufträge möglicherweise nie ausgeführt werden und in einem Zustand des Verhungerns verbleiben.
Was ist der Unterschied zwischen einem Sektor und einem Block?
- Ein Sektor ist die kleinste adressierbare Einheit auf einer Festplatte und enthält eine feste Anzahl von Bytes (z.B. 512 Bytes).
- Ein Block ist eine logische Einheit, die aus einer bestimmten Anzahl von Sektoren besteht und als Einheit für den Plattenzugriff verwendet wird.
- Ein Block kann aus mehreren Sektoren bestehen, aber ein Sektor kann nicht aus mehreren Blöcken bestehen.
- Die Nutzinformation eines Sektors wird als ein Block bezeichnet.
Was ist ein parity bit?
- Ein Paritätsbit ist ein zusätzliches Bit in einer Datenübertragung, das dazu dient, Fehler zu erkennen.
- Es wird durch Berechnung der Summe der Bits in der Datenübertragung (inklusive des Paritätsbits) erstellt.
- Bei einer geraden Summe wird das Paritätsbit auf 0 gesetzt, bei einer ungeraden Summe auf 1.
- Beim Empfangen der Daten wird die Summe der Bits erneut berechnet und mit dem empfangenen Paritätsbit verglichen.
- Abweichungen zwischen der berechneten Summe und dem Paritätsbit deuten auf Übertragungsfehler hin.
Was ist ein Tertiärspeicher?
- Ein Tertiärspeicher ist ein Speichermedium für die langfristige Datenspeicherung.
- Er ist normalerweise nicht direkt vom Computer aus zugänglich.
- Im Vergleich zum Hauptspeicher und Sekundärspeicher ist er langsamer, aber mit höherer Kapazität.
- Beispiele für Tertiärspeicher sind Magnetbänder, optische Speichermedien (CDs, DVDs) und Festplatten-Arrays zur Datensicherung.
Was ist der Unterschied zwischen einem wahlfreien Zugriff und einem sequentiellen Zugriff?
- Wahlfreier Zugriff (auch direkter Zugriff genannt):
- Ermöglicht den Zugriff auf beliebige Speicherstellen ohne vorherige Durchsuchung.
- Schneller Zugriff auf bestimmte Daten, z.B. eine Datei auf einer Festplatte.
- Sequentieller Zugriff:
- Erfordert das Lesen oder Schreiben von Daten in einer bestimmten Reihenfolge.
- Zugriff auf Daten nacheinander, z.B. von einem Magnetband.
Der Hauptunterschied liegt in der Flexibilität: Wahlfreier Zugriff ermöglicht schnelles gezieltes Abrufen, während sequentieller Zugriff effizient ist, wenn Daten in bestimmter Reihenfolge benötigt werden.
Wie sieht die Speicherhierarchie aus?
- Register
- Cache
- Hauptspeicher (Primärspeicher)
- Sekundärspeicher (z.B. Festplatten)
- Tertiärspeicher (z.B. Magnetbänder)
Jede Schicht fungiert als Cache für die darunterliegende Schicht, wobei die Daten, auf die häufig zugegriffen wird, in den schnelleren Schichten gespeichert werden. Die Kosten nehmen von oben nach unten ab, während Kapazität und Zugriffszeiten zunehmen.
Welche Eigenschaft hat die Speicherhierarchie?
- Die Speicherhierarchie ist hierarchisch organisiert.
- Sie besteht aus verschiedenen Schichten von Speichermedien.
- Die Anordnung erfolgt nach Geschwindigkeit, Kapazität und Kosten.
- Häufig genutzte Daten werden in schnelleren Schichten gespeichert.
- Jede Schicht fungiert als Cache für die darunterliegende Schicht.
- Die Kosten nehmen von oben nach unten ab.
- Kapazität und Zugriffszeiten nehmen von oben nach unten zu.
Wenn man über ein Ein-/Ausgabegerät spricht, meint man eigentlich ein virtuelles Gerät, warum?
- Ein Ein-/Ausgabegerät besteht aus mehreren Komponenten.
- Diese Komponenten ermöglichen Ein- und Ausgabefunktionen.
- Die Komponenten umfassen den Gerätetreiber, Controller und das physische Gerät.
- Gemeinsam bilden sie eine Einheit, die als virtuelles Gerät fungiert.
- Die Abstraktion erfolgt durch Implementierung in der Hardware.
- Hardware-Implementierung ist effizienter und verbirgt Details.
- Software-Implementierung ist flexibler und leichter zu ändern.
Welche Teile hat ein virtuelles Gerät?
- Ein virtuelles Gerät besteht aus drei Hauptteilen.
- Gerätetreiber verbindet das Betriebssystem mit dem Controller.
- Der Controller ist eine elektronische Komponente.
- Controller steuert die Funktionen des physischen Hardware-Geräts.
- Das physische Hardware-Gerät ermöglicht Ein- und Ausgabe von Daten.
- Zusammen bilden diese Teile das virtuelle Gerät.
(Software-Treiber, elektronischer Teil-Controller, der Hardware-Gerät)?
Die einzelnen Teile eines virtuellen Geräts haben folgende Aufgaben:
- Software-Treiber: Der Gerätetreiber ist ein Teil des Betriebssystems und eine Softwarekomponente, die für die Kommunikation zwischen dem Betriebssystem und dem Controller verantwortlich ist. Der Gerätetreiber übersetzt die Anweisungen des Betriebssystems in Befehle, die der Controller versteht, und umgekehrt. Der Gerätetreiber ist auch dafür verantwortlich, dass das Gerät korrekt initialisiert und konfiguriert wird.
- Elektronischer Teil - Controller: Der Controller ist ein elektronischer Teil, der die Steuerung des Hardware-Geräts übernimmt. Der Controller empfängt Befehle vom Gerätetreiber und setzt sie in Aktionen um, die das Hardware-Gerät ausführen kann. Der Controller ist auch dafür verantwortlich, dass die Daten, die vom Hardware-Gerät empfangen werden, korrekt verarbeitet und an den Gerätetreiber zurückgegeben werden.
- Hardware-Gerät: Das Hardware-Gerät ist das physische Gerät, das Ein- und Ausgabe von Daten ermöglicht. Das Hardware-Gerät kann verschiedene Formen annehmen, wie z.B. eine Tastatur, eine Maus, ein Drucker oder eine Festplatte. Das Hardware-Gerät ist dafür verantwortlich, dass die Daten, die es empfängt, korrekt verarbeitet und an den Controller zurückgegeben werden, und dass die Daten, die es sendet, korrekt an das Betriebssystem zurückgegeben werden.
Was sind die Vorteile eines virtuellen Gerätes?
Die Vorteile eines virtuellen Gerätes sind:
- Abstraktion: Ein virtuelles Gerät abstrahiert die Details der Hardware und des Controllers und bietet dem Betriebssystem eine einheitliche Schnittstelle für die Ein- und Ausgabe von Daten. Dadurch kann das Betriebssystem unabhängig von der Hardware arbeiten und Anwendungen können auf verschiedenen Geräten ausgeführt werden, ohne dass sie für jedes Gerät neu geschrieben werden müssen.
- Flexibilität: Ein virtuelles Gerät kann leichter geändert werden als ein physisches Gerät. Wenn ein neues Gerät auf den Markt kommt, kann ein neuer Gerätetreiber geschrieben werden, um es zu unterstützen, ohne dass das Betriebssystem geändert werden muss.
- Effizienz: Ein virtuelles Gerät kann effizienter sein als ein physisches Gerät, da es in Software implementiert werden kann, anstatt in Hardware. Dadurch können Funktionen schneller ausgeführt werden, und es können mehrere virtuelle Geräte auf einem physischen Gerät ausgeführt werden.
- Kapselung: Ein virtuelles Gerät kapselt die Details der Hardware und des Controllers und bietet eine einheitliche Schnittstelle für das Betriebssystem. Dadurch können Änderungen an der Hardware oder am Controller vorgenommen werden, ohne dass das Betriebssystem oder die Anwendungen davon betroffen sind.
Was ist der Vorteil des Schichtenmodells?
- Einfache Implementierung: Jede Schicht kann unabhängig implementiert werden, indem nur die Schnittstellen zur nächsthöheren und -tieferen Schicht berücksichtigt werden.
- Reduzierte Komplexität: Durch Aufteilung in klar definierte Schichten wird die Gesamtkomplexität des Systems reduziert.
- Verbesserte Wartbarkeit und Erweiterbarkeit: Änderungen oder Erweiterungen können in einer Schicht durchgeführt werden, ohne andere Schichten zu beeinträchtigen.
- Klar getrennte Verantwortlichkeiten: Jede Schicht hat spezifische Aufgaben, was die Verantwortlichkeiten klar abgrenzt und die Zusammenarbeit erleichtert.
- Erleichterte Fehlerbehebung: Probleme können auf eine bestimmte Schicht begrenzt werden, was die Identifizierung und Behebung von Fehlern erleichtert.
- Abwägung zwischen Komplexität und Kommunikation: Beim Design müssen die Komplexität der Schichten und der Aufwand für die Kommunikation zwischen ihnen abgewogen werden.
Wie kommuniziert die CPU mit einem Gerät?
-
I/O-Mapped I/O (spezielle Befehle):
- Die CPU verwendet spezielle Befehle, um auf die Controllerregister zuzugreifen.
- Zugriff erfolgt über dedizierte Busadressen.
- Ein- und Ausgabeoperationen werden direkt mittels spezieller Befehle durchgeführt.
-
Memory-Mapped I/O (speicherabgebildete Ein-/Ausgabe):
- Controllerregister werden als Teil des Hauptspeichers adressiert.
- Der CPU nutzt schnellere Prozessorbefehle für Datenaustausch mit den Controllerregistern.
- Zugriff auf das Gerät erfolgt über den Gerätetreiber, der als Vermittler dient.
- Anwendungsprogramme und Betriebssystem greifen auf das Gerät über den Gerätetreiber zu.
Wie kommuniziert der Treiber mit dem Controller?
- Der Gerätetreiber nutzt die Register des Controllers zur Kommunikation.
- Der Controller verfügt über verschiedene Register, wie z.B. Datenausgangsregister (data-out), Dateneingangsregister (data-in), Statusregister (status) und Kontrollregister (control).
- Der Treiber schreibt Daten in das Datenausgangsregister und liest Daten aus dem Dateneingangsregister.
- Das Statusregister erlaubt dem Treiber, den Zustand des Geräts abzufragen.
- Das Kontrollregister ermöglicht es dem Treiber, Befehle an den Controller zu senden, z.B. Lesebefehle.
- Jedes Register des Controllers hat eine eindeutige Portnummer als Adresse, über die die CPU auf das Register zugreifen kann.
- Der Treiber verwendet spezielle Ein-/Ausgabebefehle, um die Register des Controllers anzusprechen.
Welche Register hat der Controller?
- Datenausgangsregister (data-out): Hier schreibt der Treiber Daten, die für den Controller bestimmt sind.
- Dateneingangsregister (data-in): Hier schreibt der Controller Daten, die für den Gerätetreiber bestimmt sind.
- Statusregister (status): Der Treiber kann den Zustand des Geräts abfragen, z.B. ob es beschäftigt ist oder Daten abrufbereit sind.
- Kontrollregister (control): Der Treiber kann Befehle an den Controller senden, z.B. Lesebefehle.
- Jedes Register hat eine Portnummer als Adresse, über die die CPU darauf zugreifen kann.
Was ist memory-mapped I/O?
- Memory-mapped I/O ist eine Kommunikationstechnik zwischen CPU und Controllern.
- Dabei werden Controller-Register als Teil des Hauptspeichers adressiert.
- Der laufende Gerätetreiber auf der CPU nutzt Prozessorbefehle für den Datenaustausch mit Controllerregistern.
- Im Gegensatz zur Ein-/Ausgabe über spezielle Befehle (I/O-Mapped I/O) erfolgen Ein- und Ausgabeoperationen über den Hauptspeicher.
- Anwendungsprogramme und Teile des Betriebssystems greifen nur über den Gerätetreiber auf das Gerät zu.
Welche Möglichkeiten hat die CPU, zu erfahren, ob ein z.B. Leseauftrag schon fertig ist?
- Status-Polling-Register: Die CPU kann das Status-Polling-Register des Controllers abfragen, um den Status des Auftrags zu überprüfen.
- Polling: Dieser Abfragebetrieb wird als Polling bezeichnet.
- Unterbrechungsbetrieb: Der Controller kann die CPU benachrichtigen, sobald der Auftrag ausgeführt wurde, indem er die CPU bei ihrer aktuellen Arbeit unterbricht.
- Unterbrechungen: Diese Unterbrechungsbetrieb bildet die Grundlage für die Arbeitsweise moderner Computersysteme.