Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - Datenbankadministration » Datenbank starten und Verbindung mit ihr herstellen » Datenbankserver betreiben » Einige allgemeine Optionen » Threads in SQL Anywhere

 

Aufgaben unter Unix

Unter Unix wird eine Aufgabe direkt auf einem Betriebssystem-Thread ausgeführt. Auf diesen Plattformen setzt der Wert der Option -gn die Anzahl der Betriebssystem-Threads, die beim Start des Datenbankservers erstellt werden, und alle Aufgaben werden von dieser Menge von Threads ausgeführt. Wenn ein Thread verfügbar wird, nimmt er die nächste verfügbare Aufgabe entgegen, die verarbeitet werden soll. Während der Verarbeitung einer Aufgabe bleibt der Thread der Aufgabe zugeordnet, bis sie abgeschlossen ist. Wenn eine Aufgabe aus irgendwelchen Gründen während der Verarbeitung blockiert (z.B. bei ausstehenden I/O-Vorgängen oder während des Wartens auf eine Sperre), gibt der Thread die Kontrolle über die CPU freiwillig an den Betriebssystem-Scheduler zurück, wodurch andere Threads auf dieser CPU ausführen können.

Zusätzlich zur freiwilligen Freigabe der CPU kann ein Thread auch durch den Betriebssystem-Scheduler abgezogen werden. Jedem Anwendungs-Thread in einem Prozess wird eine Reihe von Zeitscheiben zugeordnet, in denen er läuft und deren Dauer von seiner Priorität und anderen Systemfaktoren festgelegt wird. Wenn ein Thread das Ende seiner aktuellen Zeitscheibe erreicht, wird er vom Betriebssystem abgezogen, um zu einem späteren Zeitpunkt erneut eingesetzt zu werden. Der Betriebssystem-Scheduler wählt anschließend einen neuen Thread aus, der für die Dauer einer Zeitscheibe ausgeführt wird. Diese präventive Zeitplanung wirkt sich auf die Aufgabenverarbeitung nicht sichtbar aus - wenn ein Thread erneut zugeordnet wird, wird die Aufgabe an dem Punkt entgegengenommen, an dem die Verarbeitung unterbrochen wurde.

Wenn die Verarbeitung der aktiven Aufgabe abgeschlossen ist, überprüft der Thread, ob weitere Aufgaben zur Verarbeitung verfügbar sind. Wenn dies der Fall ist, nimmt er die nächste verfügbare Aufgabe entgegen und macht weiter. Wenn nicht, gibt er die CPU auf und wartet auf neue Aufgaben, die beim Datenbankserver eintreffen.

Siehe auch