Kurseinheit 1 Flashcards

You may prefer our related Brainscape-certified flashcards:
1
Q

Was ist eigentlich ein Betriebssystem?

A

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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wozu braucht man ein Betriebssystem?

A

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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Welche Aufgaben hat ein Betriebssystem?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Welche Strategien und Mechanismen benutzt ein Betriebssystem, um diese
Aufgaben zu lösen?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Welche Schnittstellen werden vom Betriebssystem Anwendungen zur Verfügung gestellt?

A

Welche Schnittstellen werden vom Betriebssystem Anwendungen zur Verfügung gestellt?

Das Betriebssystem stellt zwei Haupt-Schnittstellen bereit:

  1. 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.
  2. 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Welche Idee hatte von Neumann?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Warum ist seine Idee ein Meilenstein für die Informatik?

A

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:

  1. 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.
  2. 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.
  3. 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Welche Hardwarekomponenten hat ein moderner von-Neumann-Rechner?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wie sieht eine CPU aus?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Welche wichtige Register hat die CPU?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Welche Aufgabe haben diese wichtigen Register?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was ist ein Programm im Hauptspeicher?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Welche Schritte hat ein Befehlszyklus des Prozessors?

A

Ein Befehlszyklus des Prozessors besteht aus den folgenden Schritten:

  1. 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.
  2. 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.
  3. 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.
  4. 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Wie sieht ein Hauptspeicher aus?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wie werden die Speicherzellen adressiert?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Welche Beziehung hat der Adressbus mit dem Hauptspeicher?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Wie kann man aus der Größe des Hauptspeichers die Länge des Adressbusses berechnen?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Warum hat der Hauptspeicher die Eigenschaft des wahlfreien Zugriffs?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Wie ist eigentlich wahlfreier Zugriff definiert?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Was ist ein Cache?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Wozu ist ein Cache gut?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Welche Probleme entstehen, wenn ein Cache eingesetzt wird?

A
  • 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Wie läuft der Cache-Algorithmus?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Was ist ein Sekundärspeicher?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Wie ist eine Festplatte aufgebaut?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Welche Befehle kann die Festplatte ausführen?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Warum unterstützt eine Festplatte auch den wahlfreien Zugriff?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Was ist die Positionierungszeit, Latenzzeit, Übertragungszeit und Zugriffszeit?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Welche Strategien gibt es, um die Aufträge für Plattenlaufwerk abzuarbeiten?

A

Die Strategien sind wie folgt:

  1. 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.
  2. 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.
  3. 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Welche Probleme kann es bei der Strategie SSTF geben?

A

Die SSTF-Strategie hat folgende Probleme:

  1. 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.
  2. 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.
  3. 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.
  4. 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Kann es passieren, dass ein Auftrag mit SSTF nicht bearbeitet wird?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Was ist der Unterschied zwischen einem Sektor und einem Block?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Was ist ein parity bit?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Was ist ein Tertiärspeicher?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Was ist der Unterschied zwischen einem wahlfreien Zugriff und einem sequentiellen Zugriff?

A
  • 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

Wie sieht die Speicherhierarchie aus?

A
  • 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

Welche Eigenschaft hat die Speicherhierarchie?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

Wenn man über ein Ein-/Ausgabegerät spricht, meint man eigentlich ein virtuelles Gerät, warum?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

Welche Teile hat ein virtuelles Gerät?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

(Software-Treiber, elektronischer Teil-Controller, der Hardware-Gerät)?

A

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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

Was sind die Vorteile eines virtuellen Gerätes?

A

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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

Was ist der Vorteil des Schichtenmodells?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

Wie kommuniziert die CPU mit einem Gerät?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q

Wie kommuniziert der Treiber mit dem Controller?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

Welche Register hat der Controller?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
47
Q

Was ist memory-mapped I/O?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
48
Q

Welche Möglichkeiten hat die CPU, zu erfahren, ob ein z.B. Leseauftrag schon fertig ist?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
49
Q

Wie kann die CPU wissen, welcher z.B. Leseauftrag fertig ist?

A
  • Unterbrechungsroutine: Die CPU ruft die passende Unterbrechungsroutine auf.
  • Unterbrechungsnummer: Die allgemeine Unterbrechungsroutine ermittelt die Unterbrechungsnummer, z.B. durch Polling der Geräte oder Abfrage beim Interrupt-Controller.
  • Unterbrechungsvektor: Im Unterbrechungsvektor steht die Startadresse der entsprechenden Unterbrechungsroutine.
  • Befehlszählregister: Die Adresse der Unterbrechungsroutine wird ins Befehlszählregister der CPU geladen.
  • Sprung zur Routine: Die CPU springt in die passende Unterbrechungsroutine.
  • Gerätetreiberprozess: Der Gerätetreiberprozess reserviert Speicherplatz für die zu lesenden Daten und bestimmt die Datenblockadresse.
  • Lesebefehl: Der Gerätetreiber überträgt einen Lesebefehl an den Gerätecontroller.
  • Benachrichtigung: Der Treiber wird später benachrichtigt, wenn der Lesebefehl ausgeführt wurde.
50
Q

Was ist polling?

A
  • Abfragebetrieb: Polling ist ein Abfragebetrieb, bei dem die CPU wiederholt den Status eines Auftrags abfragt.
  • Status-Polling-Register: Die CPU fragt das Status-Polling-Register des Controllers ab, um den Auftragsstatus zu überprüfen.
  • Hauptspeicherbereich: Bei speicherabgebildeter Ein-/Ausgabe liegen die Register im Hauptspeicherbereich.
  • Effizienz: Polling kann effizient sein, wenn die Abfragen erfolgreich sind.
  • CPU-Zeit: Wenn die Abfragen wiederholt erfolglos sind, kann viel CPU-Zeit verbraucht werden.
51
Q

Was ist der Nachteil der Polling-Technik?

A
  • Abfragebetrieb: Polling ist ein Abfragebetrieb, bei dem die CPU wiederholt den Status eines Auftrags abfragt.
  • Status-Polling-Register: Die CPU fragt das Status-Polling-Register des Controllers ab, um den Auftragsstatus zu überprüfen.
  • Hauptspeicherbereich: Bei speicherabgebildeter Ein-/Ausgabe liegen die Register im Hauptspeicherbereich.
  • Effizienz: Polling kann effizient sein, wenn die Abfragen erfolgreich sind.
  • CPU-Zeit: Wenn die Abfragen wiederholt erfolglos sind, kann viel CPU-Zeit verbraucht werden.
52
Q

Was ist eine Hardware-Unterbrechung?

A
  • Externe Ursache: Eine Hardware-Unterbrechung wird durch ein externes Gerät verursacht.
  • Unabhängig vom Programm: Sie tritt unabhängig vom gerade ausgeführten Programm auf.
  • Nicht reproduzierbar: Die Unterbrechung kann nicht wiederhergestellt werden, wenn das Programm erneut ausgeführt wird.
  • Beispiel: Tastatureingabe oder Mausklick können Hardware-Unterbrechungen auslösen.
  • Keine Verbindung zum Programmfluss: Die Unterbrechung beeinflusst nicht den normalen Ablauf des Programms.
53
Q

Wie funktioniert eine Unterbrechung?

A
  • Ereignismeldung: Eine Unterbrechung signalisiert ein spezifisches Ereignis, das von einer Quelle (Hardware oder Software) gemeldet wird.
  • CPU-Signal: Das Ereignis wird der CPU durch das Anlegen eines Signals an ihrem Unterbrechungseingang mitgeteilt.
  • Unterbrechungsbehandlung: Sobald eine Unterbrechung erkannt wird, wird eine spezielle Unterbrechungsroutine (Interrupt Service Routine, ISR) im Betriebssystem aufgerufen.
  • CPU-Status sichern: Die CPU sichert ihren aktuellen Status, um nach der Unterbrechungsbehandlung zum normalen Programmablauf zurückzukehren.
  • ISR-Ausführung: Die ISR führt spezifische Aktionen aus, um auf das Unterbrechungserignis zu reagieren.
  • Priorisierung: Je nach Priorität werden Unterbrechungen in der Reihenfolge ihrer Wichtigkeit behandelt.
  • Unterbrechungsmaskierung: Die CPU kann Unterbrechungen maskieren, um ihre Behandlung in bestimmten Situationen zu verhindern.
  • Wiederherstellung des CPU-Status: Nach der ISR-Ausführung wird der gespeicherte CPU-Status wiederhergestellt, und das normale Programm wird fortgesetzt.
54
Q

Welche Funktionen hat der Unterbrechungsvektor?

A
  • Routinenzuordnung: Der Unterbrechungsvektor enthält Adressen, die den Unterbrechungsroutinen für verschiedene Ereignisse oder Geräte zugeordnet sind.
  • Adressaufruf: Bei einer Unterbrechung wird die Adresse der entsprechenden Unterbrechungsroutine aus dem Vektor gelesen.
  • Richtige Aktion: Die Adresse führt zur Ausführung der spezifischen Unterbrechungsroutine, die die richtigen Aktionen für das Ereignis durchführt.
  • Effiziente Behandlung: Durch den Unterbrechungsvektor kann das Betriebssystem schnell die richtige Routine aufrufen, anstatt mühsam nach der passenden Routine suchen zu müssen.
  • Skalierbarkeit: Neue Unterbrechungsroutinen können einfach hinzugefügt werden, indem ihre Adressen im Vektor hinterlegt werden.
  • Ordnung und Struktur: Der Unterbrechungsvektor organisiert die Verwaltung von Unterbrechungsroutinen, um eine klare Struktur und effiziente Handhabung zu gewährleisten.
55
Q

Was macht eine Unterbrechungsroutine?

A
  • Bearbeitung des Ereignisses: Die Unterbrechungsroutine wird aufgerufen, um das spezifische Ereignis zu bearbeiten, das die Unterbrechung ausgelöst hat.
  • Datenverarbeitung: Die Routine kann Datenverarbeitung durchführen, wie z. B. das Lesen von Daten aus einem Controller oder das Schreiben von Daten in einen Speicherbereich.
  • Statusaktualisierung: Die ISR kann den Status des Geräts aktualisieren, z. B. um anzuzeigen, dass ein Auftrag abgeschlossen ist.
  • Kommunikation mit Treibern: Die Unterbrechungsroutine kann Informationen an den entsprechenden Gerätetreiber übergeben oder Anweisungen vom Treiber erhalten.
  • Wiederherstellung des Zustands: Am Ende der Routine wird der vor der Unterbrechung vorliegende Zustand des Prozesses wiederhergestellt, um nahtlos zur unterbrochenen Aufgabe zurückzukehren.
  • Signalisierung des Abschlusses: Die ISR kann andere Teile des Systems oder Prozesse darüber informieren, dass das Ereignis abgeschlossen wurde.
  • Bereinigung: Die Routine kann aufräumen und eventuell notwendige Ressourcen freigeben, bevor sie beendet wird.
56
Q

Wie kann die CPU die entsprechende Unterbrechungsroutine finden?

A
  • Unterbrechungsnummer identifizieren: Die CPU ermittelt die Nummer der ausgelösten Unterbrechung, um die entsprechende Routine zu finden.
  • Zugriff auf den Unterbrechungsvektor: Die CPU verwendet die Unterbrechungsnummer als Index, um den Unterbrechungsvektor zu durchsuchen.
  • Laden der Startadresse: Die Startadresse der passenden Unterbrechungsroutine im Unterbrechungsvektor wird ermittelt.
  • Laden der Adresse im Befehlszählregister: Die gefundene Startadresse wird in das Befehlszählregister der CPU geladen, um den Sprung zur Unterbrechungsroutine auszuführen.
  • Ausführung der Unterbrechungsroutine: Die CPU springt zur Adresse der Unterbrechungsroutine und beginnt mit der Ausführung der darin enthaltenen Instruktionen.
57
Q

Welche Aufgabe hat das Betriebssystem bei einer Unterbrechung?

A
  • Kontrolle übernehmen: Das Betriebssystem erkennt die Unterbrechung und übernimmt die Kontrolle über den Prozessor.
  • Unterbrechungsroutine aufrufen: Das Betriebssystem ruft die entsprechende Unterbrechungsroutine auf, die den Unterbrechungswunsch des Geräts bearbeitet.
  • Zustand speichern: Das Betriebssystem speichert den Zustand des unterbrochenen Prozesses, einschließlich der Register und des Befehlszählers, um später die Ausführung fortsetzen zu können.
  • Ressourcen verwalten: Das Betriebssystem kann während der Unterbrechung zusätzliche Aufgaben durchführen, wie z.B. die Verwaltung von Ressourcen oder das Planen von Prozessen.
  • Kontrolle zurückgeben: Nachdem die Unterbrechungsroutine abgeschlossen ist, gibt das Betriebssystem die Kontrolle an den unterbrochenen Prozess zurück und setzt die Ausführung fort.
58
Q

Warum muss der laufenden Prozess gerettet werden, bevor eine Unterbrechung bearbeitet werden soll?

A
  • Kontextwiederherstellung: Der laufende Prozess muss gerettet werden, um seinen aktuellen Zustand, einschließlich der Registerinhalte und der Position im Code, zu speichern.
  • Nahtlose Fortsetzung: Wenn die Unterbrechung bearbeitet wird und der Prozess später fortgesetzt wird, soll es so aussehen, als wäre keine Unterbrechung aufgetreten.
  • Datenintegrität: Das Speichern des Prozesskontexts stellt sicher, dass die Daten und der Zustand des Prozesses konsistent bleiben, auch nachdem die Unterbrechung abgearbeitet wurde.
  • Vermeidung von Datenverlust: Ohne die Kontextspeicherung könnte der laufende Prozess wichtige Daten verlieren, wenn er durch die Unterbrechung unterbrochen wird.
59
Q

Wie kann man mit mehreren Unterbrechungen umgehen?

A

Es gibt verschiedene Möglichkeiten, mit mehreren Unterbrechungen umzugehen. Eine Möglichkeit besteht darin, den Unterbrechungen Prioritäten zuzuweisen, so dass Unterbrechungen mit höherer Priorität Unterbrechungen mit niedrigerer Priorität unterbrechen können. Eine andere Möglichkeit besteht darin, maskierbare Unterbrechungen zu verwenden, die durch das Setzen eines Bits im Interrupt-Maskenregister maskiert werden können, so dass sie nicht bearbeitet werden, wenn sie auftreten. In diesem Fall wird die Unterbrechung in einer Warteschlange gespeichert und später bearbeitet, wenn sie nicht mehr maskiert ist.

60
Q

Polling ist ein aktives Warten und es ist ineffizient, Aber die CPU muss nach jeder Ausführung eines Befehls überprüfen, ob ein Unterbrechungssignal vorliegt, Ist das auch ein aktives Warten?

A
  • Prioritäten: Unterbrechungen können Prioritäten zugewiesen werden, um festzulegen, welche Unterbrechungen Vorrang haben, wenn mehrere gleichzeitig auftreten. Höher priorisierte Unterbrechungen können niedriger priorisierte Unterbrechungen unterbrechen.
  • Maskierung: Maskierbare Unterbrechungen können durch das Setzen eines Bits im Interrupt-Maskenregister vorübergehend deaktiviert werden. Sie werden in einer Warteschlange gespeichert und später bearbeitet, wenn die Maskierung aufgehoben wird.
  • Interrupt-Controller: Ein Interrupt-Controller kann verwendet werden, um die Prioritäten und die Behandlung von Unterbrechungen zu verwalten. Er kann auch die Weiterleitung von Unterbrechungen an den Prozessor steuern.
  • Unterbrechungsvektor: Jede Unterbrechung hat eine eindeutige Nummer oder Adresse im Unterbrechungsvektor, die ihre spezifische Behandlungsroutine identifiziert.
  • Unterbrechungsbehandlungsroutinen: Für jede Art von Unterbrechung wird eine separate Behandlungsroutine erstellt, um die spezifische Aufgabe zu erfüllen, die mit der Unterbrechung verbunden ist.
61
Q

Was ist aber der Unterschied zwischen der Verwendung von Unterbrechungen und dem Polling?

A
  • Warteprinzip:
    • Polling: Die CPU überprüft kontinuierlich den Gerätestatus.
    • Unterbrechungen: Die CPU wird nur bei Ereignissen von Geräten unterbrochen.
  • Effizienz:
    • Polling: Ineffizient, da die CPU ständig überwachen muss.
    • Unterbrechungen: Effizienter, da die CPU nur unterbrochen wird, wenn nötig.
  • CPU-Nutzung:
    • Polling: Hohe CPU-Nutzung während des Wartens.
    • Unterbrechungen: Die CPU kann andere Aufgaben erledigen, während sie auf Unterbrechungen wartet.
  • Abhängigkeit von der CPU:
    • Polling: Aktive Überwachung erfordert ständige CPU-Präsenz.
    • Unterbrechungen: Die CPU kann andere Aufgaben ausführen, ohne ständig den Gerätestatus zu überprüfen.
  • Allgemeine Effizienz:
    • Polling: Weniger effizient, da die CPU während des Wartens blockiert ist.
    • Unterbrechungen: Effizienter, da die CPU produktiver genutzt wird.
62
Q

Warum ist die Unterbrechung für ein Betriebssystem so wichtig?

A
  • Ereignisverarbeitung: Unterbrechungen ermöglichen dem Betriebssystem, auf Ereignisse von Geräten zu reagieren, z.B. Abschluss von E/A-Operationen.
  • Effizienz: Mit Unterbrechungen kann das Betriebssystem auf Ereignisse reagieren, ohne kontinuierlich den Status von Geräten überwachen zu müssen.
  • Koordination: Das Betriebssystem kann Aufgaben koordinieren, indem es bei bestimmten Ereignissen geeignete Aktionen ausführt.
  • Multitasking: Unterbrechungen ermöglichen das nahtlose Umschalten zwischen verschiedenen Aufgaben und Prozessen.
  • Ressourcenmanagement: Durch Unterbrechungen kann das Betriebssystem Ressourcen effizient verwalten, z.B. das Planen von Prozessen.
  • Echtzeitverarbeitung: Unterbrechungen sind wichtig für Echtzeitsysteme, um zeitkritische Aufgaben sofort zu behandeln.
  • Vermeidung von Polling: Unterbrechungen ersetzen ineffizientes aktives Warten (Polling) und erhöhen die Systemeffizienz.
63
Q

Warum brauchen wir den Unterbrechungsmechanismus?

A
  • Ereignisreaktion: Der Unterbrechungsmechanismus ermöglicht es dem System, sofort auf Ereignisse von Geräten zu reagieren.
  • Effizienz: Anstatt kontinuierliches Polling, kann die CPU auf andere Aufgaben umschalten und nur bei Bedarf auf Unterbrechungen reagieren.
  • Ressourcenoptimierung: Durch Unterbrechungen kann die CPU Ressourcen für andere Aufgaben nutzen, wenn keine Unterbrechung vorliegt.
  • Echtzeitverarbeitung: Der Unterbrechungsmechanismus ist entscheidend für Echtzeitsysteme, die sofort auf zeitkritische Ereignisse reagieren müssen.
  • Multitasking: Unterbrechungen ermöglichen reibungsloses Umschalten zwischen verschiedenen Prozessen und Aufgaben.
  • Koordination: Das Betriebssystem kann Aufgaben koordinieren und Ressourcen effizient verwalten.
  • Verbesserte Reaktionsfähigkeit: Mit Unterbrechungen kann das System schnell auf externe Ereignisse reagieren und Benutzeranforderungen erfüllen.
64
Q

Warum sagt man, dass durch die Unterbrechung das Betriebssystem aktiviert wird?

A
  • Reaktion auf Ereignisse: Die Unterbrechung aktiviert das Betriebssystem, indem sie es dazu anregt, auf spezifische Ereignisse von Geräten zu reagieren.
  • Koordination von Aufgaben: Durch die Unterbrechung kann das Betriebssystem Aufgaben koordinieren und entsprechende Aktionen ausführen.
  • Effiziente Ressourcennutzung: Das Betriebssystem wird nur aktiviert, wenn ein Ereignis auftritt, was die Ressourcennutzung effizienter macht.
  • Echtzeitverarbeitung: Die Aktivierung des Betriebssystems durch Unterbrechungen ist wichtig für Echtzeitsysteme, die sofort auf Ereignisse reagieren müssen.
  • Verbesserte Systemreaktion: Die Unterbrechung ermöglicht es dem Betriebssystem, schnell und effektiv auf Ereignisse zu reagieren und die Systemreaktion zu verbessern.
  • Unterstützung von Multitasking: Durch die Aktivierung des Betriebssystems können verschiedene Prozesse und Aufgaben nahtlos koordiniert und verwaltet werden.
65
Q

Welche Unterbrechungen gibt es?

A
  • Software-Unterbrechungen: Von Software ausgelöste Ereignisse, die eine Unterbrechung auslösen können, wie z.B. eine fehlerhafte Befehlsausführung oder eine Anforderung für Betriebssystemdienste.
  • Hardware-Unterbrechungen: Durch externe Geräte ausgelöste Ereignisse, die durch Signale an den Unterbrechungseingang der CPU gemeldet werden, wie z.B. das Abschließen einer Eingabe- oder Ausgabeoperation, ein Timer-Überlauf oder eine Tastatureingabe.
  • Maskierbare Unterbrechungen: Diese können durch das Setzen oder Löschen von Bits in einem Interrupt-Maskenregister aktiviert oder deaktiviert werden. Sie werden in einer Warteschlange gehalten, bis sie nicht mehr maskiert sind.
  • Nicht maskierbare Unterbrechungen: Diese können nicht durch Maskieren deaktiviert werden und haben normalerweise höhere Priorität, da sie oft auf schwerwiegende Hardware-Fehler hinweisen.
  • Softwaregesteuerte Unterbrechungen: Durch spezielle Befehle oder Anweisungen in einem Programm ausgelöste Ereignisse, um beispielsweise die Ausführung eines bestimmten Codes zu ermöglichen.
  • Echtzeit-Unterbrechungen: Für Echtzeitsysteme, um auf zeitkritische Ereignisse zu reagieren, die eine sofortige Verarbeitung erfordern.
  • Interprozesskommunikation (IPC)-Unterbrechungen: Für die Kommunikation zwischen verschiedenen Prozessen oder Threads in einem System.

Bitte beachten Sie, dass die genauen Arten von Unterbrechungen je nach Systemarchitektur und Betriebssystem variieren können.

66
Q

Was ist der Unterschied zwischen Hardware-Unterbrechung und Software-Unterbrechung?

A
  • Hardware-Unterbrechung:
    • Auslöser: Externes Gerät (Hardware)
    • Ereignis: Spezifisches Ereignis, z.B. Eingabe von Daten, Timer-Überlauf
    • Signalisierung: Signal am Unterbrechungseingang der CPU
    • Ursache: Kein direkter Zusammenhang mit dem laufenden Programm
    • Reproduzierbarkeit: Nicht reproduzierbar, abhängig von externen Einflüssen
    • Beispiel: Timer-Interrupt, Tastatureingabe
  • Software-Unterbrechung:
    • Auslöser: Programm (Software)
    • Ereignis: Programmierter Befehl oder Anweisung, z.B. Systemaufruf
    • Signalisierung: Direkte Ausführung eines speziellen Befehls oder Anweisung
    • Ursache: Direkter Zusammenhang mit dem laufenden Programm
    • Reproduzierbarkeit: Reproduzierbar, tritt an derselben Stelle im Programm auf
    • Beispiel: Systemaufruf (z.B. Dateizugriff), Trap (z.B. ungültiger Speicherzugriff)

Der Hauptunterschied liegt also darin, wer die Unterbrechung auslöst und wie sie signalisiert wird, sowie in ihrer Reproduzierbarkeit und dem Zusammenhang mit dem laufenden Programm.

67
Q

Wie funktioniert ein Systemaufruf?

A
  • Systemaufruf Funktionsweise:
    • Form: Ähnlich einem Funktionsaufruf
    • Parameterübergabe: In Registern oder im Hauptspeicher
    • Vorbereitung: Systemaufruf bereitet Parameter vor
    • Auslösung: Durch spezielle Instruktion (Trap)
    • Privilegierter Modus: CPU wechselt in Betriebssystem-Modus
    • System Call Handler: Unterbrechungsroutine des Betriebssystems
    • Verarbeitung: Extrahiert Parameter, führt Systemfunktion aus
    • Ergebnis: Rückgabe des Ergebnisses an den aufrufenden Prozess

Der Systemaufruf ermöglicht es Anwendungsprogrammen, auf Betriebssystemfunktionen zuzugreifen, indem sie eine spezielle Instruktion ausführen, die eine Unterbrechung auslöst. Diese Unterbrechung führt zur Ausführung einer Unterbrechungsroutine im Betriebssystem, die die angeforderte Systemfunktion verarbeitet und das Ergebnis zurückgibt. Die Parameter können direkt in Registern oder im Hauptspeicher übergeben werden.

68
Q

Welche Funktionen haben die Unterbrechungen?

A
  • Reaktion auf externe Ereignisse:
    • Eingaben von Benutzern
    • Daten in Puffern
    • Ohne aktives Warten von Betriebssystem oder Anwendungen
    • Effiziente Ressourcennutzung
  • Ausführung von Systemaufrufen:
    • Anwendungen greifen auf Systemressourcen zu
    • Zugriff auf normalerweise nicht zugängliche Funktionen
  • Behandlung von Fehlern und Ausnahmen:
    • Ungültige Speicherzugriffe
    • Division durch Null
    • Fehler während der Programmausführung
    • Ermöglicht Fehlerbehandlung und -diagnose
69
Q

Welche Aufgaben der Betriebssysteme werden durch den Unterbrechungsmechnismus bewältigt?

A
  • Steuerung der Geräte:
    • Reaktion auf Ereignisse wie Benutzereingaben oder das Vorliegen von Daten in einem Puffer
  • Verarbeitung von Systemaufrufen:
    • Ermöglicht Anwendungen den Zugriff auf Systemressourcen, die normalerweise nicht zugänglich sind
  • Behandlung von Fehlern und Ausnahmen:
    • Erkennung und Umgang mit Fehlerzuständen während der Programmausführung
  • Prozessverwaltung und Multitasking:
    • Wechsel zwischen verschiedenen laufenden Prozessen zur effizienten Nutzung der CPU

Der Unterbrechungsmechanismus spielt eine zentrale Rolle bei diesen Aufgaben des Betriebssystems, indem er die reibungslose Koordination und Kontrolle ermöglicht.

70
Q

Welche Zwecke hat die Unterbrechung?

A

Die Unterbrechung hat folgende Zwecke:

  • Reaktion auf externe Ereignisse:
    • Ermöglicht dem Computer, auf externe Ereignisse wie Benutzereingaben oder das Vorliegen von Daten in einem Puffer zu reagieren, ohne dass aktives Warten erforderlich ist.
  • Ausführung von Systemaufrufen:
    • Erlaubt Anwendungen den Zugriff auf Systemressourcen, die normalerweise nicht direkt zugänglich sind.
  • Behandlung von Fehlern und Ausnahmen:
    • Identifiziert und behandelt Fehlerzustände oder Ausnahmen, die während der Programmausführung auftreten können.
  • Verwaltung von Prozessen und Multitasking:
    • Ermöglicht dem Betriebssystem die effiziente Verwaltung von Prozessen und die Implementierung von Multitasking durch den Wechsel zwischen verschiedenen Prozessen.

Die Unterbrechungen sind daher ein vielseitiger Mechanismus, der das Betriebssystem in die Lage versetzt, effizient auf unterschiedliche Situationen und Anforderungen zu reagieren.

71
Q

Was ist der Unterschied zwischen der programmierten Ein-/Ausgabe und DMA?

A

Der Unterschied zwischen der programmierten Ein-/Ausgabe und DMA ist wie folgt:

Programmierte Ein-/Ausgabe (PIO):
- Die CPU steuert den Datenfluss zwischen dem Gerät und dem Speicher.
- Die CPU sendet Befehle an das Gerät, um Daten zu übertragen.
- Die CPU wartet auf die Bestätigung der Übertragung und setzt andere Aufgaben aus.
- Dies kann zeitaufwändig sein und die CPU-Auslastung erhöhen, besonders bei großen Datenmengen.

DMA (Direct Memory Access):
- Ein DMA-Controller übernimmt die Datenübertragung zwischen Gerät und Speicher.
- Der DMA-Controller greift direkt auf den Speicher zu, um Daten zu übertragen.
- Die CPU kann während der Datenübertragung andere Aufgaben ausführen, da sie nicht aktiv am Transfer beteiligt ist.
- DMA ist schneller und effizienter, insbesondere bei großen Datenmengen, da die CPU entlastet wird.

72
Q

Wie arbeiten die zwei Techniken?

A

Die beiden Techniken, programmierte Ein-/Ausgabe und DMA, arbeiten wie folgt:

Programmierte Ein-/Ausgabe (PIO):
1. Der Gerätetreiber auf der CPU sendet Befehle an das Gerät, um Daten zu übertragen.
2. Die CPU übernimmt die Übertragung der Daten zwischen dem Gerät und dem Speicher.
3. Die CPU wartet auf eine Bestätigung, dass die Datenübertragung abgeschlossen ist.
4. Während dieser Zeit kann die CPU keine anderen Aufgaben ausführen, was die Effizienz beeinträchtigen kann.
5. Dieser Prozess kann zeitaufwändig sein und die CPU stark belasten, besonders bei großen Datenmengen.

DMA (Direct Memory Access):
1. Der Gerätetreiber teilt dem Gerätecontroller die Nummer des zu lesenden Blocks und dem DMA-Controller die Anfangsadresse des Hauptspeicherbereichs mit.
2. Der DMA-Controller übernimmt die Datenübertragung zwischen dem Gerät und dem Speicher.
3. Die CPU kann während der Datenübertragung andere Aufgaben ausführen, da sie nicht direkt am Transfer beteiligt ist.
4. Der DMA-Controller überträgt die Daten direkt in den Speicher, ohne die CPU zu bemühen.
5. Der Gerätecontroller und der DMA-Controller müssen für dieses Verfahren ausgelegt sein.
6. DMA ist schneller und effizienter, da die CPU entlastet wird und andere Aufgaben ausführen kann, insbesondere bei großen Datenmengen.

Insgesamt bietet DMA den Vorteil, dass Daten schneller und effizienter zwischen dem Gerät und dem Speicher übertragen werden können, während die CPU entlastet wird. Dies ist besonders nützlich bei großen Datenmengen und trägt zur verbesserten Gesamtleistung des Systems bei.

73
Q

Warum kann DMA die CPU stören?

A

Obwohl DMA (Direct Memory Access) die CPU entlastet und effizienter arbeiten lässt, kann es dennoch vorkommen, dass die Arbeit der CPU verzögert wird, während DMA-Vorgänge ablaufen. Dies kann passieren, wenn der DMA-Controller den Speicherbereich blockiert, auf den die CPU zugreifen möchte, oder wenn der DMA-Controller den Bus blockiert, so dass andere Geräte nicht auf den Bus zugreifen können. In solchen Fällen muss die CPU warten, bis der DMA-Controller den Speicher oder den Bus freigibt, bevor sie ihre Arbeit fortsetzen kann. Es ist daher wichtig, dass das System so konfiguriert ist, dass DMA-Operationen so schnell wie möglich abgeschlossen werden, um die Auswirkungen auf die CPU-Leistung zu minimieren.

74
Q

Wie viele Register muss der DMA haben, damit er seine Aufgabe machen kann?

A

Die Anzahl der Register, die ein DMA-Controller benötigt, variiert je nach Implementierung und den spezifischen Anforderungen des Systems. In der Regel benötigt ein DMA-Controller jedoch mindestens einige spezielle Register, um seine Aufgaben effektiv zu erfüllen:

  1. Source Address Register: Dieses Register speichert die Startadresse des Datenbereichs im Gerätsspeicher, von dem aus die Daten übertragen werden sollen.
  2. Destination Address Register: Hier wird die Startadresse im Hauptspeicher gespeichert, in den die Daten übertragen werden sollen.
  3. Count Register: Dieses Register enthält die Anzahl der zu übertragenden Datenwörter oder Bytes.
  4. Control Register: Hier werden verschiedene Steuerungsinformationen gespeichert, wie z.B. der Übertragungsmodus (lesen oder schreiben), die Aktivierung des DMA-Vorgangs usw.
  5. Status Register: Dieses Register gibt Auskunft über den aktuellen Status des DMA-Vorgangs, wie z.B. ob die Übertragung abgeschlossen ist.

Je nach Komplexität und Flexibilität des DMA-Controllers können weitere Register vorhanden sein, um spezifische Funktionen zu unterstützen. Die genaue Anzahl und Art der Register hängt von den Anforderungen des Systems und der Funktionalität des DMA-Controllers ab.

75
Q

Wie arbeitet der DMA?

A

Der DMA (Direct Memory Access) arbeitet auf folgende Weise:

  1. Initialisierung: Der Gerätetreiber und der DMA-Controller werden konfiguriert. Der Gerätetreiber teilt dem Gerätecontroller mit, welche Daten übertragen werden sollen, und gibt die Startadresse des Gerätespeichers an. Der DMA-Controller erhält die Anfangsadresse des Hauptspeicherbereichs, in den die Daten übertragen werden sollen.
  2. Vorbereitung: Der Gerätecontroller teilt dem DMA-Controller mit, wann der Datenübertragungsvorgang gestartet werden soll. Der DMA-Controller ist nun bereit, die Datenübertragung zu übernehmen.
  3. Datenübertragung: Sobald der DMA-Controller aktiviert ist, übernimmt er die Kontrolle über den Speicherbus und den Datenbus. Er überträgt die Daten direkt zwischen dem Gerätespeicher und dem Hauptspeicher, ohne die CPU zu belasten. Die CPU kann in der Zwischenzeit andere Aufgaben ausführen.
  4. Adressierung und Zählen: Der DMA-Controller erhöht die Speicheradressen für den Quell- und Zielbereich, um die nächsten Datenwörter zu übertragen. Er zählt auch die Anzahl der übertragenen Daten, um den Fortschritt zu verfolgen.
  5. Unterbrechung: Der DMA-Controller löst eine Unterbrechung für die CPU aus, wenn die gesamte Datenübertragung abgeschlossen ist. Die CPU kann dann die erforderlichen Aktionen ausführen, um den Abschluss des DMA-Vorgangs zu verarbeiten.

Insgesamt ermöglicht der DMA-Controller eine effiziente und schnelle Übertragung großer Datenmengen zwischen Geräten und dem Hauptspeicher, ohne die CPU stark zu beanspruchen. Dies verbessert die Gesamtleistung des Systems.

76
Q

Wie funktioniert ein Booting-Vorgang?

A

Der Booting-Vorgang ist der Prozess, bei dem ein Computer gestartet wird und sich für den Betrieb vorbereitet. Hier ist eine allgemeine Beschreibung, wie der Booting-Vorgang abläuft:

  1. Stromversorgung einschalten: Der Vorgang beginnt, wenn der Computer eingeschaltet wird. Die Stromversorgung gelangt zu den Komponenten des Computers.
  2. Initialisierung der Hardware: Beim Einschalten werden grundlegende Hardware-Komponenten wie die CPU, der Arbeitsspeicher (RAM) und andere Chips initialisiert und getestet.
  3. Ur-Lader (Bootloader): Ein spezieller Lader, der im ROM oder Flash-Speicher des Computers gespeichert ist, wird aktiviert. Dieser Ur-Lader, auch als Bootloader bezeichnet, enthält die Informationen darüber, wo das Betriebssystem zu finden ist.
  4. Betriebssystem-Lader: Der Bootloader lädt den eigentlichen Betriebssystem-Lader von der Festplatte, SSD oder einem anderen Speichermedium. Dieser Lader ist in der Lage, das Betriebssystem in den Arbeitsspeicher zu laden.
  5. Betriebssystem-Initialisierung: Der geladene Betriebssystem-Lader startet das Betriebssystem. Dabei werden verschiedene Systemkomponenten initialisiert, Dienste gestartet und Treiber geladen.
  6. Benutzeroberfläche: Nachdem das Betriebssystem gestartet ist, wird die Benutzeroberfläche angezeigt, und der Benutzer kann sich anmelden.
  7. Betriebsbereit: Sobald der Booting-Vorgang abgeschlossen ist, steht der Computer zur Verwendung bereit. Anwendungen können ausgeführt werden, und der Benutzer kann mit dem System interagieren.

Es ist wichtig zu beachten, dass der Booting-Vorgang je nach Betriebssystem und Computer unterschiedlich sein kann. Einige Computer verwenden auch moderne Boot-Technologien wie UEFI anstelle des traditionellen BIOS. Die oben beschriebene Abfolge gibt jedoch eine grundlegende Vorstellung davon, wie der Booting-Vorgang normalerweise abläuft.

77
Q

Was ist der Unterschied zwischen System- und Benutzermodus?

A

Im Systemmodus kann das Betriebssystem auf alle Ressourcen des Computers zugreifen, einschließlich der privilegierten Maschinenbefehle, die nur im Systemmodus ausgeführt werden können. Im Benutzermodus laufen hingegen alle Anwendungsprogramme, die keinen direkten Zugriff auf die Hardware haben und bestimmte privilegierte Maschinenbefehle nicht ausführen können. Ein Schutzmechanismus sorgt dafür, dass privilegierte Befehle nur im Systemmodus ausgeführt werden können.

Zusammenfassung:

  • Systemmodus: Das Betriebssystem arbeitet im Systemmodus und hat vollen Zugriff auf alle Ressourcen und privilegierten Befehle des Computers. Es kann Systemfunktionen ausführen und die Hardware verwalten.
  • Benutzermodus: Anwendungsprogramme laufen im Benutzermodus, der eingeschränkten Zugriff auf Ressourcen und privilegierte Befehle bietet. Dies dient der Sicherheit, um zu verhindern, dass Anwendungen die Integrität des Systems gefährden.

Der Wechsel zwischen System- und Benutzermodus erfolgt in der Regel durch die CPU, wobei der Schutzmechanismus sicherstellt, dass nur das Betriebssystem in den Systemmodus wechseln und privilegierte Operationen durchführen kann. Anwendungsprogramme laufen standardmäßig im weniger privilegierten Benutzermodus, um die Stabilität und Sicherheit des Betriebssystems zu gewährleisten.

78
Q

Wazu ist es gut, dass es die zwei Modi gibt?

A

Die beiden Modi dienen dazu, den Zugriff auf die Ressourcen des Computers zu kontrollieren und zu schützen.

  • Benutzermodus: Anwendungsprogramme laufen im Benutzermodus, wodurch ihre Fähigkeit eingeschränkt wird, direkt auf Hardware und kritische Systemressourcen zuzugreifen. Dies bietet mehr Sicherheit, da Anwendungen keine unbeabsichtigten oder schädlichen Operationen durchführen können, die das System gefährden könnten. Dies verhindert auch, dass fehlerhafte Anwendungen das gesamte System abstürzen lassen.
  • Systemmodus: Das Betriebssystem arbeitet im Systemmodus, was ihm erlaubt, auf alle Ressourcen des Systems zuzugreifen. Dadurch kann das Betriebssystem Hardware-Ressourcen verwalten, Prozesse steuern, Speicherverwaltung durchführen und andere wichtige Systemaufgaben erledigen. Der Systemmodus gewährleistet, dass das Betriebssystem die Kontrolle über das System hat und die Systemintegrität aufrechterhalten kann.

Die Trennung in Benutzer- und Systemmodus ermöglicht die Sicherheit und Stabilität des Betriebssystems, da es verhindert, dass normale Anwendungsprogramme versehentlich oder absichtlich auf kritische Systemfunktionen zugreifen können. Dies hilft auch, die Möglichkeit von Fehlern und Abstürzen zu minimieren, die das gesamte System beeinträchtigen könnten.

79
Q

Wann findet die Umschaltung der Modi statt?

A

Die Umschaltung zwischen Benutzer- und Systemmodus findet statt, wenn bestimmte privilegierte Maschinenbefehle ausgeführt werden müssen, die nur im Systemmodus erlaubt sind. Dies kann in verschiedenen Situationen passieren:

  • Systemaufrufe: Wenn ein Benutzerprogramm auf Systemressourcen zugreifen muss, die normalerweise im Systemmodus verfügbar sind (z. B. Festplattenzugriffe), löst es einen Systemaufruf aus. Dies führt zur Umschaltung in den Systemmodus, damit das Betriebssystem den Aufruf verarbeiten kann.
  • Unterbrechungen: Bei Auftreten einer Unterbrechung, wie einer Hardware-Unterbrechung oder einem Software-Fehler, wechselt der Prozessor in den Systemmodus, um die entsprechende Unterbrechungsroutine im Betriebssystem auszuführen.
  • Fehler und Ausnahmen: Wenn ein Fehler oder eine Ausnahme während der Ausführung eines Programms auftritt, wie zum Beispiel ein ungültiger Befehl oder eine Division durch Null, schaltet der Prozessor in den Systemmodus, um die Fehlerbehandlung durch das Betriebssystem durchzuführen.

Die Umschaltung zwischen den Modi erfolgt automatisch durch den Prozessor, wenn eine Situation eintritt, die den Moduswechsel erfordert. Dies gewährleistet, dass nur privilegierte Aufgaben im Systemmodus ausgeführt werden können, während normale Anwendungsprogramme im Benutzermodus sicher isoliert sind.

80
Q

Welche Beziehung hat eine Unterbrechung mit einem Moduswechsel?

A
  • Eine Unterbrechung führt zum Wechsel des Prozessors in den Systemmodus.
  • Die entsprechende Unterbrechungsroutine im Kernel des Betriebssystems wird aufgerufen.
  • Die Unterbrechung ermöglicht das Aufrufen und Aktivieren des Betriebssystems.
  • Nach Beendigung der Unterbrechungsroutine wird der Prozessor in den Benutzermodus zurückgeschaltet.
81
Q

Wie wird der Schutz eines Adressraums eines Prozesses realisiert (Zusammenhängender und nicht zusammenhängender Adressraum )?

A
  • Schutz des Adressraums durch Basis- und Grenzregister.
  • Basisregister enthält die niedrigste Adresse, Grenzregister die Länge des Adressraums.
  • Änderung dieser Register nur mit privilegierten Maschinenbefehlen möglich.
  • Zusammenhängender Adressraum: Basis- und Grenzregister legen Adressraum fest.
  • Prozess kann nur auf Adressen im eigenen Adressraum zugreifen.
  • Nicht zusammenhängender Adressraum: Verwendung einer Seiten-Tabelle.
  • Seiten-Tabelle verknüpft virtuelle und physische Adressen.
  • Jeder Prozess hat eigene Zuordnung und kann nur auf eigenen Adressraum zugreifen.
82
Q

Was ist eine relative Adresse?

A
  • Eine relative Adresse bezieht sich auf eine andere Adresse.
  • In (Seite ), verwendet im Programm, um auf Speicher zuzugreifen.
  • Relativ zur Anfangsadresse des Programmstücks angegeben.
  • Müssen in absolute Adressen umgerechnet werden, um auf tatsächliche Speicheradressen zuzugreifen.
83
Q

Welche Vorteile haben relative Adressen?

A
  • Unabhängig von der tatsächlichen Speicheradresse des Programms.
  • Programme können im Speicher verschoben werden, ohne Adressen anzupassen.
  • Platzsparend, da relative Abstände statt absoluter Adressen verwendet werden können.
  • Reduziert den Speicherbedarf im Programm.
84
Q

Was ist eine absolute Adresse?

A
  • Eindeutige und feste Speicheradresse im Hauptspeicher.
  • Wird verwendet, um auf Befehle und Daten im Speicher zuzugreifen.
  • Unveränderlich und muss bei der Programmausführung verwendet werden.
85
Q

Welche Adresse kennen Prozesse?

A
  • Prozesse kennen relative Adressen.
  • Relative Adressen sind relativ zu ihrer eigenen virtuellen Speicheradresse.
  • Werden im Programm verwendet, um auf Befehle und Daten im Hauptspeicher zuzugreifen.
  • Müssen bei der Programmausführung in absolute Adressen umgerechnet werden, um auf die tatsächlichen Speicheradressen zugreifen zu können.
86
Q

Was ist ein Prozess?

A
  • Ein Prozess ist ein laufendes Programm auf einem Computer.
  • Besteht aus einem oder mehreren Threads.
  • Nutzt Ressourcen wie CPU-Zeit, Speicher und Ein-/Ausgabe-Geräte.
  • Wird durch einen Prozesskontrollblock (PCB) beschrieben.
  • PCB enthält Informationen wie Zustand, Registerinhalte, Prozessnummer, Priorität und mehr.
  • Ein Prozess kann erzeugt und beendet werden, und er kann zwischen verschiedenen Zuständen wechseln, z.B. bereit, blockiert oder laufend.
87
Q

Was ist der Unterschied zwischen Programm und Prozess?

A
  • Ein Programm ist eine Sammlung von Anweisungen in einer Programmiersprache.
  • Ein Prozess ist eine laufende Instanz eines Programms auf einem Computer.
  • Ein Prozess nutzt Ressourcen wie CPU-Zeit, Speicher und Ein-/Ausgabe-Geräte.
  • Ein Prozess wird durch einen Prozesskontrollblock (PCB) beschrieben.
  • Der PCB enthält Zustandsinformationen, Registerinhalte, Prozessnummer, Priorität und mehr.
  • Ein Programm kann mehrere Prozesse haben, die gleichzeitig auf einem Computer ausgeführt werden können.
88
Q

Was gehört zu einem Prozess?

A
  • Programm: Die Anweisungen in einer Programmiersprache, die ausgeführt werden.
  • Prozesskontext: Enthält wichtige Informationen wie Registerinhalte, Befehlszähler, Adressraumgrenzen, Prozessnummer, Priorität, Modus und Zustand.
  • Prozesskontrollblock (PCB): Speichert den Prozesskontext und weitere Informationen.
  • Betriebssystem-Speicherbereich: Hier steht der PCB und ist vor dem Zugriff durch Anwendungsprogramme geschützt.
89
Q

Welche Informationen sind wichtig für einen Prozess?

A
  • Zustand des Prozesses: Zeigt an, ob der Prozess gerade bereit, blockiert, laufend oder beendet ist.
  • Registerinhalte: Enthalten Werte der Prozessorregister, die den aktuellen Zustand des Prozesses festhalten.
  • Prozessnummer: Ein eindeutiger Identifikator für den Prozess im System.
  • Priorität: Gibt die Dringlichkeit an, mit der der Prozess vom Scheduler behandelt wird.
  • Modus: Gibt an, ob der Prozess im Systemmodus oder im Benutzermodus ausgeführt wird.
  • Adressraumgrenzen: Definieren den Bereich des Speichers, auf den der Prozess zugreifen kann.
  • Programm: Die Anweisungen in einer Programmiersprache, die der Prozess ausführt.
90
Q

Wo werden diese Informationen gespeichert (Prozesskontrollblock)?

A

Die Informationen über einen Prozess werden im Prozesskontrollblock (PCB) gespeichert:
- Der PCB befindet sich im Speicherbereich des Betriebssystems.
- Der PCB ist vor dem Zugriff durch Anwendungsprogramme geschützt.

91
Q

Welche Zustände hat ein Prozess?

A

Ein Prozess kann zwischen drei Zuständen wechseln:
- Rechnend: Der Prozess wird gerade von der CPU ausgeführt.
- Blockiert: Der Prozess wartet auf eine Ein-/Ausgabe oder ein bestimmtes Ereignis.
- Bereit: Der Prozess ist bereit, auf die CPU zuzugreifen, wartet jedoch noch auf seine Ausführung.

92
Q

Was ist die Ursache, dass ein Prozess den Zustand wechselt?

A

Ein Prozess kann den Zustand wechseln aufgrund folgender Ursachen:
- Ein-/Ausgabe oder Ereignis: Ein Prozess wechselt in den Zustand “blockiert”, während er auf eine Ein-/Ausgabe oder ein bestimmtes Ereignis wartet.
- Ereignis tritt ein: Wenn das erwartete Ereignis eintritt oder die Ein-/Ausgabe abgeschlossen ist, wechselt der Prozess in den Zustand “bereit”.
- CPU-Zugriff: Wenn der Prozess die CPU erhält, wechselt er in den Zustand “rechnend”.
- CPU-Freigabe: Nachdem der Prozess die CPU freigibt, wechselt er in den Zustand “bereit”.
- Unterbrechung durch anderen Prozess: Wenn ein anderer Prozess den aktuellen Prozess unterbricht, wechselt dieser in den Zustand “bereit”.

93
Q

Bei einem Einprozessorsystem läuft zu jedem Zeitpunkt genau ein Prozess.
Warum laufen die Prozesse trotzdem scheinbar parallel?

A
  • Obwohl nur ein Prozess gleichzeitig auf einem Einprozessorsystem läuft, erscheinen die Prozesse scheinbar parallel.
  • Das Betriebssystem teilt die CPU-Zeit zwischen den Prozessen auf.
  • Durch die “Zeitscheibenplanung” wechselt das Betriebssystem zwischen den Prozessen hin und her.
  • Jeder Prozess bekommt eine begrenzte Zeit auf der CPU zugewiesen.
  • Dadurch können mehrere Prozesse nacheinander ausgeführt werden.
  • Der Eindruck von Parallelität entsteht, da die Prozesse schnell wechseln.
94
Q

Was macht der Scheduler?

A
  • Der Scheduler ist Teil des Betriebssystems.
  • Er definiert die Ausführungsreihenfolge der bereiten Prozesse im nächsten Zeitabschnitt.
  • Der Scheduler entscheidet, welcher Prozess als nächstes rechnen darf.
  • Er kann verschiedene Scheduling-Strategien verwenden, z.B. Priorität oder Zeitscheibenlänge.
  • Der Dispatcher führt den Prozesswechsel gemäß den Entscheidungen des Schedulers aus.
95
Q

Wer entscheidet, welcher Prozess vom Zustand bereit in den Zustand rechnend geht?

A
  • Der Scheduler entscheidet, welcher Prozess vom Zustand “bereit” in den Zustand “rechnend” wechselt.
  • Die Auswahl hängt von der angewendeten Scheduling-Strategie ab.
  • Der Scheduler bestimmt, welcher bereite Prozess als nächstes auf die CPU zugreifen darf.
96
Q

Warum geht ein Prozess vom Zustand rechnend in den Zustand bereit?

A
  • Ein Prozess wechselt vom Zustand “rechnend” in den Zustand “bereit”, um die CPU-Zeit abzugeben.
  • In einem Einprozessorsystem kann nur ein Prozess gleichzeitig auf der CPU laufen.
  • Wenn ein Prozess seine zugewiesene CPU-Zeit aufgebraucht hat oder auf ein Ereignis wartet, geht er in den Zustand “bereit”.
  • Der Scheduler entscheidet, welcher bereite Prozess als nächstes ausgeführt wird und die CPU erhält.
97
Q

Welche zwei Möglichkeiten gibt es, dass ein Prozess vom Zustand rechnend in den Zustand bereit geht?

A
  • Der Prozess gibt die CPU freiwillig ab, weil seine zugewiesene CPU-Zeit aufgebraucht ist oder er auf ein Ereignis wartet, das noch nicht eingetreten ist.
  • Der Prozess wird durch eine Unterbrechung (z.B. Systemaufruf) in den Zustand “blockiert” versetzt und wartet auf ein Ereignis. Nachdem das Ereignis eingetreten ist, wird der Prozess in den Zustand “bereit” versetzt.
98
Q

Warum geht ein Prozess nicht vom Zustand blockiert in den Zustand rechnend?

A

Ein Prozess geht nicht direkt vom Zustand “blockiert” in den Zustand “rechnend”, weil er auf ein bestimmtes Ereignis warten muss, bevor er weiterarbeiten kann. Wenn das Ereignis eintritt, wird der Prozess in den Zustand “bereit” versetzt und kann von der CPU ausgewählt werden. Der Scheduler entscheidet dann, welcher der bereiten Prozesse als nächster rechnen darf, und weist ihm die CPU zu.

99
Q

Was kann die Konsequenz sein, wenn das so wäre?

A
  • Wenn ein Prozess direkt vom Zustand “blockiert” in den Zustand “rechnend” wechseln würde, ohne auf das Ereignis zu warten, auf das er blockiert wurde, könnte dies zu inkonsistenten Ergebnissen führen oder sogar das System zum Absturz bringen.
  • Ein solcher Wechsel könnte dazu führen, dass Prozesse auf nicht korrekt initialisierte Daten zugreifen oder sich gegenseitig behindern.
  • Die Wartung auf das erwartete Ereignis ist wichtig, um die Integrität und Stabilität des Systems zu gewährleisten.
100
Q

Welche Scheduling-Algorithmen gibt es?

A
  • Round Robin: Jeder Prozess im Zustand “bereit” bekommt eine Zeitscheibe (time slice) derselben Länge an Rechenzeit zugewiesen, und die Prozesse werden reihum bedient.
  • Prioritätsbasiertes Scheduling: Der Scheduler weist den Prozessen eine Priorität zu und vergibt die CPU-Zeit an den Prozess mit der höchsten Priorität.
  • Shortest Job First: Der Scheduler wählt den Prozess mit der kürzesten verbleibenden Rechenzeit aus und gibt ihm die CPU-Zeit.

Bitte beachten Sie, dass im Text erwähnt wird, dass es auch andere Scheduling-Algorithmen gibt, die jedoch nicht näher erläutert werden.

101
Q

Wie funktioniert die SJF-Strategie?

A

Die SJF-Strategie (Shortest Job First) funktioniert wie folgt:

  • Die Strategie wählt den Prozess mit der kürzesten verbleibenden Rechenzeit aus.
  • Wenn ein neuer Prozess in den Zustand “bereit” wechselt, wird geprüft, ob er eine kürzere verbleibende Rechenzeit hat als der aktuell laufende Prozess.
  • Wenn der neue Prozess eine kürzere Rechenzeit hat, wird der aktuell laufende Prozess unterbrochen und der neue Prozess bekommt die CPU-Zeit.
  • Diese Strategie zielt darauf ab, die Wartezeit für Prozesse zu minimieren, indem sie die kürzesten Jobs zuerst ausführt.
102
Q

Welche theoretische Eigenschaft hat die SJF-Strategie?

A

Die SJF-Strategie (Shortest Job First) hat die theoretische Eigenschaft, die Gesamtwartezeit aller Prozesse zu minimieren, wenn die benötigte Rechenzeit bis zur nächsten Unterbrechung gut vorhersagbar ist. Dies wurde in Übungsaufgabe 1.15 auf Seite 215 des Textes beschrieben. Die Wartezeit eines Prozesses ist die Zeit, in der sich der Prozess im Zustand “bereit” befindet.

103
Q

Für welchen Betrieb ist die SJF-Strategie geeignet?
Warum?

A

Die SJF-Strategie eignet sich besonders gut für den Stapel- oder Batch-Betrieb, bei dem:

  • Der Rechner einen ganzen Schub von Aufträgen erhält.
  • Die Aufträge keine Interaktion mit dem Benutzer erfordern.
  • Die Laufzeiten der Aufträge regelmäßig und gut vorhersagbar sind.
104
Q

Welche Strategie benutzt man für einen Time-Sharing-Betrieb?

A

Für einen Time-Sharing-Betrieb wird meistens die Round Robin-Strategie verwendet, bei der:

  • Jeder Prozess im Zustand “bereit” eine Zeitscheibe (time slice) an Rechenzeit zugewiesen bekommt.
  • Die Prozesse im Zustand “bereit” reihum bedient werden.
105
Q

Wer macht der Prozesswechsel?

A
  • Der Prozesswechsel wird vom Dispatcher durchgeführt.
  • Der Scheduler legt die Strategie für die Rechenzeitvergabe fest.
  • Der Dispatcher führt die eigentlichen Kontextwechsel zwischen den Prozessen durch.
106
Q

Wie wird ein Prozess gestoppt, weiter zu rechnen?

A

Verstanden, hier sind die Antworten im Bulletpoint-Stil:

  • Ein Prozess kann gestoppt werden, indem er durch einen Systemaufruf mitteilt, dass er auf ein bestimmtes Ereignis warten will.
  • Der Prozess wird dann blockiert und kommt in eine spezielle Warteschlange.
  • In dieser Warteschlange können möglicherweise andere blockierte Prozesse stehen, die auf dasselbe Ereignis warten.
  • Wenn das Ereignis eintritt, kann der Prozess, der das Ereignis auslöst, ein Signal abschicken.
  • Dieses Signal bewirkt, dass alle Prozesse aus der Warteschlange wieder in den Zustand “bereit” versetzt werden.
107
Q

Welche Hardware wird hier eingesetzt (Timer=Zeitgeber)?

A
  • Ein eigener Chip im Rechner, der an den Takt der CPU angeschlossen ist.
  • Dieser Chip wird als Zeitgeber (Timer) bezeichnet.
  • Der Timer überwacht, dass der Prozess sein Zeitquantum nicht überschreitet.
108
Q

Warum braucht das Betriebssystem einen Timer?

A
  • Gewährleistung fairer Verteilung der CPU-Zeit für alle Prozesse.
  • Begrenzung der Ausführungszeit jedes Prozesses.
  • Unterbrechung und Wechsel zwischen Prozessen nach Ablauf der Zeitscheibe.
  • Messung der zugewiesenen Zeitscheibe für jeden Prozess.
109
Q

Welche Aufgaben hat der Dispatcher?

A
  • Durchführung des Prozesswechsels.
  • Speichern des aktuellen Zustands des laufenden Prozesses.
  • Auswahl des nächsten Prozesses, der ausgeführt werden soll.
  • Wiederherstellung des Zustands des ausgewählten Prozesses.
  • Gewährleistung schneller und effizienter Kontextwechsel.
110
Q

Was macht genau der Dispatcher?

A
  • Speichert den aktuellen Zustand des laufenden Prozesses.
  • Wählt den nächsten Prozess aus, der auf der CPU ausgeführt werden soll.
  • Stellt den Zustand des ausgewählten Prozesses wieder her.
  • Führt den eigentlichen Prozesswechsel durch.
111
Q

Beschreiben Sie den Vorgang eines Prozesswechsels. (Stichwörter: Timer, Unterbrechung, Unterbrechungsvektor, Unterbrechungsroutine, Dispatcher, Rettung von Register, Scheduler, Wiederherstellung, Return from interrupt)

A
  • Timer läuft ab und löst eine CPU-Unterbrechung aus.
  • Unterbrechungsvektor wird verwendet, um die Adresse der Unterbrechungsroutine zu finden.
  • Unterbrechungsroutine speichert den aktuellen Prozesszustand auf dem Stack.
  • Dispatcher wird aufgerufen, um nächsten Prozess auszuwählen.
  • Dispatcher stellt den Zustand des nächsten Prozesses wieder her.
  • Registerwerte werden vom Stack wiederhergestellt.
  • Prozesswechsel wird mit “Return from Interrupt” abgeschlossen.
  • Ausführung des neuen Prozesses wird fortgesetzt.
112
Q

Wie groß sollte man eine Zeitscheibe z.B. bei Round Robin wählen?

A
  • Die optimale Zeitscheibenlänge hängt von verschiedenen Faktoren ab.
  • Eine zu kurze Zeitscheibe erhöht den Kontextwechselaufwand.
  • Eine zu lange Zeitscheibe kann die Reaktionszeit interaktiver Prozesse beeinträchtigen.
  • Die Wahl der Zeitscheibenlänge erfordert eine Balance zwischen diesen Faktoren.
  • Die tatsächliche Zeitscheibenlänge kann je nach System und Anwendung variieren.
113
Q

Was ist das Problem mit zu großer oder zu kleiner Zeitscheibe?

A

Natürlich, hier ist die Antwort in der vereinbarten Bulletpoint-Struktur:

  • Zu kleine Zeitscheibe:
    • Erhöhter Kontextwechselaufwand.
    • Möglicher Overhead beeinträchtigt CPU-Leistung.
  • Zu große Zeitscheibe:
    • Beeinträchtigung der Reaktionszeit interaktiver Prozesse.
    • Schlechte Benutzererfahrung durch langsame Reaktion.
  • Wichtigkeit einer angemessenen Balance zwischen beiden Faktoren.
  • Ziel: Effiziente CPU-Nutzung und gute Benutzererfahrung.
114
Q

Wie wird der Zugriff auf ein Gerät im Time-Sharing-Betrieb vom Betriebssystem organisiert?

A
  • Gerätezugriff im Time-Sharing-Betrieb:
    • Separate Gerätewarteschlange für jedes Speichergerät.
    • Betriebssystem-Ein-/Ausgabeteil fügt Aufträge hinzu.
    • Jeder Auftrag enthält Prozessnummer.
  • Gerätetreiber:
    • Holt Aufträge aus der Warteschlange.
    • Führt Aufträge dem Controller zu.
    • Kann Aufträge geschickt wählen, um Zugriffszeit zu minimieren.
  • Flexibilität bei der Auftragsbearbeitung.
115
Q

Wie funktioniert es mit dem Drucken?

A
  • Druckprozess im Time-Sharing-Betrieb:
    • Mehrere Prozesse schicken Ausgabe zum Drucker.
    • Gegenseitige Unterbrechungen können Durcheinander verursachen.
  • Lösung: Spooler-Datei
    • Ausgaben nach Prozessen getrennt sammeln.
    • Druckausgabe wird erst nach Abschluss des Prozesses gedruckt.
  • Vermeidung von Durcheinander auf dem Papier.
116
Q

Was macht ein Programm, wenn es einen Block auf der Festplatte lesen möchte?

A
  • Lesevorgang für einen Block auf der Festplatte:
    • Programm möchte Block lesen, Daten sind nicht im Cache.
    • Prozess wird blockiert.
    • Leseauftrag an die Gerätewarteschlange des Plattenlaufwerks.
  • Aufgaben des Gerätetreibers:
    • Reserviert Speicherplatz für die zu lesenden Daten im Betriebssystembereich.
    • Ermittelt gerätespezifische Datenblockadresse.
    • Überträgt Lesebefehl an den Gerätecontroller.
  • Ablauf:
    • Treiber kann andere Aufgaben ausführen.
    • Wird informiert, wenn Lesebefehl ausgeführt ist.
117
Q

Wie wird eine read-Operation ausgeführt (Am besten zeichnet man die Schichten des virtuellen Geräts, dann merkt man leicht die Schritte und die Aufgaben der einzelnen Schichten)?

A

Natürlich, hier ist die beschriebene Abfolge der Schritte in den verschiedenen Schichten des virtuellen Geräts:

  1. Oberste Schicht (Software):
    • Programm führt read-Operation aus.
    • Leseauftrag wird an die Gerätewarteschlange des Plattenlaufwerks gehängt.
  2. Mittlere Schicht (Elektronische Hardware):
    • Gerätetreiberprozess im Betriebssystembereich:
      • Reserviert Speicherplatz für zu lesende Daten.
      • Ermittelt gerätespezifische Datenblockadresse.
      • Überträgt Lesebefehl an den Gerätecontroller.
  3. Unterste Schicht (Mechanische Hardware):
    • Gerätecontroller:
      • Empfängt Lesebefehl.
      • Aktiviert Plattenlaufwerk, um den gewünschten Datenblock zu lesen.
  4. Rückmeldung an die mittlere Schicht:
    • Gerätecontroller informiert den Treiber, wenn Lesebefehl ausgeführt ist.
  5. Mittlere Schicht:
    • Gerätetreiberprozess:
      • Wird benachrichtigt, dass Lesebefehl ausgeführt wurde.
  6. Oberste Schicht:
    • Programm erhält die Daten aus dem Betriebssystembereich.

Die Schichten des virtuellen Geräts arbeiten zusammen, um die read-Operation auszuführen und die Daten vom Plattenlaufwerk zum Programm zu übertragen.

118
Q

Wir nehmen an, dass ein Programm einen read(f,b)-Befehl bei dem Datensatz b von der Datei f ausführt, Wie kann dieser Lese-Befehl beim Gerätetreiber und Controller aussehen?

A

Lese-Befehl im Gerätetreiber:
- Der Gerätetreiber erhält den read(f,b)-Befehl.
- Der Treiber ermittelt die Adresse des gewünschten Datenblocks “b” in der Datei “f”.
- Der Treiber reserviert im Betriebssystembereich Speicherplatz für die zu lesenden Daten.

Lese-Befehl an den Gerätecontroller:
- Der Gerätetreiber überträgt einen Befehl an den Gerätecontroller, um den Lesevorgang zu initiieren.
- Der Befehl enthält Informationen wie:
- Die Adresse des Datenblocks auf der Festplatte.
- Die Anzahl der zu lesenden Bytes.
- Der Speicherbereich, in den die gelesenen Daten geschrieben werden sollen.

Controller-Aktionen:
- Der Gerätecontroller empfängt den Lesebefehl.
- Der Controller bewegt den Lese-Schreibkopf der Festplatte zur Adresse des angeforderten Datenblocks.
- Die Festplatte liest die angeforderten Daten und überträgt sie an den Controller.

Die genauen Befehle und Abläufe können je nach der spezifischen Hardware-Implementierung variieren, aber im Allgemeinen folgen sie diesem Grundmuster.

119
Q

Wie sieht die Struktur des Betriebssystems UNIX aus?

A

Struktur des Betriebssystems UNIX:
- Der Kern (Kernel) des Betriebssystems bildet den zentralen Teil und ist hellgrau dargestellt. Er enthält:
- Geräteunabhängige Teile für blockweise Ein- und Ausgabe, für Platten- und Bandgeräte, sowie zeichenweise Ein- und Ausgabe für Modems und Terminals.
- Hauptspeicherverwaltung.
- CPU-Scheduler, der die Rechenzeitvergabe an Prozesse steuert.
- Gerätetreiber, die die Kommunikation mit den Hardwarekomponenten ermöglichen (in UNIX und Linux).
- Weitere Komponenten und Schichten:
- Dateisystem: Verwaltung von Dateien und Verzeichnissen.
- Interpreter: Ausführung von Skripten und Skriptsprachen.
- Systembibliotheken: Sammlung von Programmfunktionen für die Entwicklung von Anwendungen.
- Programmierschnittstellen (Systemaufrufe): Schnittstelle zwischen Anwendungen und dem Betriebssystem.
- Benutzerschnittstellen (Systemprogramme): Programme für die Interaktion mit dem Betriebssystem.
- Kommandointerpreter (Shell): Benutzerschnittstelle für die Eingabe von Kommandos.
- Compiler: Übersetzung von Quellcode in ausführbare Programme.

Die Struktur ermöglicht die effiziente Aufteilung und Organisation der verschiedenen Aufgaben und Komponenten im Betriebssystem UNIX.

120
Q

Was bieten die Programmierschnittstelle und Benutzerschnittstelle an?

A

Die Programmierschnittstelle und Benutzerschnittstelle bieten folgende Funktionen:

Programmierschnittstelle:
- Kommunikation zwischen Anwendungsprogrammen und dem Betriebssystem.
- Gesamtheit aller Systemaufrufe, die von Anwendungsprogrammen verwendet werden können.
- Ermöglicht die Nutzung von Betriebssystemfunktionen durch Anwendungsprogramme.

Benutzerschnittstelle:
- Kommunikation zwischen Benutzern und dem Betriebssystem.
- Systemprogramme wie Shell, Compiler und Editor sind Teil der Benutzerschnittstelle.
- Bietet Benutzern die Möglichkeit, mit dem Betriebssystem zu interagieren und Aufgaben auszuführen.
- Kann verschiedene Formen annehmen, von textbasierten Konsolen bis hin zu modernen grafischen Benutzungsoberflächen.

Die Benutzerschnittstelle ist besonders wichtig, da sie die Art und Weise beeinflusst, wie Benutzer mit dem Betriebssystem und den Anwendungen interagieren. Eine gut gestaltete Benutzerschnittstelle trägt zu einer angenehmen und effizienten Nutzung des Systems bei. Moderne Benutzungsschnittstellen können grafische Elemente wie Fenster, Menüs und Maussteuerung verwenden, um die Bedienung intuitiver zu gestalten.

121
Q

Welche Hardware-Unterstützungen für den Schutz von Betriebssystemen gibt es?

A

Genau, moderne Prozessoren bieten verschiedene Hardware-Unterstützungen, um den Schutz von Betriebssystemen zu gewährleisten. Dazu gehören:

  • Speicherschutz: Virtueller Speicher ermöglicht die Isolierung von Speicherbereichen für verschiedene Prozesse, wodurch die Integrität und Sicherheit der Daten gewährleistet wird.
  • Zugriffskontrolle: Prozessoren bieten Zugriffsrechte und -mechanismen, um den Zugriff auf bestimmte Speicherbereiche oder Geräte zu kontrollieren und unautorisierte Zugriffe zu verhindern.
  • Interrupt-Handling: Interrupts ermöglichen es dem Betriebssystem, auf Hardware-Ereignisse wie Eingabeaufforderungen oder Fehlermeldungen sofort zu reagieren, was die Effizienz und Reaktionsfähigkeit des Systems verbessert.
  • Virtualisierung: Hardware-Unterstützung für Virtualisierung erlaubt die gleichzeitige Ausführung mehrerer virtueller Maschinen auf einem physischen Host, wobei jede VM isoliert ist und ihr eigenes Betriebssystem ausführen kann.
  • Trusted Execution Environments (TEE): Moderne Prozessoren bieten TEEs, die geschützte Bereiche für vertrauliche Aufgaben bereitstellen, die von anderen Softwarekomponenten isoliert sind.
  • Hardware-Speicherverschlüsselung: Einige Prozessoren bieten Hardware-Unterstützung für die Verschlüsselung von Speicherinhalten, um den Schutz von sensiblen Daten zu erhöhen.

Diese Hardware-Unterstützungen sind essentiell, um die Sicherheit, Stabilität und Isolierung von Betriebssystemen und ihren Prozessen zu gewährleisten.

122
Q

Erklären Sie die Zustände und die Übergänge eines Prozesses

A

Genau, die Zustände und Übergänge eines Prozesses sind grundlegende Konzepte in einem Betriebssystem:

Zustände eines Prozesses:
1. Bereit: Der Prozess ist bereit, ausgeführt zu werden, wartet jedoch darauf, der CPU zugewiesen zu werden.
2. Laufend: Der Prozess wird gerade von der CPU ausgeführt.
3. Blockiert: Der Prozess wartet auf eine bestimmte Ressource oder ein Ereignis, um fortzufahren. Er ist vorübergehend nicht aktiv.

Übergänge zwischen den Zuständen:
Die Übergänge erfolgen durch Ereignisse, die den Prozesszustand ändern:
1. Unterbrechung: Ein Prozess wird von der CPU unterbrochen, um einem anderen Prozess die Ausführung zu ermöglichen.
2. Anforderung von Ressourcen: Ein Prozess fordert eine Ressource an, die von einem anderen Prozess verwendet wird, und wechselt daher in den blockierten Zustand.
3. Verfügbarkeit von Ressourcen: Ein blockierter Prozess wechselt in den bereiten Zustand, sobald die angeforderte Ressource verfügbar ist.
4. Eingabe von Benutzerbefehlen: Ein neuer Prozess wird erstellt und in den bereiten Zustand versetzt, wenn der Benutzer eine Eingabeaufforderung eingibt.

Das Betriebssystem ist für die Verwaltung dieser Zustände und Übergänge verantwortlich. Es plant die Ausführung der Prozesse, entscheidet über den Zustandswechsel und stellt sicher, dass die Ressourcen gerecht verteilt werden, um eine effiziente und sichere Ausführung der Prozesse zu gewährleisten.