[LUGOS-PROG] Pomnilnik

Domen Puncer domen at coderock.org
Thu Sep 22 19:49:27 CEST 2005


On 22/09/05 12:06 +0200, Ales Casar wrote:
> On Mon, 19 Sep 2005, Domen Puncer wrote:
> 
> > V Linuxu imajo procesi 3 GB naslovni prostor (s 4/4 split kernel patchem
> > tudi 4 GB). Glede na to, da je sizeof(void*) == 4, kaj dosti vec ne more
> > biti neposredno dostopnega.
> 
> Od tukaj obravnmavanih arhitektur velja to samo za i386, ne pa tudi za
> x86_64 in alpha. Sicer pa za ta del sem vedel.

Aha, za 32-bitne (IOW. sizeof(void*) == 4) arhitekture.

> 
> > Ce te je pa zanimalo kako lahko tvoj program zasede vec, kot imas
> > virtualnega pomnilnika; je pa to zato, ker tisti pomnilnik se ni
> > "zaseden". Na vsako stran napisi kaj, pa ne bos prisel dlje od realne
> > velikosti.
> 
> Hmm, to je pa zdaj malo cudno. Ce ti malloc uspesno vrne nek pomnilnik, je
> tisti pomnilnik tvoj in lahko zz njim pocnes kar hoces. Kaj se bo zgodilo
> potem, ce ga bo zmanjkalo nekje sredi tvojega pisanja po njem?

OOM ;-)
Ja, po moji interpretaciji je nazalost prevec buggy programov, in je to
uspesno.


> 
> > Mislim da se to obnasanje da nastaviti z /proc/sys/vm/overcommit*
> 
> Sem malo pogledal to. Nenavadno. Se vedno pa ne vem, od kod tisti omejitvi
> okrog 500 GB na x86_64 in 4 TB na alpha. In zakaj se z vecimi malloci da
> zaseci vec (tudi 1000x vec) prostora kot z enim mallocom?

Umm... brez idej.
poslji na lkml (linux-kernel at vger.kernel.org), in opisi prakticni primer
za katerega ne dela?



More information about the lugos-prog mailing list