Definition
Prozess
Kontext eines Prozesses
(Software-) Einheit, durch OS auf realen Prozessor zur Ausführung gebracht
umfasst Programmcode und Kontext
Hardwarekontext: Registerinhalte, Befehlszähler, etc
Softwarekontext: Prozess ID, Prozesszustand, etc.
die Registerinhalte des Prozessors
dem Prozess zugeordnete Bereiche des direkt zugreifbaren Speichers
durch den Prozess geöffnete Dateien
dem Prozess zugeordnete Peripheriegeräte
Verwaltungsinformationen über den Prozess
Erzeugung von Prozessen
erster Prozess bei Systemstart von OS automatisch erzeugt
existierender P kann neue P erzeugen
Prozessverkettung - Chaining
laufender P startet neuen P und terminiert sich selbst
Prozessvergablung - Forking
laufender P startet einen (kind-)Prozess, läuft selbst weiter (Vater-)prozess
Prozessteuerung - Creation
laufender P startet einen unabhängigen neuen P
Prozessvereinigungsformen
Warten auf Ende des Kindsprozesses - obligatorisch
Warten auf Ende unabhängiger neuer P - freiwillig
Zombieprozesse
Prozess der bereits terminiert wurde, steht noch in der Tabelle der laufendenen Prozesse, Rückgabewert muss für Vaterprozess bereitgehalten werden
Vermeidung dauerhafter ZP
Terminiert ein Vaterprozess vor seinem Kindprozess erhält dieser verwaiste Prozess als neuen Vaterprozess den init- Systemprozess (mit PID=1).
Der init-Prozess führt dabei implizit für alle seine Kindprozesse einen wait() Aufruf aus, so dass die Kindprozesse nie zu Zombies werden können.
Verkettung
exec()- Aufruf bewirkt, dass ausführbare Datei als neuer Prozess gestartet wird und gleichzeitig alte P terminiert
neuer Prozess erbt
alle Deskriptoren
PID
dessen Eltern- Kind Beziehung
Prozessbeendigung
Unix Prozess normale Beendigung
C-main() Fkt abgeschlossen
Systemfunktion exit() aufgerufen wird
Normal beendeter Prozess sollte Rückgabewert bereitstellen
C-Anweisung return()
Systemfunktion exit()
Rückgabewert
0: fehlerfrei abgelaufenes Programm
-1: Fehlercode
Funktionsweise Unix-Shell
Befehlskonsole stellt Prozess in Unix dar
angesiedelt auf Benutzerebene
arbeitet in Endlosschleife bis zur expliziten Shell-Beendigung
Vordergrundprozesse
Hintergrundprozesse
Prozessmodel
zentrales Konzept moderner OS
Grundbaustein nebenläufiger Verarbeitung
durch Thread Modell ergänzt
Realisierung Nebenläufigkeit innerhalb Applikationen
Kerneigenschaft: jedem Prozess steht virtuell der gesamte Rechner zur Verfügung
kann Adressraum frei belegen
Prozessorregister nach Belieben nutzen
Multiprozessorsystemen ist dagegen eine mehrheitlich gleichzeitige Ausführung von Programmen möglich
Sichten OS auf einen Prozess
Adressraumbelegung
Process Control Block
Daten zur Prozessverwaltung
bei Erzeugung Prozess erstellt
Threads
unabhängige Einheit Befehlsablaufs in UNIX Prozessen
Threads innerhalb laufen quasi unabhängig voneinander
im Gegensatz zu Prozessen benutzen Threads gemeinsamen Adressraum
brauchen weniger Speicherplatz und weniger Zeit für Start und INitialisierung als UNiX Prozesse
Threads als leichtgewichtige Prozesse innerhalb von Prozesssen
gleiche Zustände wie bei Prozessen
Zuletzt geändertvor einem Jahr