> Ai idee daca clone() printre altele copie segmentul de date cum face > fork() ?
Nu e vorba doar de segmentul de date, e vorba de tot struct mm_struct din task_struct (tabele de pagini, etc). Daca la clone() ii spui clone(CLONE_VM) procesul nou creat de clone foloseste vechiul mm_struct in task_struct-ul propriu, nu copiaza nimic. In treacat fie spus, fork() nu copiaza segmentul de date. Mapeaza in spatiul noului proces aceleasi pagini si le protejeaza la scriere. Cand un proces scrie in segmentul de date si se produce un page-fault (din cauza permisiunilor), abia atunci se copiaza pagina respectiva. Mecanismul asta se cheama copy-on-write (COW). > Dezavantaje ale modelului 1:1 sunt metionate de Xavier Leroi in > LinuxThreads FAQ > <http://pauillac.inria.fr/~xleroy/linuxthreads/faq.html>, e vorba in > principiu de incompatibilitati cu standardul POSIX Threads care nu > por fi rezolvate cu actualul suport din partea kenelului. Cum > probabil stii OK, cu asta sunt de acord. Ca sa citez (din memorie, de pe lkml) "POSIX threads suck" :) > Vreau sa intelegi ca *nu* bat moneda pe Linux Thread Model sucks, ci doar ca > se poate si mai bine :) . Grrr :) > Ionut Matei --- Pentru dezabonare, trimiteti mail la [EMAIL PROTECTED] cu subiectul 'unsubscribe rlug'. REGULI, arhive si alte informatii: http://www.lug.ro/mlist/
