1. Grundlagen
c. Threads
Ein Thread ist ein Vorgang, der innerhalb eines Prozesses abläuft.
Auf Betriebssystemeebene besitzt er einen eigenen Befehlszähler und einen eigenen Stack, teilt sich aber mit anderen Threads das Codesegment, das Datensegment und die Dateideskriptoren. Beim Wechsel von Threads braucht das System nicht den vollständigen Inhalt des Kontextes austauschen, die Umschaltung kann in wesentlich kürzerer Zeit erfolgen. Ein Thread wird daher auch leichtgewichtiger Prozess genannt. Grundsätzlich unterscheidet man zwei Arten von Threads: Die Nativen Threads werden vom Betriebssystem verwaltet, „Green Threads“ sind dem Betriebssystem gegenüber unsichtbar und müssen ein eigenes Scheduling implementieren.
Durch die Verwendung desselben
Adressraums bei Threads des gleichen Prozesses kann es zu Problemen bei der
Synchronisierung kommen. Im Folgenden sollen einige Synchronisierungsmethoden
vorgestellt werden, die mithilfe des Verfahrens des gegenseitigen Ausschlusses
den Zugriff der einzelnen Threads auf gemeinsame Variablen regeln.