Petru Paler wrote:
> Dorin Lazar wrote:
> 
>>> De ce ? Nu sunt implementate kernel threads ?
>>       Nope. Firele is tot procese. Shi clone nu e suficient.
> De ce?

Practic threadurile dintr-un proces trebuie sa imparta toate datele, 
open files, etc, _cu exeptia stivei_ -- fiecare thread trebuie sa aiba 
stiva proprie.  Daca vrei. cam asta ar fi the "minimal context of 
execution".  Iar accesul la datele din procesul respectiv ce ar putea fi 
folosite de mai multe threaduri se 'modereaza' cu lock-uri.

OS-ul trebuie sa vada tot un singur proces acolo, indiferent de numarul 
de threaduri din el, pentru ca de fapt sunt mai multe bucati de cod -- 
parte din acelas proces -- care opereaza in paralel pe datele acelui 
proces.  Sau cel putin, asta spune teoria.  clone() se apropie de 
chestia asta cu flagurile potrivite.  But it's not quite there yet.

>> Firele ar trebuia sa aiba un singur PID,
> De ce?

See above.  Plus, apar chestii interesante de genul celor discutate aci:
http://security-archive.merton.ox.ac.uk/security-audit-199808/0105.html

>> ori asta nu se poate la Linuxa.
> Ba da, vezi CLONE_PID. Dar nu e sanatos la stomac :)

Ce anume, sa folosesti CLONE_PID?  Why?

>> Maparea firelor 1:n/1:1 e tot mapare.
> Nu-ti inteleg argumentul. Cum ai vrea sa fie?

Daca cele N fire din user-space se mapeaza pe 1 fir kernel sau M fire 
kernel nu e foarte relevant din punctul de vedere al aplicatiei.  Poate 
influenta viteza, etc, dar nu modifica in nici un fel modul in care 
aplicatia foloseste threadurile.  Cred ca teoretic chestia asta ar 
trebui sa fie complet transparenta.

> Petru

-silent

---
Pentru dezabonare, trimiteti mail la 
[EMAIL PROTECTED] cu subiectul 'unsubscribe rlug'.
REGULI, arhive si alte informatii: http://www.lug.ro/mlist/


Raspunde prin e-mail lui