Gibt es UNIX-Varianten oder andere Betriebssysteme, die Threads auf Benutzerebene für den Betriebssystemkernel sichtbar machen?

Gibt es UNIX-Varianten oder andere Betriebssysteme, die Threads auf Benutzerebene für den Betriebssystemkernel sichtbar machen?

Gibt es UNIX-Varianten oder andere Betriebssysteme, die Threads auf Benutzerebene für den Betriebssystemkernel sichtbar machen?

Antwort1

Ich glaube, Sie fragen, ob Benutzerthreads planbare Entitäten im Kernel sind. Ob der Benutzerthread für den Kernel „sichtbar“ ist, hängt von der Zuordnung zwischen Benutzer -> Kernel ab, die wiederum vom verwendeten Modell abhängt. Es gibt verschiedene Threading-Modelle -

  • mx1 – alle Benutzer-Threads werden einem Kernel-Thread zugeordnet
  • mxn – m Threads werden n Kernel-Threads zugeordnet.
  • 1x1 - 1 Benutzer-Thread wird 1 Kernel-Thread zugeordnet

[https://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf][1]für Informationen zu Threading-Modellen.

Das Standard-Threading-Modell unter Linux (<glibc 2.4)istLinuxThreadsdie 1x1 verwendete. Jeder Thread hat hier eine andere PID. LinuxThreads war nicht POSIX-kompatibel, daher wurde ein neues Threading-Modell implementiert -NPTL (man pthreads(7) for more info). InNPTL(1x1), alle Benutzer-Threads in einem Prozess haben dieselbe PID, aber eindeutige Thread-IDs. Diese können mit dem Flag -L in ps angezeigt werden.(man ps(1))

schöner Artikel über NPTL -- [https://www.redhat.com/whitepapers/developer/POSIX_Linux_Threading.pdf][2]

verwandte Informationen