zusammenfassungen/Writerside/topics/BS/06_prozessstruktur.md
David Schirrmeister 1749e3dccc update
2024-04-30 09:34:59 +02:00

2.9 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
  • Dispatcher: Umsetzung der Scheduling-Entscheidungen
    • Implementierung der Entscheidung
      • Wechsel des Kontrollflusses von einem laufenden Prozess zu einem anderen
      • Einleiten des Umschaltens durch einen Timer-Interrupt
        • Interrupt wird periodisch ausgelöst und startet entsprechende Softwareroutine
    • image_15.png
    • image_16.png

POSIX-API

Portable Operating System Interface

  • Standard, der von der IEE(Institute of Electrical and Electronics Engineers) entwickelt wurde
  • Definiert Schnittstelle zwischen Anwendung und Betriebssystem
    • erleichtert Portabilität von Software zwischen verschiedenen Unix BS
    • bspw:
      • fork, wait/waitpid, sleep, getpid/getppid/setpgid, execl/execv/execve, kill, ...