Skip to main content

Prozesse erzeugen

Jeder Prozess erhält zur Unterscheidung und Verwaltung direkt bei seiner Erzeugung eine eindeutige Prozess-ID

  • Während Laufzeit eines BS werden Prozesse erzeugt, abgearbeitet, unterbrochen, weiter abgearbeitet und beendet
  • Bei Start eines Rechners passiert folgendes:
    • Wird Rechner eingeschaltet, startet BS, wobei  ein Mechanismus den ersten Prozess erzeugt (PID = 0, Leerlaufprozess)
    • Ausgehend vom ersten Prozess starten weitere Prozesse, die zum BS gehören für Erfüllung der Aufgabe des BS
    • dann startet Anwender Anwendungsprogramme, die jeweils als eigener Prozess vom BS verwaltet werden
  • allgemein hängt es vom Betriebssystem ab, wie genau die Erzeugung eines Prozesses erfolgt:
    •  Unter Unix/Linux gibt es dazu einen Systemaufruf fork und ist sehr einfach
    • unter Windows heißt dieser Systemaufruf CreateProcess und ist sehr kompliziert 

Fork - Linux

image-1661150458823.png

  • Systemaufruf fork macht von aufrufenden Prozess (Elternprozess) Kopie (Kindprozess) 
  • Kindprozess erhält eigene Prozess-ID, übernimmt Informationen des Elternprozesses
  • Kindprozess ist nach fork unabhängig vom Elternprozess eigenständige Systeminstanz 
  • Sowohl Eltern- als auch Kindprozess laufen nach dem "klonen" an gleicher Stelle weiter
    • fork liefert Rückgabewert und auf das fork folgende Anweisung wird ausgeführt
  • Rückgabewert von fork > 0; fork = 0: Kindprozess; fork < 0: Es ist Fehler aufgetreten.

CreateProcess - Windows
  • Der Systemaufruf CreateProcess besteht aus sechs Hauptphasen bei der Prozesserzeugung.
  • Anschließend ist der neue Prozess komplett erstellt und wartet auf die Zuteilung der CPU.
1. beginnt mit dem Öffnen der EXE-Datei.
2. erstellt notwendige Verwaltungsobjekte.
3. erstellt notwendige Verwaltungsobjekte.
4. informiert das Windows-Subsystem über den hier neu erstellten Prozess.
5. leitet die Ausführung des neu erstellten Prozesses ein.
6. nimmt alle abschließenden Initialisierungen vor.