Prozessverwaltung von Unix

aus HaBo WiKi, der freien Wissensdatenbank von http://www.hackerboard.de
Wechseln zu: Navigation, Suche

Dieser Artikel behandelt die Prozessverwaltung von Unix. Es gibt auch eine Prozessverwaltung von Windows

Wird ein Programm aufgerufen, so wird der zugehörige Programmcode in den Hauptspeicher geladen und dann gestartet. Das dann ablaufende Programm wird als Prozess bezeichnet. Während der Existenz eines Prozesses kann dieser unterschiedliche Zustände annehmen.

Die vier wichtigsten Prozesszustände sind aktiv (current), bereit/lauffähig (running), ruhend/terminiert (stopped) und blockiert, wobei ein blockierter Prozess unterbrechbar blockiert (interruptable) und nicht-unterbrechbar blockiert (uninterruptable) sein kann.

  • Ein Prozess ist aktiv, wenn er gerade von der CPU bearbeitet wird.
  • Ein Prozess ist bereit, wenn er die CPU benutzen könnte.
  • Ruhende Prozesse werden oft als Zombie-Prozesse bezeichnet. Sie warten darauf aus dem Speicher entfernt zu werden. Dieser Zustand tritt ein, wenn ein Programm beendet wird.
  • Ein Prozess ist blockiert, wenn er auf das Eintreten eines bestimmten Ereignisses wartet, bevor er weiter ausgeführt werden kann (z.B. eine Benutzereingabe oder die Zuteilung einer Hardware-Ressource).

Wird ein Prozess gestartet, wird der dazugehörige Prozess in eine Bereit-Warteliste gestellt. Ist die CPU frei, macht der Prozess einen Zustandswechsel von bereit nach aktiv (dispatch). Um ein endloses Besetzen der CPU durch einen Prozess zu verhindern, wird nach Ablauf einer gewissen Zeit dem entsprechenden Prozess die CPU wieder entzogen (timerrunout), um sie einen anderen bereiten Prozess mit dispatch zur Verfügung zu stellen. Wenn ein aktiver Prozess eine Ein-/ Ausgabeoperation anfordert, bevor seine ihm zustehende Zeitscheibe abgelaufen ist, dann gibt er freiwillig die CPU wieder frei (block). Der letzte mögliche Zustandswechsel ist, dass ein blockierter Prozess durch Eintreten eines Ereignisses, auf das er wartete, aufgeweckt wird (wakeup).

Zu jedem kreierten Prozess legt das System einen so genannten Prozesskontrollblock (PCB) an. Der PCB ist dabei eine Datenstruktur, in der die zur Verwaltung eines Prozesses erforderliche Information hinterlegt ist. Ein Prozess kann von sich aus einen neuen Prozess starten. Ein so kreierter Prozess wird mit Sohnprozess (child process) und der Erzeuger-Prozess mit Vaterprozess (parent process) bezeichnet. Zu jedem Prozess gibt es eine Reihe von Kenndaten, die vom Betriebssystem in verschiedenen internen Tabellen verwaltet werden. Typische Prozesskenndaten sind Prozessnummer (process identification, PID), Prozessnummer des Vaterprozesses (parent process identification; PPID), UID und GID des Prozesseigentümers, Prozesspriorität, Prozesszustand, CPU-Zeit, Hauptspeicheradresse.

Computer Forum
Computer Forum
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Werkzeuge