Prozesse und Threads im Betriebssystem
Kurzantwort
Ein Prozess ist ein laufendes Programm mit eigenem, abgeschottetem Speicher. Ein Thread ist ein Ausführungsstrang innerhalb eines Prozesses; mehrere Threads eines Prozesses teilen sich dessen Speicher. Weil ein Prozessorkern nur eine Sache zur Zeit ausführt, wechselt das Betriebssystem sehr schnell zwischen den Aufgaben hin und her (Scheduling) – so entsteht der Eindruck von Gleichzeitigkeit.
Teil des Lernpfads Hardware und Betriebssysteme · Schritt 10 von 13
Auf deinem Rechner laufen gefühlt Dutzende Programme gleichzeitig – Browser, Musik, Editor. Aber ein einzelner Prozessorkern kann immer nur eine Sache zur Zeit tun. Wie geht das zusammen? Die Antwort liegt in Prozessen, Threads und geschicktem Umschalten.
Prozess vs. Thread
| Prozess | Thread | |
|---|---|---|
| Speicher | eigener, isolierter | gemeinsam im Prozess |
| Erzeugung | „teuer" | „günstig" |
| Absturz | betrifft nur diesen Prozess | kann den ganzen Prozess reißen |
| Beispiel | ein geöffnetes Programm | Rechtschreibprüfung nebenher |
Wie entsteht scheinbare Gleichzeitigkeit?
Ein einzelner Kern führt zu jedem Zeitpunkt nur einen Befehl aus. Das Betriebssystem teilt die Rechenzeit deshalb in winzige Zeitscheiben und wechselt blitzschnell zwischen den Aufgaben hin und her. Diese Verteilung übernimmt der Scheduler.
Warum das in der Praxis zählt
Selbstkontrolle
Selbstkontrolle
Worin unterscheiden sich Prozess und Thread beim Speicher?
Häufige Fragen
Was macht der Scheduler?
Der Scheduler ist der Teil des Betriebssystems, der entscheidet, welcher Prozess oder Thread als Nächstes wie lange den Prozessor bekommt. Er sorgt für eine faire und sinnvolle Verteilung der Rechenzeit, damit kein Programm die anderen aushungert und interaktive Anwendungen flüssig bleiben.
Was ist ein Kontextwechsel?
Ein Kontextwechsel ist das Umschalten des Prozessors von einer Aufgabe zur nächsten. Dabei muss der Zustand der bisherigen Aufgabe gesichert und der der neuen geladen werden. Das kostet etwas Zeit, weshalb sehr häufige Wechsel Leistung kosten. Trotzdem ermöglicht das Umschalten überhaupt erst das Multitasking.
Was ist der Unterschied zwischen Nebenläufigkeit und Parallelität?
Nebenläufigkeit bedeutet, dass mehrere Aufgaben abwechselnd bearbeitet werden und sich zeitlich überlappen – auf einem Kern durch schnelles Umschalten. Parallelität bedeutet echte Gleichzeitigkeit, die nur mit mehreren Kernen möglich ist. Nebenläufig kann auch ein Einkernsystem sein, parallel nur ein Mehrkernsystem.
Warum kann ein Thread den ganzen Prozess zum Absturz bringen?
Weil sich die Threads eines Prozesses den gemeinsamen Speicher teilen. Ein schwerwiegender Fehler in einem Thread, etwa ein Zugriff auf ungültigen Speicher, kann diesen gemeinsamen Zustand beschädigen und das Betriebssystem beendet dann den gesamten Prozess. Getrennte Prozesse sind dagegen besser voneinander isoliert.
Weiterlesen: Linux-Grundlagen: die Kommandozeile · Virtualisierung und virtuelle Maschinen
Das Wichtigste in Kürze
- Prozess: laufendes Programm mit eigenem, isoliertem Speicher.
- Thread: Ausführungsstrang im Prozess; Threads teilen sich den Speicher.
- Ein Kern arbeitet eine Sache zur Zeit; der Scheduler verteilt die Rechenzeit.
- Nebenläufigkeit (abwechselnd) ≠ Parallelität (echte Mehrkern-Gleichzeitigkeit).
- Im Task-Manager/
topProzesse beobachten und beenden.