Prozesse & Threads Flashcards

1
Q

Was ist ein Prozess?

A

abstraktes Konzept, das eine laufende Anwendung repräsentiert.

Das Betriebssystem verwaltet die Prozesse und die Resourcen, die sie verwenden.

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

Process Control Block

A

Betriebssystem verwaltet eine Prozesstabelle aller laufenden Prozesse.

Jeder Prozess wird durch einen Process Control Block (PCB) repräsentiert, der Informationen zum Prozess enthält (z.B. Prozess ID, Prozesszustand, Scheduling, Memory)

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

Prozesszustände

A
  • New – der Prozess wurde neu erstellt
  • Ready – der Prozess ist bereit um von der CPU ausgeführt zu werden
  • Running – der Prozess wird von der CPU ausgeführt
  • Waiting – der Prozess wartet auf ein Ereignis (z.B. eine I/O-Operation)
  • Terminated – der Prozess wurde beendet
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Multitasking

A

Betriebssysteme können mehrere Prozesse gleichzeitig verwalten. Ob diese Prozesse auch gleichzeitig ausgeführt werden können, davon ab ob mehrere CPU Kerne vorhanden sind.

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

Nebenläufigkeit vs Parallelität

A

Nebenläufigkeit bedeutet, dass mehrere Tasks über einen längeren Zeitraum hinweg Fortschritte machen. Auch mit nur einem CPU Core ist Nebenläufigkeit möglich, indem Tasks abwechselnd ausgeführt werden.

Parallelität hingegen bedeutet, dass mehrere Tasks tatsächlich gleichzeitig ausgeführt werden. Das ist nur möglich, wenn mehrere CPU Cores zur Verfügung stehen.

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

Context Switch

A
  1. Das OS pausiert die Ausführung des aktuellen Tasks.
  2. Das OS speichert den aktuellen Taskzustand im jeweiligen PCB.
  3. Das OS lädt den Taskzustand des neuen Tasks aus dem PCB.
  4. Das OS setzt die Ausführung des neuen Tasks fort.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wie können neue Prozesse erzeugt werden?

A
  • Systeminitialisierung – der init Prozess wird beim Starten des Systems automatisch erzeugt
  • System Call – ein Prozess kann einen neuen Prozess mittels fork(2) erzeugen
  • Benutzerinteraktion – ein Benutzer startet einen Prozess in der Kommandozeile oder über ein GUI
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

getpid(2) & getppid(2)

A
  • getpid() liefert die PID des aufrufenden Prozesses.
  • getppid() liefert die PID des Elternprozesses.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wann werden Prozesse terminiert?

A
  • am Ende der Ausführung (freiwillig)
  • wenn ein Fehler auftritt (freiwillig)
  • wenn ein Signal empfangen wird (freiwillig)
  • wenn er von einem anderen Prozess terminiert wird (unfreiwillig)
  • wenn ein fataler Fehler („Absturz“) eintritt (unfreiwillig)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

exit(3)

A

beendet den laufenden Prozess und gibt einen Rückgabewert an den Elternprozess zurück. Der Elternprozess kann den Rückgabewert mit wait(2) abfragen.

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

Threads

A

Jeder Prozess besteht aus mindestens einem Thread. Ein Thread ist das grundlegende Konstrukt, das Teile einer
Anwendung zur Ausführung bringt.

  • Jeder Thread hat einen eigenen Stack und einen Ausführungszustand (Program Counter und Registerwerte)
  • Threads laufen im Kontext eines Prozesses und teilen sich dessen Ressourcen (Speicher, Dateien, etc.)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Vorteile von Threads

A
  • erlauben einem Prozess Arbeit zu verrichten, während ein anderer Thread blockiert ist.
  • teilen sich manche Ressourcen eines Prozesses
  • Wechseln zwischen Threads ist mit wesentlich weniger
    Overhead verbunden als das Wechseln zwischen Prozessen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Erkläre den Begriff “Swapping”

A

Mechanismus, bei dem ein Prozess vorübergehend aus dem Hauptspeicher in den Sekundärspeicher (Festplatte) ausgelagert (oder verschoben) wird und damit anderen Prozessen der Hauptspeicher zur Verfügung gestellt werden kann. Zu einem späteren Zeitpunkt lagert das System den Prozess vom sekundären Speicher in den Hauptspeicher zurück.

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

Vor & Nachteile von Swapping

A

Vorteile:

  • Es hilft der CPU, mehrere Prozesse innerhalb eines einzigen Hauptspeichers zu verwalten.
  • Es hilft, virtuellen Speicher zu erstellen und zu verwenden.
  • Durch das Swapping kann die CPU mehrere Aufgaben gleichzeitig ausführen. Daher müssen Prozesse nicht sehr lange warten, bis sie ausgeführt werden.
  • Es verbessert die Hauptspeicherauslastung.

Nachteile:

  • Wenn das Computersystem ausfällt, kann der Benutzer alle Informationen verlieren, im Bezug auf das genutzte Programm, welches dauerhaft Swapping nutzt.
  • Wenn der Swapping Algorithmus nicht gut ist, kann die zusammengesetzte Methode die Anzahl der Seitenfehler erhöhen und die gesamte Verarbeitungsleistung verringern.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Unterschied zwischen Typ 1 und Typ 2 Hypervisor?

A

Typ-1-Hypervisoren greifen direkt auf die zugrunde liegenden Hardware-Ressourcen zu. Sie können ihre eigenen benutzerdefinierten Ressourcenzuweisungsstrategien implementieren, um ihre virtuellen Maschinen zu bedienen.

Typ-2-Hypervisoren verhandeln die Ressourcenzuweisung mit dem Betriebssystem, was den Prozess langsamer und weniger effizient macht.

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

Was ist ein Programm?

A

Ausführbare Datei die eine Reihe an Anweisungen enthält

17
Q

Was ist ein Hypervisor?

A

Ein Hypervisor ist eine Software, die virtuelle Maschinen (VMs) erstellt und ausführt.