IBM® Informix® 12.10

Kontextwechsel

Das Umschalten von der Ausführung eines Threads zur Ausführung eines anderen durch einen virtuellen Prozessor wird als Kontextwechsel bezeichnet. Der Datenbankserver unterbricht einen aktiven Thread nicht von sich aus, wie dies das Betriebssystem mit einem Prozess tut, wenn eine bestimmte Zeitdauer (Zeitscheibe) abgelaufen ist. Vielmehr gibt ein Thread an einem der folgenden Punkte nach:

Wenn die erforderliche Verarbeitungsdauer zur Beendigung einer Task dazu führen würde, dass andere Threads übermäßig lange warten müssten, gibt ein Thread an einem vorbestimmten Punkt nach. Der Code für solche Tasks mit langer Ausführungszeit enthält an strategischen Punkten in der Verarbeitung Aufrufe an die Nachgebefunktion (yield). Wenn ein Thread eine dieser Tasks ausführt, gibt er nach, wenn er auf einen Nachgebefunktionsaufruf trifft. Andere Threads in der Warteschlange für bereite Threads erhalten so eine Möglichkeit zur Ausführung. Wenn der ursprüngliche Thread das nächste Mal wieder an die Reihe kommt, nimmt er die Ausführung des Codes unmittelbar hinter dem Aufruf an die Nachgebefunktion wieder auf. Vorbestimmte Aufrufe an die Nachgebefunktion geben dem Datenbankserver die Möglichkeit, Threads an Punkten zu unterbrechen, die für die Leistung am vorteilhaftesten sind.

Ein Thread gibt außerdem dann nach, wenn er seine Task nicht fortsetzen kann, bis eine bestimmte Bedingung eintritt. Zum Beispiel gibt ein Thread nach, wenn er auf die Ausführung einer Platten-E/A, auf Daten von einem Client oder auf eine Sperre bzw. andere Ressource wartet.

Wenn ein Thread nachgibt, speichert der virtuelle Prozessor den zugehörigen Kontext im Threadsteuerblock. Dann wählt der virtuelle Prozessor einen neuen Thread aus einer Warteschlange für bereite Threads zur Ausführung aus, lädt den Kontext des neuen Threads aus dem entsprechenden Threadsteuerblock und beginnt mit der Ausführung an der neuen Adresse im Programmbefehlszähler. Die folgende Abbildung veranschaulicht, wie ein virtueller Prozessor den Kontextwechsel vollzieht.
Abbildung 1. Kontextwechsel: Umschalten von einem Thread zu einem anderen durch den virtuellen Prozessor
Der Abschnitt, der dieser Abbildung vorausgeht, beschreibt den Inhalt der Abbildung.


Feedback | Beispielaustausch | Fehlerbehebung

Die PDF-Datei finden Sie unter Publications for the IBM Informix 12.10 family of products.
Releaseinformationen, Dokumentationshinweise und/oder Systeminformationen finden Sie auf der Seite Releaseinformationen.
Zeitmarke Freigabedatum: März 2013