Up Right Prozesse

Aktivitätsträger

Def Aktivitätsträger: führt eine sequentielle Folge von Aktionen aus.
Als Daten hat er eine Kopie der Register der CPU und ein Stapelsegment.

Wir diskriminieren nach der Gewichtigkeit, d.h. nach den Kosten einer Umschaltung zu einem anderen Aktivitätsträger:

UNIX-Prozeß
Beim Umschalten wird die gesamte Adressraum vom Betriebssystem umgeschaltet.
Kernel-Threads
Beim Umschalten werden durch das Betriebssystem nur die Register gesichert. Ruft ein Kernelthread eine blockierende Aktion auf, so wird nur dieser Thread blockiert.
User-level Threads
Hier erfolgt das Scheduling und Umschalten innerhalb des normalen Nutzermodus. Damit ist die Umschaltung äußert billig, da dieser nicht über das Betriebssystem geschieht.
Dies ist aber auch das Problem daran, dass die Thread-Bibliothek dafür Sorgen muß, dass so ein Leichtgewicht keine blockierenden Systemaufrufe macht, der die ganze Subsystem blockiert.
Am IMMD IV hat man daran geforscht, wie man Userlevel-Threads auf Systemthreads abbilden kann (Scheduling) und bei Blockierung die Kontrolle an den Scheduler zurückgeben kann.
Die Systemaufrufe sind normiert: POSIX-Threads (kurz pthreads). Es gibt Aufrufe zum

Kommandos zur Kontrolle in UNIX

ps(1) Snapshot: welche Prozesse laufen gerade ?
top(1) Dynamisch

Operationen für UNIX-Prozesse

fork(2) : Cloned den Prozess

Bemerkungen

Scheduling verwaltet die Rechenzeit

Threads

Linux-Threads-FAQ von 1997
Linux-Thread-Tutorial
PThread-Tutorial vom Laurance Livermore Institut
Wikipedia über die Linux Native POSIX Thread Library NPTL
in Kern 2.5 verfübar, ab Kern 2.6
pthreads-Beispielprogramme

Spezielle Themen

Affinität

ist die Eigenschaft, dass ein Thread einen Prozessor(kern) zugeordnet wird.

Single shot Threads

werden nur einmal abgearbeitet und blokieren sich nicht - sie haben keinen Wartezustand.
(Man kann aber am Ende der Threadroutine wieder ein Thread zu einer Zeit aufsetzen lassen).
Diese gleichen Interupt-service-Routinen. Diese Art brauchen sehr wenig Speicher und sind daher sehr für kleine (eingebettete) Echtzeitsysteme geeignet.
Informatik- und Netzwerkverein Ravensburg e.V Rudolf Weber