Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger

 << zurück
Linux-UNIX-Programmierung von Jürgen Wolf
Das umfassende Handbuch – 2., aktualisierte und erweiterte Auflage 2006
Buch: Linux-UNIX-Programmierung

Linux-UNIX-Programmierung
1216 S., mit CD, 49,90 Euro
Rheinwerk Computing
ISBN 3-89842-749-8
gp Kapitel 10 Threads
  gp 10.1 Unterschiede zwischen Threads und Prozessen
  gp 10.2 Thread-Bibliotheken
  gp 10.3 Kernel- und User-Threads
  gp 10.4 Scheduling und Zustände von Threads
  gp 10.5 Die grundlegenden Funktionen zur Thread–Programmierung
    gp 10.5.1 pthread_create – einen neuen Thread erzeugen
    gp 10.5.2 pthread_exit – einen Thread beenden
    gp 10.5.3 pthread_join – auf das Ende eines Threads warten
    gp 10.5.4 pthread_self – die ID von Threads ermitteln
    gp 10.5.5 pthread_equal – die ID von zwei Threads vergleichen
    gp 10.5.6 pthread_detach – einen Thread unabhängig machen
  gp 10.6 Die Attribute von Threads und das Scheduling
  gp 10.7 Threads synchronisieren
    gp 10.7.1 Mutexe
    gp 10.7.2 Condition-Variablen (Bedingungsvariablen)
    gp 10.7.3 Semaphore
    gp 10.7.4 Weitere Synchronisationstechniken im Überblick
  gp 10.8 Threads abbrechen (canceln)
  gp 10.9 Erzeugen von Thread-spezifischen Daten (TSD-Data)
  gp 10.10 pthread_once – Codeabschnitt einmal ausführen
  gp 10.11 Thread-safe (thread-sichere Funktionen)
  gp 10.12 Threads und Signale
  gp 10.13 Zusammenfassung und Ausblick


Rheinwerk Computing

10.4 Scheduling und Zustände von Threadtoptop

Auch bei der Thread-Programmierung ist (wie bei den Prozessen) ein Scheduler entweder in der Thread-Bibliothek oder dem Betriebssystem vorhanden, der bestimmt, wann welcher Thread Prozessorzeit erhält. Auch hier kann die Zuteilung wie schon bei den Prozessen prioritäts- und zeitgesteuert erfolgen. Bei zeitgesteuerten Threads bedeutet dies, dass jedem Thread eine bestimmte Zeit (des Prozessors oder der Prozessoren) zur Verfügung steht, ehe dieser automatisch unterbrochen wird und anschließend ein anderer Thread an der Reihe ist. Sind die Threads prioritätsgesteuert, so erhält der Thread mit der höchsten Priorität vom Scheduler den Zuschlag. Außerdem wird ein laufender Thread abgebrochen, wenn ein Thread mit einer höheren Priorität ausgeführt wird. Bitte beachten Sie außerdem, wenn Sie das rein prioritätsgesteuerte Scheduling für die Thread-Programmierung verwenden, dass ein Thread mit höchster Priorität den Prozessor für eine uneingeschränkte Zeit verwenden und somit alle anderen Threads von der Arbeit ausschließen kann.

Bei einer User-Level-Thread-Implementierung steht Ihnen nur ein prioritätsgesteuertes Scheduling zur Verfügung, da ein zeitgesteuertes die Verwendung von Systemcalls erfordert. Beide Scheduling-Arten hingegen stehen Ihnen zur Verfügung, wenn die Thread-Bibliothek im Kernel des Betriebssystems implementiert wurde.

Anhand der folgenden Abbildung können Sie die Zustände erkennen, in denen sich ein Thread befinden kann. Bei genauerer Betrachtung fällt auf, dass sich die Threads, abgesehen von den weiteren Unterzuständen, nicht wesentlich von den Prozessen unterscheiden.


Abbildung
Hier klicken, um das Bild zu vergrößern

Abbildung 10.1    Zustände von Threads


gp  Bereit – Der Thread wartet, bis ihm Prozessorzeit zur Verfügung steht, um seine Arbeit auszuführen.
gp  Ausgeführt – Der Thread wird im Augenblick ausgeführt – bei Multiprozessorsystemen können hierbei mehrere Threads gleichzeitig ausgeführt werden (pro CPU ein Thread).
gp  Wartet – Der Thread wird im Augenblick blockiert und wartet auf einen bestimmten Zustand (z. B. Bedingungsvariable, Mutex-Freigabe etc).
gp  Beendet – Ein Thread hat sich beendet oder wurde abgebrochen.
 << zurück
  
  Zum Rheinwerk-Shop
Neuauflage: Linux-UNIX-Programmierung
Neuauflage:
Linux-UNIX-
Programmierung

bestellen
 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: Linux-Server






 Linux-Server


Zum Rheinwerk-Shop: Das Komplettpaket LPIC-1 & LPIC-2






 Das Komplettpaket
 LPIC-1 & LPIC-2


Zum Rheinwerk-Shop: Linux-Hochverfügbarkeit






 Linux-
 Hochverfügbarkeit


Zum Rheinwerk-Shop: Shell-Programmierung






 Shell-
 Programmierung


Zum Rheinwerk-Shop: Linux Handbuch






 Linux Handbuch


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
Info





Copyright © Rheinwerk Verlag GmbH 2006
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern