ScholarGate
Assistent

Prozess- und Thread-Verwaltung

Prozess- und Thread-Verwaltung beschreibt, wie das Betriebssystem Ausführungseinheiten – Prozesse mit eigenen Adressräumen und Threads, die sich einen teilen – erstellt, plant und beendet und den Prozessor zwischen ihnen umschaltet.

Thema finden mit PaperMindDemnächstFind papers & topics
Tools & resources
Folien herunterladen
Learn & explore
VideoDemnächst

Definition

Prozess- und Thread-Verwaltung umfasst die Mechanismen des Betriebssystems, die laufende Programme als Prozesse und Threads darstellen, deren Ausführungszustand aufrechterhalten, sie erstellen und beenden und den Prozessor zwischen ihnen umschalten, während ihre Kontexte erhalten und wiederhergestellt werden.

Scope

Dieses Thema behandelt die Prozessabstraktion und ihren Lebenszyklus, den Prozesskontrollblock, die Prozesserstellung und -beendigung, Threads und Multithreading-Modelle, den Kontextwechsel und die Interprozesskommunikation. Ausgenommen sind die Richtlinien, welche bereite Aufgabe als Nächstes ausgeführt wird (CPU-Scheduling) und die Koordination gemeinsamer Daten (Nebenläufigkeit, die im Allgemeinen unter Betriebssystemen behandelt wird), wobei der Fokus auf den Strukturen liegt, die die Ausführung repräsentieren und verwalten.

Core questions

  • Welchen Zustand muss das Betriebssystem für jeden Prozess und Thread speichern?
  • Wie werden Prozesse erstellt, und wie unterscheiden sich Threads von Prozessen?
  • Was geschieht während eines Kontextwechsels, und welche Kosten sind damit verbunden?
  • Wie kommunizieren und koordinieren Prozesse über Adressräume hinweg?

Key concepts

  • Prozess und Prozesskontrollblock
  • Prozesszustände und Lebenszyklus
  • Thread und Multithreading
  • Benutzer-Level- vs. Kernel-Level-Threads
  • Kontextwechsel
  • fork und exec
  • Interprozesskommunikation
  • Prozessisolation

Key theories

Prozessabstraktion
Das Betriebssystem stellt jedes laufende Programm als Prozess mit eigenem Adressraum und einem Ausführungskontext dar, der in einem Prozesskontrollblock gespeichert ist, was Isolation, Planung und kontrollierte gemeinsame Nutzung des Prozessors ermöglicht.

Mechanisms

Jeder Prozess wird durch einen Prozesskontrollblock beschrieben, der seine Register, Speicherzuordnungen, offenen Dateien und den Scheduling-Zustand enthält. Das System erstellt Prozesse (z. B. über fork und exec), überführt sie durch Zustände (neu, bereit, laufend, wartend, beendet) und schaltet zwischen ihnen um, indem es einen Kontext speichert und einen anderen wiederherstellt. Threads teilen sich den Adressraum ihres Prozesses, was das Umschalten kostengünstiger macht, aber Synchronisation erfordert; Interprozesskommunikation verwendet Pipes, Nachrichten oder gemeinsamen Speicher.

Clinical relevance

Die Prozess- und Thread-Verwaltung ist die Grundlage des Multitaskings auf jedem modernen System. Prozessisolation ist ein Eckpfeiler der Sicherheit und Stabilität, Threads ermöglichen reaktionsschnelle und parallele Anwendungen, und die Kosten für Kontextwechsel und Interprozesskommunikation prägen das Design von Servern, Laufzeitumgebungen und nebenläufiger Software.

History

Das Prozesskonzept reifte mit Multiprogrammierung und Time-Sharing-Systemen in den 1960er Jahren, und UNIX etablierte das fork/exec-Modell und die Prozessabstraktion, die heute weit verbreitet sind. Threads wurden hinzugefügt, um Multiprozessoren auszunutzen und die Reaktionsfähigkeit zu verbessern, wobei Standards wie POSIX-Threads die für den Benutzer sichtbare Threading-Funktionalität formalisierten.

Debates

Benutzer-Level- versus Kernel-Level-Threads
Benutzer-Level-Threads sind kostengünstig zu verwalten, können aber nicht unabhängig über Kerne hinweg geplant werden und blockieren den gesamten Prozess bei einem blockierenden Aufruf, während Kernel-Level-Threads mit dem Scheduler bei höherem Overhead integriert sind; Hybridmodelle versuchen, die Vorteile zu kombinieren.

Key figures

  • Ken Thompson
  • Dennis Ritchie
  • Per Brinch Hansen
  • Abraham Silberschatz
  • Andrew S. Tanenbaum

Related topics

Seminal works

  • silberschatz2018
  • tanenbaum2014os

Frequently asked questions

Welche Informationen speichert das Betriebssystem für jeden Prozess?
Es speichert einen Prozesskontrollblock, der die gespeicherten Register und den Programmzähler des Prozesses, Speicherzuordnungen, den Scheduling-Zustand und die Priorität, offene Dateien sowie Abrechnungs- und Identitätsinformationen aufzeichnet – alles, was benötigt wird, um den Prozess anzuhalten und ihn später genau dort fortzusetzen, wo er aufgehört hat.
Warum ist das Umschalten zwischen Threads kostengünstiger als zwischen Prozessen?
Threads innerhalb eines Prozesses teilen sich denselben Adressraum und dieselben Ressourcen, sodass das Umschalten zwischen ihnen keine Änderung der Speicherzuordnungen erfordert. Das Umschalten zwischen Prozessen ändert zusätzlich Adressräume und kann Übersetzungscaches leeren, was es teurer macht.

Methods for this concept

Related concepts