Kapitel 2 - Prozessverwaltung Flashcards

1
Q

Was umfasst die Repräsentation eines Prozesses?

A

den Programmzähler: welche Operation des Prozesses wird gerade ausgeführt und an welcher Stelle?

den Stack: Speicherbereich, auf dem der Prozess Parameterwerte, Rücksprungadressen usw. ablegen kann.

den Heap: dynamische allokierter Speicher, der dem Prozess zur Verfügung steht (‘malloc()’)

die Registerwerte: aktuelle Werte, die der Prozess zur Verarbeitung der nächsten Anweisung in die CPU geladen hat.

Variablen/Daten: welchen Datenbestände/Dateien nutzt der Prozess und hat sie zum lesen oder schreiben geöffnet,..?

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

Erläutere die Prozessumgebung (4 Schritte)

A
  1. Programmcode in den Speicher laden, Stack/Heap anlegen.
  2. Auf Zuteilung der CPU warten
  3. Operation für Operation in CPU (Register) laden und ausführen
  4. z.B. bei Zugriff auf ein Gerät: Registerinhalte/ProgCode sichern, neuen Prozess laden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

In welchen Zuständen kann sich ein Prozess befinden?

A

new/create - Prozess wird erzeugt

ready - Prozess is bereit zur Ausführung, wartet aber noch auf Zuteilung von CPU- Zeit.

running - Die Anweisungen des Prozesses werden gerade ausgeführt (d.h. CPU-Zeit ist zugeteilt)

waiting- Prozess wartet auf das Eintreten eines Ereignisses (z.B. darauf, dass ein Betriebsmittel fertig wird)

terminated - Der Prozess wird beendet (alle Instruktionen abgearbeitet)

killed - Der Prozess wird vorzeitig abgebrochen

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

Was ist ein PCB?

A

Ein Prozesskontrollblock ist eine Datenstruktur zur Repräsenteation von Prozessen innerhalb des Betriebssystems, es erhält alle für das Betriebssystem relevanten Informationen.

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

Was ist im PCB enthalten?

A

> Status: Prozesszustand
Zeitpunkt der Prozesserzeugung
Program Counter: nächste auszuführende Instruktion
Stack, Heap
CPU-Register
CPU-Scheduling: Prioritäten, Zeiger auf Warteschlande…
Umgebung des Prozesses u.a. das Arbeitsverzeichnis
Vebraucht Rechenzeit
Verwendete Speicherbereiche
Ressourcen: Zugeordnete I/O- Geräte, offene Dateien
ProzessID,VaterprozessID und User-ID

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

Was macht fork()?

A

Erzeugt exakte Kopie des ausrufenden Prozesses inkl. des Programm Counters,d.h. beide Prozesse sind an der gleichen Stelle des Programmablaufs.(UNTERSCHIED: exkl. eigene PID und PID des Vaters, da PID eindeutig sein muss)..

  • > Aufrufender Prozess = Vaterprozess (returns PID des erzeugten Kinds)
  • > Neuer Prozess = Kindprozess (returns 0)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was macht exec()?

A

Ersetzt aktuellen Prozess mit einem angegebenen Kommando (üblicherweise der Kindprozess) BSP: Beim Systemstart ersetzung vom Login-Shell durch die Shell, die man zum arbeiten verwenden will (exec bash)

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

Wofür stehen die Varianten exec(l),exec(v),exec(le),exec(ve),exec(lp),exec(vp) ?

A

l -Übergabe von Parametern als Liste
v - Übergabe eines Arrays von Parametern
le - environment (gkeichzeitige Angabe einer neuen Umgebung)
ve - –””–
lp - angabe eines auszuführenden programms
vp - —””—

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

Wozu dient die Interprozesskommunikation (IPC)?

A

Prozesse müssen eventuell miteinander kommunizieren, zur Austausch von Informationen oder Synchronisation von Aktionen.

Kommunikation ohne gemeinsame Variablen soll mögliche sein:
BSP: cat datei I grep muster “Wie kann der Prozess cat dem Prozess grep seine Informationen übermitteln?”

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

Welche IPC-Mechanismen gibt es?

A

Dateien, Signale, Pipes
Message Queues, Message Passing
Shared Memory

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

Was ist ein Prozess?

A

Ein Programm in Ausführung.

Erinnerung: um ausgeführt zu werden muss ein Prozess in den Hauptspeicher geladen werden.

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

Beispiel IPC: Dateien, Signale, Pipes?

A

Dateien: Prozess schreibt Informationen in eine Datei, der andere liest sie aus dieser Datei.

Signale: Prozesse können bei Eintreten bestimmter Ereignisse, asynchron Nachrichten an andere Prozesse versenden. Bsp: CTR-C zu, Abbruch eines Prozesses.

Pipes: K02 Folie 31

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

Was ist Message-Passing und Message-Queuing-Konzept?

A

Prinzip des Message Passing bzw. Queueing: es stehen zwei Kommunikationsprimitive ,,send’’ und ,,receive” zur Verfügung. über die kommuniziert werden kann. Innerhalb dieser Primitive muss der jeweilige Kommunikationspartner adressiert werden.

Dabei ist sowohl die direkte Kommunikation zwischen zwei Prozessen als auch indirekte Kommunikation über eine Queue, die die Daten zwischenspeichert, möglich.

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

Worin unterscheiden sich Message Passing/Queueing von Pipes?

A

Pipes verwenden Byte-Streams, Messages haben explizite Länge.
Messages können getypt werden.
Pipes ist auf nur 2 Kommunikationspartner ausgerichtet, mit Messages können dagegen beliebig viele Partner kommunizieren.

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

Was ist der Nachteil von Pipes und Messages?

A

Pipes/Messages sind Systemressourcen. Es werden mehrere Kontextwechsel zur Zurstellung der Daten benötigt, da sowohl READ als auch WRITE die Kontrolle an den Kernel übergeben.
=> Overhead, der beide Kommunkationsarten langsam macht.

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

Was versteht man unter Shared Memory?

A

Normalerweise hätten Prozesse geschützte Adressräume, d.h. Prozesse können nicht auf Adressräume fremder Prozesse zugreifen.
(Einschränkung für Programmierer)
SHARED MEMORY dagegen erlaubt speicherbasierte Kommunikation. Das Lesen und Schreiben in gemeinsame Speicherbereiche. (*)Beschleunigung der Kommunikation gegenüber Pipes/Messages

17
Q

Was sind die Probleme von Shared Memory?

A

Aktionen können unkoordiniert erfolgen. Bei Pipes oder Message Queueing erfolgt eine Art Synchronisation zwischen den kommunizierenden Prozessen d.h. es konnte erst gelesen werden wenn der andere Prozess geschrieben hat.

Bei Shared Mem. ist es problematischer, denn jeder Prozess kann auf den geteilten Speicherbereich frei zugreifen, unabhängig davon welche Aktionen ein anderer Prozess vielleicht gerade im Speicher durchführt. Dadruch können Werte überschrieben und Ergebnisse verfälscht werden. Es ist eine Synchronisation der Prozess nötig.

18
Q

Was sind Threads und welchen Vorteil bieten Sie?

A

Threads sind eine erweiterung des Prozess-Konzepts.
Man hat nun mehrere unabhängige Kontrollflüsse innerhalb eines Prozesses.
Man könnte zwar genau so gut Kindprozesse erzeugen aber die Verwendung von unabh. prozessen ist oft ungünstig. Die Kommunikation zwischen Prozessen ist zeitaufwendig, ebenso der Kontextwechsel.
Man hat allso eine effizientere Aufsplittung eines Kontrollflusses.

kurz: IPC teuer, Kontextwechsel teuer.

19
Q

Was nutzen verschiedene Threads im Prozess gemeinsam und was nicht?

A

jeder Thread hat EIGENEN: Programmzähler, Stack, Register, Status
jeder Thread TEILT sich: Adressraum des Prozesses, globale Variablen und geöffnete Dateien, CPU Zeit, Kindprozesse und Signale

20
Q

Nenne ein Beispiel zum Einsatz von Threads

A

Ein Anwendungsprogramm habe aufwendige Berechnungen durchzuführen(Verarbeitungs Thread), Gleichzeitig soll aber auch Interaktion mit dem Benutzer möglich sein(Schnittstellen Thread) und Kommunikation mit anderen Prozessen (Kommunikationsthread).
=>3 Threads

21
Q

Was sind die Vorteile von Threads gegenüber Prozessen?

A

Weniger Aufwand für Kontextwechsel
Effizientere Kommunikation
Bessere Ausnutzung der Rechenzeit

22
Q

Was sind die Nachteile von Threads gegenüber Prozessen?

A

°Vermeidung des gleichzeitigen Zugriffs auf den Speicher nötig.
°Kein Schutz zwischen Threads - Threads können sogar den Stack der anderen Threads lesen und ggf. auch manipulieren.
°Fehler in einem Thread kann die anderen Threads beeinflussen
°Effiziensverlust bei ungünstiger Zerlegung einer Aufgabe

23
Q

Worin liegt der Unterschied zwischen Many-to-One und One-to-One und Many-to-Many Threads?

A

Many-to-One: Mehrere User Threads werden auf einen Kernel Thread abgebildet.
Hat alle Vor- und Nachteile von User-Threads

One-to-One: Jeder User-thread wird auf einen eigenen Kernel-Thread abgebildet.
Hat alle vor- und Nachteile von Kernel-Threads.

Many-to-Many: Die User Threads werden auf einen Pool von Kernel Threads abgebildet.
Sehr flexibel

24
Q

Was ist gängiges Modell zur Verwendung von Threads?

A

In Servern (Worker-Modell=
Dispatcher-Thread empfängt eingehende Aufrufe/Aufgaben
und erstellt neuen Worker-Threads für jede Aufgabe.
Worker-Thread erledigt dann die Aufgabe und gibt das Ergebnis an Dispatcher-Thread zurück.
Worker-Thread terminiert
Dispatcher-Thread kann Ergebnis an Aufrufer zurückgeben.

25
Q

Was ist das Worker-Pool-Modell?

A

Oft kurzlebige Aufgabe.
Erstellung und Zerstörung von Threads zu aufwendig.
Erstelle Pool von Threads:
-Man hate eine Task Queue zur Verwaltung von ausstehender Aufgaben
-Worker-Threads prüfen nach Beendigung einer Aufgabe die Queue und übernehmen eine neue Aufgabe