LinuxLudus: Memoria virtuale: dubbio su "free"

Davide Benini dbenini@gmail.com
Gio 30 Ago 2007 21:18:46 CEST


On 25/08/2007, Valerio Pachera <sirio81@gmail.com> wrote:
> Leggevo prima l'articolo sulla memoria virtuale di linux&Co.
>
> Partiamo dalla frase "La memoria virtuale non è 'un modo per credere
> di avere più RAM di quanta se ne possieda', come spesso si dice, ma un
> modo per costruire i 4 GB di indirizzamento di un programma a proprio
> piacimento..."
La memoria virtuale è _anche_ un modo per far credere a un processo di
avere più RAM a disposizione di quanta realmente se ne possieda.

> Correggetemi se sbaglio: i processori x86 a 32 bit supportano
> nativamento fino ad un  massimo di 4Gb di RAM.
> Se ho 4 giga di RAM, 1 è usato dal kernel e non dai programmi "user space".
Su una macchina x86 a 32 bit, indipendentemente dal fatto che tu abbia
a disposizione 4GB di RAM o meno, lo spazio di indirizzamento di ogni
_processo_, che è isolato da quello degli altri, è di 4GB, di cui 1 è
assegnato al kernel. Alcuni kernel (come ad esempio il kernel RHEL
hugemem) supportano il "4GB/4GB split" che permette di avere 4GB per
il kernel e (quasi) 4GB anche per i processi in user space.

> Secondo voi, se ho una macchina con 4Gb di ram installati, un kernel
> con il supporto per i 4gb attivo, il comando "free" mostra 3 o 4 giga
> di RAM?
Eccoti accontentato:
[dbenini@localhost ~]$ free
             total       used       free     shared    buffers     cached
Mem:       4147776    4131856      15920          0      84868    3843732
-/+ buffers/cache:     203256    3944520
Swap:      2031608        212    2031396


Ciao,

-- db --


Maggiori informazioni sulla lista linuxludus