Betriebssysteme2 Flashcards

1
Q

Was ist ein Betriebssystem?

A

Ein Betriebssystem ist eine Software die:
Prozesse, Speicher, Dateien, Geräte und Benutzeroberflächen verwaltet
und steuert.

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

Wie wird auch Systemsoftware genannt?

A

Einheiten oder Bausteine

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

Wie sehen die Benutzungsrelationen von Benutzer und der Hardware aus?

A

Benutzer –> Benutzerprogramm –> Betriebssystem –> Maschinenhardware

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

Was ist langsamer: Speicherzugriffe oder Registerzugriffe?

A

Speicherzugriffe sind langsamer, da sie einen viel weiteren Weg einlegen müssen als Registerzugriffe.

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

Was ist ein Speicherzugriff?

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

Was ist ein Register?

A

Ein Register ist ein kleines, sehr schnelles Speicherelement im Prozessor eines Computers. Register dienen zur temporären Speicherung von Daten und Instruktionen, die für die laufenden Berechnungen und Operationen des Prozessors benötigt werden

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

Was sind die Funktionen von Registern?

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

Was ist ein Registerzugriff?

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

Was ist eine Instruktion?

A

Instruktionen sind Anweisungen für den Prozessor und werden nacheinander vom Rechenwerk ausgeführt

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

Was ist ein Rechenwerk?

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

Erkläre arithmetische und logische Operationen

A

arithmetisch: Addition, Subtraktion, Multiplikation, …
logisch: UND, ODER, …

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

Wo arbeitet primär das Rechenwerk?

A

Auf Registern

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

Nenne spezielle Register

A

Programmzähler: Speichert die Adresse der nächsten auszuführenden Instruktion
Prozessorstatuswort oder auch Statusregister: Beherbergt Verschiedene Markierungsbits (Flags)

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

Nenne die verschiedenen Bedingungsbits für bedingte Sprünge (Flags)

A

Zero flag
Sign flag
Carry flag
Overflow flag

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

Was macht Zero Flag?

A

Zero flag: Ergebnis der letzten arithmetischen oder logischen Operation war Null

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

Was macht Sign Flag?

A

Sign flag: Ergebnis der letzten arithmetischen oder logischen Operation war kleiner als Null

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

Was macht Carry Flag?

A

Carry flag: Bei der letzten arithmetischen Operation trat ein Übertrag auf

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

Was macht Overflow Flag?

A

Overflow flag: Bei der letzten arithmetischen Operation trat ein Überlauf auf

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

Was sind Argumente in Methoden?

A

Parameter void Funktion1(int a) {

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

Was ist ein Call Stack?

A

Ein Call Stack ist ein spezieller Speicherbereich, der von einem Programm zur Verwaltung der Funktionsaufrufe und deren Rückgabeadressen verwendet wird.

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

Wieso benötigt man einen Call Stack?

A

Der Call Stack ermöglicht es dem Programm, die Rückgabeadresse für jede Funktion zu speichern, sodass nach Abschluss einer Funktion die Ausführung an die richtige Stelle zurückkehrt.

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

Wie sieht ein Call Stack aus (Code)?

A

void functionA() {
functionB();
}
void functionB() {
// Some operations
}
int main() {
functionA();
return 0;
}

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

Was sind Globale Variablen und für was benötigt man diese?

A

Globale Variablen werden in separatem Datenbereich gespeichert um überall verwendet zu werden.

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

Was ist ein Heap

A

Der Heap ist ein Bereich des Speichers, der zur Laufzeit für dynamische Speicheranforderungen genutzt wird. Wenn die Anzahl und Größe der zur Laufzeit erzeugten Daten zur Kompilierzeit unbekannt sind, wird ein separater Speicherbereich namens Heap verwendet, um dynamisch Speicher allozieren und freigeben zu können.

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

Wie sieht ein Heap aus (Code)?

A

public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int n = s.nextInt(), a[] = new int[n];
for (int i = 0; i < n; i++) a[i] = s.nextInt();
for (int x : a) System.out.print(x + “ “);
}
}

26
Q

Zeichne das Schichtenmodell

A

User1, User2, …
Compiler, Editor, …
Betriebssystemdienste
Hardware

27
Q

Nenne verschiedene Heap Arten

A

malloc, new
free, delete

28
Q

Wie verhindert man das Benutzerprogramme unkontrolliert auf die Hardware zugreifen?

A

User Mode
Kernel Mode

29
Q

Was ist der User Mode

A

User mode: Die meisten Instruktionen des Nutzerprogramms können direkt auf der CPU ausgeführt werden

30
Q

Was ist der Kernel Mode

A

Programme haben vollen Zugriff auf alle Instruktionen

31
Q

Was, wenn Benutzerprogramm, das im user mode läuft, eine Aktion ausführen will, die nur mit privilegierten Instruktionen durchgeführt werden kann?

A

Programm muss das Betriebssystem über Systemaufrufe (system calls) um Hilfe bitten! Betriebssystem überprüft die Anfrage
und führt die Aktion dann für das Benutzerprogramm aus

32
Q

Was sind Call Gates?

A

Mit call gates können Privilegierungsstufe gewechselt werden

33
Q

Wie viele Privilegierungsringe gibt es und was machen die einzelnen Ringe?

A

● Ring 0: kernel mode
● Ring 1: keine privilegierten Instruktionen, eingeschränkte Gerätezugriffe
● Ring 2: keine privilegierten Instruktionen, Gerätezugriffe stärker eingeschränkt
● Ring 3: keine privilegierten Instruktionen, keine Gerätezugriffe: user mode

34
Q

Was ist “MACH”?

A

Der Mach-Betriebssystemkern ist ein Mikrokernel, der nur grundlegende Funktionen wie Inter-Prozess-Kommunikation, Thread-Management und Speicherverwaltung im Kernel implementiert und andere Dienste in den User-Space auslagert, um die Systemstabilität und -sicherheit zu erhöhen.

35
Q

Nenne die Vorteile und Nachteile eines Mikrokerns

A

Vorteile: minimaler Kern, alle Funktionen modularisiert austauschbar,
Programmfehler bringt höchstens den jeweiligen Manager zum Absturz, Speicherbereiche der Manager voneinander isoliert
Nachteile: Kommunikationsdauer zwischen Managern, Höhere Komplexität von Managern durch Kommunikation

36
Q

Für was benötigt man Systemaufrufe?

A

Anforderung von Diensten beim Betriebssystem: Dateioperationen, Prozessmanagement, Speicheranforderungen,
Netzwerkoperationen, …
Kurzum: Alles, was privilegierte Instruktionen oder generell Unterstützung vom Betriebsssytem benötigen würde

37
Q

Wie werden Systemaufrufe durchgeführt?

A
  • Vorbereitung der Parameter durch den aufrufenden Prozess
  • Aufruf der Systemaufruf-Schnittstelle (z.B. durch einen Software-Interrupt)
  • Wechsel in den Kernel-Modus
  • Verarbeitung der Anforderung durch den Kernel
  • Rückkehr in den User-Modus mit Rückgabewert
38
Q

Wie wird kontrolliert in den Kernel Mode gewechselt?

A

x86: Call Gates (kaum genutzt)

Aufruf mittels Traps („Falltüren“): Synchrone, indirekte Methodenaufrufe

39
Q

Was sind “Interrupts”

A

Interrupts unterbrechen die Ausführung des aktuellen Programms durch eine Interrupt Service Routine (ISR)

40
Q

Wie werden Interrupts ausgelöst?

A

● Externe Geräte (Interruptsignale)
● Können durch Flag im Prozessorstatuswort temporär deaktiviert („maskiert“) werden
● Software (Trap-Instruktionen)
● Prozessor (faults), z.B. ungültige Instruktion, Division durch Null, im user mode nicht erlaubte Instruktion, …

41
Q

Was muss zur Behandlung der Interrupts gemacht werden?

A

Zur Behandlung des Interrupts muss der aktuelle Kontext gespeichert und später wiederhergestellt werden!

42
Q

Wie sieht der Ablauf der Behandlung des Interrupts aus?

A
  1. Alle Register (Programmzähler, Status- und sonstige Register) auf den Aufrufstapel (Stack) sichern
  2. Programmzähler und Statusregister gemäß Einträgen im Interruptvektor setzen, sodass als nächstes ISR ausgeführt wird
  3. ISR läuft: kann alle Register nach Belieben verwenden (insbesondere: verändern!)
  4. Alle Register vom Stack wiederherstellen
  5. Ursprünglich ausgeführtes Programm kann wie vor der Unterbrechung weiterarbeiten Alle Register haben denselben Wert wie vorher!
43
Q

Was passiert nach dem Systemaufruf bei einem Interrupt?

A
  1. Im Betriebssystemkern ist kein Fehler aufgetreten
    Benutzerprogramm verlässt den Kern wieder und arbeitet normal weiter (im user mode) ODER
  2. Im Betriebssystemkern ist ein Fehler aufgetreten Fehlermeldung an Benutzerprogramm
    Oder: Abbruch des Programms
44
Q

Was ist GNU Hurd?

A

GNU Hurd ist ein fortschrittlicher Betriebssystemkernel, der Teil des GNU-Projekts ist. Er nutzt einen Mikrokernel-Ansatz, bei dem grundlegende Betriebssystemdienste in User-Space-Servern ausgeführt werden, was Flexibilität und Sicherheit erhöht.

45
Q

Was ist ein Prozess?

A

Ein Prozess umfasst Programmcode sowie alle Verwaltungsinformationen, die zum Ausführen unabhängig von anderem
Programmcode vom Betriebssystem benötigt wird (Prozesskontext).
Er teilt mit anderen Prozessen nichts, nur die global bekannten Betriebsmittel wie Dateisystem, Drucker, etc.
Er kann als Untereinheiten mehrere Threads enthalten.

46
Q

Was sind Threads?

A

Ein Thread umfasst neben dem Programmcode nur die Verwaltungsinformationen des Stacks (Stack Pointer, SP) und des
Programmzählers (Program Counter, PC).
Er teilt den gesamten restlichen Prozesskontext (Speicherbereich, offene Dateien, Pipes, …) mit allen anderen Threads
seines Prozesses.

47
Q

Wann nutzt man Threads, wann Prozesse?

A
48
Q

Was ist Prozess-Scheduling und Dispatching?

A
49
Q

In welchen Zuständen kann sich ein Prozess befinden?

A
50
Q

Welche Probleme kann es geben, wenn ein Betriebssystem nur Prozesse aber keine Threads hat

A
51
Q

Warum Mehrprozessorbetrieb?

A

● Effiziente Nutzung des Systems!
● Mehrprogrammbetrieb: mehrere Teilnehmer und mehrere Aufgaben am Rechner bzw. Server-Betrieb im Netz
● Parallelbetrieb: unterschiedliche CPU vs. I/O-Nutzung parallel auszuführender Programme

52
Q

Woraus bestehen Prozesse?

A

Bild: Prozess: Daten, Programm, Stack +
Prozesskontext: CPU-Register, MMU-Register, Kernel-Stack, Dateiinfo, Zugriffsrechte

53
Q

Welche Prozesszustände gibt es?

A

Bereit, Aktiv, Blockiert (und Standby)

54
Q

Zeichne das Modell der Dispachteraktionen auf (Prozesse)

A
55
Q

Was macht ein Scheduler?

A

Erstellen der „bereit“-Liste

56
Q

Was macht ein Dispatcher

A

schnelle Zuteilung zur CPU

57
Q

Was ist ein Zombie-Prozess?

A
58
Q

Was ist ein Kinder-Prozess?

A

Ein Programm (Job) kann mehrere Prozesse erzeugen und diese nennt man Kinderprozesse.

59
Q

Welche Prozesszustände haben Warteschlangen, welche keine?

A

● Warteschlangen: bereit, blockiert.
● Keine Warteschlangen: alle anderen

60
Q
A