Ich habe eine Frage bezüglich Pthread-Implementierung unter Linux.Wie sind Pthreads auf Linux von Scheduler gesehen
Angenommen, ein Prozess hat 5 Threads. Nun, wie sieht der Scheduler diese Threads (oder sieht überhaupt nicht). z.B. Wenn der Scheduler aufgerufen wird, plant er nur den Hauptprozess, , und dann ist es die Aufgabe des Hauptprozesses, zwischen jedem seiner Threads zu planen.
Oder ist es die andere Möglichkeit, dass Scheduler jeden Thread so plant, als ob es ein separater Prozess ist.
In diesem Fall muss der Prozess, der die Threads erstellt hat, kontextgesteuert sein. Ist es so? –
@Ganesh nicht unbedingt. Der neue Thread könnte auf einem anderen Kern ausgeführt werden. Aber ja, bei einem gegebenen Kernwechsel von einem Thread zum anderen, ob im selben Prozess oder nicht, entsteht ein Kontextwechsel. Das Wechseln zu einem Thread im selben Prozess ist möglicherweise günstiger als das Wechseln zu einem Thread in einem anderen Prozess, da Sie die Seitentabelle u. U. nicht ungültig machen müssen. –