Kapitel 2 - Prozessverwaltung Flashcards
Was umfasst die Repräsentation eines Prozesses?
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,..?
Erläutere die Prozessumgebung (4 Schritte)
- Programmcode in den Speicher laden, Stack/Heap anlegen.
- Auf Zuteilung der CPU warten
- Operation für Operation in CPU (Register) laden und ausführen
- z.B. bei Zugriff auf ein Gerät: Registerinhalte/ProgCode sichern, neuen Prozess laden
In welchen Zuständen kann sich ein Prozess befinden?
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
Was ist ein PCB?
Ein Prozesskontrollblock ist eine Datenstruktur zur Repräsenteation von Prozessen innerhalb des Betriebssystems, es erhält alle für das Betriebssystem relevanten Informationen.
Was ist im PCB enthalten?
> 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
Was macht fork()?
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)
Was macht exec()?
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)
Wofür stehen die Varianten exec(l),exec(v),exec(le),exec(ve),exec(lp),exec(vp) ?
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 - —””—
Wozu dient die Interprozesskommunikation (IPC)?
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?”
Welche IPC-Mechanismen gibt es?
Dateien, Signale, Pipes
Message Queues, Message Passing
Shared Memory
Was ist ein Prozess?
Ein Programm in Ausführung.
Erinnerung: um ausgeführt zu werden muss ein Prozess in den Hauptspeicher geladen werden.
Beispiel IPC: Dateien, Signale, Pipes?
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
Was ist Message-Passing und Message-Queuing-Konzept?
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.
Worin unterscheiden sich Message Passing/Queueing von Pipes?
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.
Was ist der Nachteil von Pipes und Messages?
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.