[linux-l] Java Thread vs. c fork

Jan-Benedict Glaw jbglaw at lug-owl.de
Di Okt 21 07:22:59 CEST 2003


On Tue, 2003-10-21 14:32:40 +1000, Peter Ross <Peter.Ross at alumni.tu-berlin.de>
wrote in message <20031021142514.R622 at guckloch.zuhause>:
> On Mon, 20 Oct 2003, Jan-Benedict Glaw wrote:

> Ich habe so ganz grob gehoert, dass Linux 2.4 _im Kernel_ bei Threads den
> gleichen Aufwand wie fuer Prozesse betreibt, und das waere wirklich nicht
> so toll.

Das ist quasi richtig. Vor allem kommt das aber daher, daß alle
verfügbaren Thread-Libraries threads via clone() abbilden. Das macht
(für die Thread-Lib) am wenigsten Arbeit, da man den Großteil des
Thread-Management dem Kernel (in Form von Prozeß-Management) machen
lassen kann.

Es ist sicherlich nicht allzu schwierig, daß anders zu machen. Letztlich
mußt Du nur jedesmal, wenn ein Thread erzeugt werden soll, einen neuen
Stack anlegen. (Darum geht's ja eigentlich:) Jedesmal, wenn Du die
Kontrolle abgeben willst, mußt Du einen neuen Stack anspringen. Wenn Du
das selbst machst, verlierst Du eine ganze Menge an Overhead: kein
Scheduling mehr im Kernel (-> spart mindestens 2mal den Übergang von
Userspace zu Kernel-Space und zurück), mutexes und conditions müssen
nicht mehr über Signale abgebildet werden (selbes Problem), ...

MfG, JBG

-- 
   Jan-Benedict Glaw       jbglaw at lug-owl.de    . +49-172-7608481
   "Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur | Gegen Krieg
    fuer einen Freien Staat voll Freier Bürger" | im Internet! |   im Irak!
   ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: nicht verfügbar
URL         : <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/20031021/327acb5d/attachment.sig>


Mehr Informationen über die Mailingliste linux-l