Kennt sich einer da aus und kann einem leihen erklaeren was die unterschiede sind und wieso 1:1 bessere performance bietet als N:M, das sich wesentlich besser anhoert ;)
N:M erfordert einen weiteren Sheduler im Userspace um zu entscheiden, welcher Thread auf welchem Kernel-Thread läuft.
Aber das ist nicht der einzige Grund, schliesslich hatten auch die alten LinuxThreads ein Threadmodel, dass 1:1 war und waren deutlich schlechter/langsamer als NGPT.
ICh hab aber bisher immmer nur vergleiche der Startup-time und Creation-time gesehen.
Wie effizient das Shedulung der Threads ist läßt siche schwer messen und vergleichen.
schoenen GRuss MArtin
p.s.: Solaris setzt auch N:M mapping ein und fährt damit ganz gut.
Soweit ich weiss hatte Solaris ein M:N Threading Modell (allerdings wohl kein besonders gutes), sie sind aber wieder auf 1:1 zurueckgegangen. Der Hauptvorteil von 1:1 duerfte sein, dass es weitaus simpler zu implementieren ist.
FreeBSD versucht mit seinem KSE-Projekt ein ausserordentlich ambitioniertes M:N Threading Modell zu realisieren. Weil dies aber sehr komplex und dementsprechend aufwaendig ist, setzen sie fuer die Uebergangszeit auch auf 1:1. M:N sollte der Theorie nach das optimale sein. Einen kurzen Ueberblick zu den verschiedenen Threading Modellen findet man hier: http://www.aims.com.au/chris/kse/docbook/
Bei LWN gibts in der Hinsicht oft ziemlich gute Berichte (die ein Abo wert sind). Zu den Threads hatten sie kürzlich was: http://lwn.net/Articles/10710/
Der aktuelle 2.5er Kernel hat die nötige Unterstützung und glibc-2.3.2 stellt die nötigen Schnittstellen und Bibliotheken fuer den Userspace zur Verfügung, IIRC. Also wird das alles auch im 2.6er sein.
was mich an den bisherigen linux threads immer gestoert hat, war, dass man in ps oder top nicht zwischen mehreren threads oder prozessen mit gleichem namen unterscheiden konnte, bzw. dass jeder thread als eigener prozess auftauchte. wie ist das mit NGPT? kann mir da jemand weiterhelfen?
Von Christoph Bartoschek am Mi, 16. April 2003 um 20:46 #
RedHat 9 hat bereits NPTL für den normalen User gebracht.
Ein Test darauf zeigt, dass nur noch ein Prozess angezeigt wird auch wenn dieser aus 256 Threads besteht. (Mehr wollte mir das System nicht erlauben). Ps und top zeigen jeweils nur einen Eintrag.
Gibt es noch andere Präzidenzfälle, wo Entwickler ein grösseres und erfolgreiches Projekt zugunsten eines anderen eingestellt haben? Was wäre, wenn Gnome das tun würde zugunsten von KDE, bzw KDE zugunsten von Gnome?
Das setzt aber auch voraus, dass zwei projekte mehr oder weniger die selben Ziele verfolgen (und das selbe zielpublikum haben). Da gibt es aber zwischen KDE und Gnome doch einige Divergenzen. Bei zwei threading libraries ist das einfacher (zumal auch besser messbar).
Danke
http://www.linux-magazin.de/Artikel/ausgabe/2003/04/threads/threads.html
findest. Der gibt einen Einblick in die Thematik und weiterführende Links.
N:M erfordert einen weiteren Sheduler im Userspace um zu entscheiden, welcher
Thread auf welchem Kernel-Thread läuft.
Aber das ist nicht der einzige Grund, schliesslich hatten auch die
alten LinuxThreads ein Threadmodel, dass 1:1 war und waren deutlich
schlechter/langsamer als NGPT.
ICh hab aber bisher immmer nur vergleiche der Startup-time und
Creation-time gesehen.
Wie effizient das Shedulung der Threads ist läßt siche schwer messen
und vergleichen.
schoenen GRuss MArtin
p.s.: Solaris setzt auch N:M mapping ein und fährt damit ganz gut.
FreeBSD versucht mit seinem KSE-Projekt ein ausserordentlich ambitioniertes M:N Threading Modell zu realisieren. Weil dies aber sehr komplex und dementsprechend aufwaendig ist, setzen sie fuer die Uebergangszeit auch auf 1:1. M:N sollte der Theorie nach das optimale sein.
Einen kurzen Ueberblick zu den verschiedenen Threading Modellen findet man hier:
http://www.aims.com.au/chris/kse/docbook/
Uresh Vahalia's UNIX Internals: The New Frontiers
(Einfach bei Amazon "Uresh Vahalia" in der suche eingeben)
Absolute krass geil das Buch. Ich kann die 2dn Ed. kaum erwaren. Leider
warte ich schon seit ueber einem Jahr darauf.
ac
Dann gehe ich mal davon aus, dass die NGPT-Vertreter wissen was sich machen, wenn sie NPTL den Vorzug geben.
wie ist das mit NGPT? kann mir da jemand weiterhelfen?
matthias
Für NGPT ist das egal, das wird eingestellt.
vermutlich meinst du NPTL,
und da wird das IMHO nicht anders sein
(was top betrifft)
gruss Martin
vielleicht hilft dir "pstree -cap" weiter :)
bis denn
Ein Test darauf zeigt, dass nur noch ein Prozess angezeigt wird auch wenn dieser aus 256 Threads besteht. (Mehr wollte mir das System nicht erlauben). Ps und top zeigen jeweils nur einen Eintrag.
Christoph