[Tech] OT - Programmazione C

Simone Piccardi piccardi@softwarelibero.org
Dom 22 Feb 2004 13:07:54 CET


On Sun, 2004-02-22 at 09:33, Franco Bagnoli wrote:
> On Sat, 21 Feb 2004, Marco Ermini wrote:
> 
> > Peccato che in un ambiente multi-tasking un'altro processo potrebbe aver
> > allocato la ram appena liberata da te...
> 
> questo mi sembrava non fosse possibile, appunto per quella storia che la 
> 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). Non c'e` verso che un
processo possa allocare la memoria di un altro.

Ciascuno usa la memoria per i cavoli suoi, alla mappatura sulla RAM
fisica disponibile ci pensa il sistema della virtual memory del kernel.
Una volta che un processo si e` fatto assegnare delle pagine (con brk)
quelle restano sue (al limite vengono swappate) e nessun altro processo
ci andra` a scrivere sopra, al piu` quando il kernel esegue uno swap di
quelle pagine e assegna la memoria su cui erano mappate alle pagine di
un altro processo, questo ci potra` trovare quello che c'era prima
(motivo per cui si dovrebbe usare mlock in casi come questi.)

Consiglio una lettura del manuale delle glibc (info libc) oppure, tanto
per farmi un po' di pubblicita', questo:

http://www.lilik.it/~mirko/gapil/gapilse4.html#x33-270002.2

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/acfe4237/attachment.pgp>


Maggiori informazioni sulla lista flug-tech