Limite di memoria di un singolo programma e mmap

1

Se uno ha una macchina a 32 bit, un singolo programma non può indirizzare più di 2 ^ 32 byte o 4 GB. Fare uso di mmap () consente di superare il limite di 4 GB?

    
posta Tosh 12.05.2015 - 00:57
fonte

1 risposta

3

No, non puoi mai superare 4GiB di memoria indirizzabile simultaneamente per un binario a 32 bit. Di solito, il kernel prende la metà e si rimane con utente 2GiB. Alcuni kernel supportano una divisione di compromesso di 1GiB / 3GiB.

Tuttavia, è possibile chiedere al sistema operativo di mappare in memoria diverse porzioni di un file in momenti diversi, essenzialmente eseguendo il multiplexing temporale dello spazio di indirizzi disponibile. IMHO, a quel punto potresti anche non mappare la memoria e solo read() dal file in buffer.

    
risposta data 12.05.2015 - 02:03
fonte

Leggi altre domande sui tag