Newsgroup: it.comp.os.os2
Titolo: [Forse OT]: differenze nel multithreading di Linux ed OS/2

Come da Oggetto.
Qualcuno me le sa spiegare?
Thanks

 Qualcuno me le sa spiegare?
Facile. In Linux non ci sono i thread.
:-)
-- 
ciao, Gabriele
[ 
http://www.quasarbbs.net/xwp
 ]
[ 
http://www.quasarbbs.net/ecsoft2/
 ]


i kenrel 2.4.x hanno i thread... ma non so come funzionino (efficienza) 
e qui programmi li usino.
-- 
ciao, Mirco.
[ 
http://hellspawn.dnsalias.net/~mircomir/
 ] [ Icq#:51640305 ]
[ 
http://www.quasarbbs.net/pido2/
 ]

 :-)
QUindi non si va' oltre la gestione dei TASK?
--

 Facile. In Linux non ci sono i thread.
io la sapevo cosi': i thread ci sono ma sono ridicoli... ogni thread ha un 
enviroment (memoria, semafori, risorse...) protetto l'uno dall'altro... Per 
cui comunicare tra 2 thread dello stesso processo e' praticamente 
impossibile... per cui i thread sembrano piu' dei task... in sostanza un 
multithreading di mer*a...
-- 
Ciao 
        /^\
       / - \ntonio
 -+- Internet: 
aarregh-at-libero.it
 -+- Team Os/2 Italia
 -+- Homepage: 
http://digilander.iol.it/arrex
 -+- Arrex/2... powered by eComStation... proud to be 100% Micro$oft free
--- ProNews/2 1.5 + eComStation 1.0
* Origin "Human Disasters: Hiroshima '45, Chernobyl '86, Windows '95

 multithreading di mer*a...
E' una cosa nota da tempo. Gli unix sono nati senza i thread e lentamente ci moriranno!
Il problema che se non si scrivono programmi troppo schifosi, con le 
macchine lampo che vendono adesso sarà sempre più dificile vedere (per 
un uso quotidiano e personale) differenze reali.
Ciao,
  Claudio

On Wed, 17 Jul 2002 23:26:28 UTC, Ermete <que...@non.funge> wrote:

Vado a memoria, ho letto qualcosa un po' di tempo fa.
Nella comunita' linux c'e' stata una lunga disputa riguardo a come implementare 
i thread
nel kernel di linux. Alla fine, erano state fatte molte proposte ma poiche' 
linus torwalds (spero di averlo scritto giusto) ha diritto di veto
sul kernel di linux, i thread sono stati implementati come voleva lui, cioe' con
un accrocchio.
In soldoni, la differenza tra un thread e un task, consiste pincipalmente in due
aspetti.
Il primo č che piu' thread lanciati dallo stesso task
condividono automaticamente la memoria tra di loro e con il task. 
Questo invece non avviene quando un task si
sdoppia in due o piu' task come avviene nei sistemi unix classici. In tal caso 
infatti ciascun task ottiene 
una copia della memoria del task originale dopodiche' ognuno lavora sulla 
propria copia,
e per poter condividere la memoria bisogna usare delle chiamate di sistema. 
Il secondo aspetto, che deriva dal primo, e' che per il sistema operativo e' 
molto
meno costoso creare e distruggere i thread, tanto č vero che questi vengono in 
genere considerati
risorse a basso costo nei linguaggi di programmazione ad alto livello.
Il primo aspetto e' particolarmente importante per il programmatore, perche' 
questi si trova a 
poter accedere direttamente alla memoria che č condivisa, senza dover usare 
complesse chiamate di 
sistema. 
In linux i thread rispettano il primo aspetto, perche' condividono la memoria, 
ma non la seconda.
Infatti, i thread non sono veri thread, ma sono in realta' task speciali ed e' 
poi il il kernel 
che si occupa di rendere condivisa la memoria (tra un task e i thread che questo
ha lanciato), in maniera trasparente per il programmatore.
Tuttavia, poiche' si tratta in realta' di task, il loro costo per il sistema e' 
comunque elevato.
-- 
  Gian Maria Romanato  
  (per scrivermi rimuovi "TRASH" dall'indirizzo email)

 E' una cosa nota da tempo. Gli unix sono nati senza i thread e lentamente ci moriranno!
 
Ecco appunto, si "copia" l'intero processo con relativo spreco di
risorse ma...
sapevo anche che con il kernel 2.4 i, in linux threads sono stati
implementati piu' seriamente.
--