[Tech] OT - Programmazione C

Simone Piccardi piccardi@softwarelibero.org
Dom 22 Feb 2004 20:19:12 CET


On Sun, 2004-02-22 at 18:57, Marco Ermini wrote:
> > > memoria liberata non viene ritornata al sistema operativo. Qualcuno può
> > > dare più informazioni? 
> > No e` impossibile perche` i processi usano spazi degli indirizzi
> > completamente indipendenti (per i thread il discorso e` ovviamente
> > diverso, ma qui si parla di processi mi pare).
> 
> In Linux, thread e processi sono la stessa cosa (almeno fino a che non
> prenderà piede la nuova glibc della RedHat compatibile POSIX).
Beh, dipende parecchio da cosa intendi tu per la stessa cosa. 

Io una cosa (i thread, almeno quelli usati dai programmi attraverso la
libreria pthread, la attuale) che necessita di un altro thread a parte
per funzionare, che condivide lo stesso spazio di indirizzi invece di
avercelo completamente separato, proprio la stessa cosa di un processo
non la considero. 

E benche` nel 2.6 le differenze siano diminuite (dato che non c'e` piu`
bisogno di un thread a parte per gestire i thread in stile POSIX) il
fatto che in un caso lo spazio degli indirizzi sia condiviso e
nell'altro no resta, ed e` la cosa che li rende completamente diversi ed
il motivo per cui un processo non puo` allocare la memoria di un altro.

> > Non c'e` verso che un
> > processo possa allocare la memoria di un altro.
> 
> Il verso c'è, per esempio nel contesto di uno stesso process group
> (POSIX.1). Ma qui si entra un po' troppo nello specifico di quello che
> interessava a Valerio, anche perché Linux implementa ancora poco di POSIX.
I process group non c'entrano nulla con l'allocazione della memoria. In
genere servono alla shell per tenere insieme gli stessi processi
lanciati su una linea di comando (quelli concatenati da una pipe, per
intendersi) e potergli mandare dei segnali. Una trattazione si trova (ne
riapprofitto per farmi pubblicita` e per evitare di riscrivere le stesse
spiegazioni) su:
http://www.lilik.it/~mirko/gapil/gapilse32.html#x357-20100010.1

Non mi risulta affatto poi che Linux implementi poco di Posix. Posix 1
viene implementato in maniera sostanzialmente completa. Posix 2 riguarda
shell e comandi e non ci incastra un tubo col kernel. Del 1003.1c (i
thread) implementava quasi tutto gia` la vecchia libreria pthread, a
parte alcuni comportamenti coi segnali, cose comunque superate con la
NTPL. Quello meno implementato e` il 1003.1b per quanto riguarda i
semafori e le code di messaggi (in stile Posix e non SysV).

Comunque direi di lasciar perdere, non ho voglia di rimettermi a fare un
altro lungo flame, solo come tu stesso hai detto a qualcun'altro poco
fa:

"Per favore se non si è sicuri di cosa si parla non "spariamole" a caso
o per sentito dire."

Ciao
-- 
As.| Simone Piccardi - KeyID:2A972F9D - JabberID:simone@jabber.linux.it 
So.| http://firenze.linux.it/~piccardi  -  http://www.softwarelibero.it 
Li.| Prima ti ignorano, poi ti deridono, poi ti combattono.  Poi vinci. 
                                                           M. K. Ghandi
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        non disponibile
Tipo:        application/pgp-signature
Dimensione:  189 bytes
Descrizione: This is a digitally signed message part
URL:         <http://lists.linux.it/pipermail/flug-tech/attachments/20040222/b1cb9715/attachment.pgp>


Maggiori informazioni sulla lista flug-tech