Ein Thread ist ein einzelner Sequenzstrom innerhalb eines Prozesses. Threads werden auch als leichtgewichtige Prozesse bezeichnet, da sie einige Eigenschaften von Prozessen besitzen. Jeder Thread gehört zu genau einem Prozess. In einem Betriebssystem, das Multithreading unterstützt, kann der Prozess aus vielen Threads bestehen. Aber Threads können nur dann effektiv sein, wenn die CPU größer als 1 ist, andernfalls müssen zwei Threads für diese einzelne CPU den Kontext wechseln.
Was ist Thread in Betriebssystemen?
In einem Prozess bezieht sich ein Thread auf eine einzelne sequenzielle Aktivität, die ausgeführt wird. Diese Aktivitäten werden auch als Thread of Execution oder Thread Control bezeichnet. Jetzt kann jeder Betriebssystemprozess einen Thread ausführen. Wir können sagen, dass ein Prozess mehrere Threads haben kann.
Warum brauchen wir Faden?
- Threads laufen parallel und verbessern die Anwendungsleistung. Jeder dieser Threads hat seinen eigenen CPU-Status und Stapel, sie teilen sich jedoch den Adressraum des Prozesses und der Umgebung.
- Threads können gemeinsame Daten teilen, sodass sie nicht verwendet werden müssen Interprozesskommunikation . Wie die Prozesse haben auch Threads Zustände wie „bereit“, „wird ausgeführt“, „blockiert“ usw.
- Den Threads kann wie dem Prozess Priorität zugewiesen werden, und der Thread mit der höchsten Priorität wird zuerst geplant.
- Jeder Thread hat seinen eigenen Thread-Kontrollblock (TCB) . Wie bei diesem Prozess findet für den Thread ein Kontextwechsel statt, und die Registerinhalte werden in (TCB) gespeichert. Da Threads denselben Adressraum und dieselben Ressourcen nutzen, ist auch eine Synchronisierung für die verschiedenen Aktivitäten des Threads erforderlich.
Komponenten von Threads
Dies sind die Grundkomponenten des Betriebssystems.
- Stapelplatz
- Registersatz
- Programm zähler
Arten von Threads im Betriebssystem
Es gibt zwei Arten von Threads. Diese werden im Folgenden beschrieben.
- Thread auf Benutzerebene
- Kernel-Level-Thread

Java-String in JSON
Themen
1. Threads auf Benutzerebene
Benutzerebenen-Thread ist ein Thread-Typ, der nicht mithilfe von Systemaufrufen erstellt wird. Der Kernel hat keine Arbeit bei der Verwaltung von Threads auf Benutzerebene. Threads auf Benutzerebene können vom Benutzer einfach implementiert werden. Wenn es sich bei Threads auf Benutzerebene um einhändige Prozesse handelt, werden sie vom Thread auf Kernelebene verwaltet. Schauen wir uns die Vor- und Nachteile von User-Level-Threads an.
Vorteile von Threads auf Benutzerebene
- Die Implementierung des User-Level-Threads ist einfacher als die des Kernel-Level-Threads.
- Kontextwechsel Im Benutzerebenen-Thread ist die Zeit kürzer.
- Thread auf Benutzerebene ist effizienter als Thread auf Kernelebene.
- Da nur Programmzähler, Registersatz und Stapelspeicher vorhanden sind, ist die Darstellung einfach.
Nachteile von Threads auf Benutzerebene
- Es besteht ein Mangel an Koordination zwischen Thread und Kernel.
- Im Falle eines Seitenfehlers kann der gesamte Vorgang blockiert werden.
2. Threads auf Kernel-Ebene
A Kernel-Level-Thread ist eine Art Thread, der das Betriebssystem leicht erkennen kann. Kernel-Level-Threads verfügen über eine eigene Thread-Tabelle, in der sie den Überblick über das System behalten. Der Betriebssystemkernel hilft bei der Verwaltung von Threads. Kernel-Threads haben irgendwie eine längere Kontextwechselzeit. Der Kernel hilft bei der Verwaltung von Threads.
Vorteile von Kernel-Level-Threads
String-Builder
- Es enthält aktuelle Informationen zu allen Threads.
- Anwendungen, die die Frequenz blockieren, müssen von den Kernel-Level-Threads verarbeitet werden.
- Immer wenn ein Prozess mehr Zeit für die Verarbeitung benötigt, stellt der Kernel-Level-Thread ihm mehr Zeit zur Verfügung.
Nachteile von Kernel-Level-Threads
- Threads auf Kernelebene sind langsamer als Threads auf Benutzerebene.
- Die Implementierung dieses Thread-Typs ist etwas komplexer als die eines Threads auf Benutzerebene.
Weitere Informationen finden Sie im Unterschied zwischen Thread auf Benutzerebene und Thread auf Kernelebene .
Unterschied zwischen Prozess und Thread
Der Hauptunterschied besteht darin, dass Threads innerhalb desselben Prozesses in einem gemeinsam genutzten Speicherbereich ausgeführt werden, während Prozesse in separaten Speicherbereichen ausgeführt werden. Threads sind nicht unabhängig voneinander wie Prozesse, und daher teilen Threads ihren Codeabschnitt, Datenabschnitt und Betriebssystemressourcen (wie offene Dateien und Signale) mit anderen Threads. Aber wie ein Prozess hat auch ein Thread seinen eigenen Programmzähler (PC) , Registersatz und Stapelspeicher.
Weitere Informationen finden Sie unter Unterschied zwischen Prozess und Thread .
Was ist Multithreading?
Ein Thread wird auch als Lightweight-Prozess bezeichnet. Die Idee besteht darin, Parallelität durch die Aufteilung eines Prozesses in mehrere Threads zu erreichen. Zum Beispiel in einem Browser , mehrere Registerkarten können unterschiedliche Threads sein. MS Word verwendet mehrere Threads: einen Thread zum Formatieren des Textes, einen anderen Thread zum Verarbeiten von Eingaben usw. Weitere Vorteile von Multithreading werden im Folgenden erläutert.
Multithreading ist eine Technik, die in Betriebssystemen verwendet wird, um die Leistung und Reaktionsfähigkeit von Computersystemen zu verbessern. Multithreading ermöglicht es mehreren Threads (d. h. leichtgewichtigen Prozessen), die gleichen Ressourcen eines einzelnen Prozesses zu teilen, wie z. B. die CPU, Erinnerung , Und E/A-Geräte .

Single-Threaded vs. Multi-Threaded-Prozess
Versteckte Apps anzeigen
Vorteile von Thread im Betriebssystem
- Empfänglichkeit : Wenn der Prozess in mehrere Threads unterteilt ist und ein Thread seine Ausführung abschließt, kann seine Ausgabe sofort zurückgegeben werden.
- Schnellerer Kontextwechsel : Die Kontextwechselzeit zwischen Threads ist im Vergleich zum Prozesskontextwechsel kürzer. Der Prozesskontextwechsel erfordert mehr Overhead von der CPU.
- Effektive Nutzung des Multiprozessorsystems : Wenn wir mehrere Threads in einem einzigen Prozess haben, können wir mehrere Threads auf mehreren Prozessoren planen. Dadurch wird die Prozessausführung beschleunigt.
- Gemeinsame Nutzung von Ressourcen : Ressourcen wie Code, Daten und Dateien können von allen Threads innerhalb eines Prozesses gemeinsam genutzt werden. Hinweis: Stacks und Register können nicht von den Threads gemeinsam genutzt werden. Jeder Thread hat seinen eigenen Stapel und seine eigenen Register.
- Kommunikation : Die Kommunikation zwischen mehreren Threads ist einfacher, da sich die Threads einen gemeinsamen Adressraum teilen. Dabei müssen wir einige spezifische Kommunikationstechniken für die Kommunikation zwischen den beiden Prozessen befolgen.
- Erhöhter Durchsatz des Systems : Wenn ein Prozess in mehrere Threads unterteilt ist und jede Thread-Funktion als ein Job betrachtet wird, erhöht sich die Anzahl der pro Zeiteinheit abgeschlossenen Jobs und damit der Durchsatz des Systems.
Häufig gestellte Fragen zum Thread im Betriebssystem – FAQs
Was ist der Thread-Status im Betriebssystem?
Es gibt vier verschiedene Zustände eines Threads.
- neu
- lauffähig
- verstopft
- beendet
Warum ist Thread besser als Prozess?
Threads erfordern weniger Ressourcen, während Prozesse mehr Ressourcen erfordern. Deshalb ist Thread besser als Prozess.
Warum ist Multithreading schneller?
Während der Prozessor des Computersystems beim Multithreading jeweils nur eine Anweisung ausführt, werden verschiedene Threads aus mehreren Anwendungen so schnell ausgeführt, dass es den Anschein hat, als würden die Programme gleichzeitig laufen.