zusammenfassungen/Writerside/topics/prozessstruktur.md
David Schirrmeister a8a57d63b6 update
2024-04-29 11:05:26 +02:00

2.1 KiB

Prozessstruktur

Prozessdarstellung

  • Umfasst Zustände und Struktur eines laufenden Programms
    • Grundlegende Komponenten, die die Speicherrepräsentation eines Prozesses vorhanden sein können

      • Systemumgebung
      • Stack
      • Heap
      • BSS (Block Started by Symbol)
      • Datensegment
      • Codesegment
    • image_8.png

      Beispiel: Terminalbefehl - size

      • image_9.png

Prozesse im Speicher

  • image_10.png
  • Ablage im physischen Speicher erfolgt in nicht fortlaufender Weise durch den virtuellen Speicher
    • nicht zwangsläufig ständig im Hauptspeicher

Erzeugung von Prozesskopien

  • Systemaufruf fork unter Linux/Unix
    • Erzeugung einer identischen Kopie eines Prozesses
    • aufrufender Prozess: Elternprozess (Parent Process)
    • neuer Prozess: Kind-Prozess (Child Process)
      • hat gleichen Programmcode und Befehlszähler
        • verweist auf gleiche Zeile im Programmcode
    • Speicherbereiche von Kind- und Elternprozess streng getrennt
  • image_11.png

Erzeugung von neuen Prozessen

  • Systemaufruf exec
    • Ersetzt bestehenden Prozess durch einen anderen
      • neuer Prozess erbt PID des aufrufenden Prozesses
    • image_12.png
    • Soll aus einem Prozess (bspw. Kommandozeilen-Interpreter (Shell)) heraus ein Programm gestartet werden:
      • fork -> exec
      • image_13.png

Übersicht Erzeugung/Verkettung/Vergabelung

image_14.png

Beenden von Prozessen

Arten des Beendens:

  • Normales Beenden (freiwillig, im Code definiert)
  • Beenden aufgrund eines Fehlers (freiwillig, im Code definiert)
  • Beenden aufgrund eines schwerwiegenden Fehlers (unfreiwillig, durch BS)
  • Beenden durch einen anderen Prozess (unfreiwillig)

Unix Befehl: kill erstellt einen Wrapper um BS-Aufruf kilL()

  • ist auf jedem Unix als alleinstehende Anwendung vorhanden (/bin/kill)

Zeitliche Ausführung von Prozessen

  • Scheduler ist wichtige Komponente des Betriebssystems
    • Zuständig für Zuweisung von CPU-Ressourcen an laufenden Prozessen
    • Hauptaufgabe: Reihenfolge festlegen