[ LUGOS ] Memory

Metod Kozelj metod.kozelj na rzs-hm.si
Pon Avg 7 13:37:42 CEST 2000


Howdy!

On Mon, 7 Aug 2000, Ales Casar wrote:

> > Marsikateri pametnejsi OSi ti pravzaprav sploh ne dodelij pomnilnika
> > dokler ne opravis dostopa do njega, malloc() ti v tem primeru samo
> > rezervira obmocje navideznega pomnilnika, ki se napolni z fizicnim
> > pomnilnikom sele ko opravis prvi dostop do njega. 
> 
> Ja, vem. Ampak Metod je razlagal, da nekateri OSi dodelijo procesom vec
> pomnilnika, kot imajo na razpolago *navideznega* pomnilnika, ce procesi
> pomnilnika dejansko ne potrebujejo toliko.

Ne ne, malce drugace. Pri meni mi 'ulimit -a' vrne tudi 
virtual memory (kbytes)  9007199254773759
kar je daaalec vec, kot je na masini virtualnega pomnilnika
(126128+374944k). Kolikor pa jaz vem, lahko mallociras (kot user)
pomnilnika do tiste vrednosti ulimit (vsaj za stack size pa core size to
velja). Potem pa imas probleme izkoristiti ves ta pomnilnik, ce swapa
zmanjka.

Se en primer: recimo, da z xwave editiram en zelo velik wav fajl (recimo
cez 100Mb dolg) in delam razne operacije. Naceloma jih dela v pomnilniku.
In se recimo zapolni RAM+swap. In imam (slucajno :-) na voljo se eno swap
particijo. In jo vklopim (seveda to traja, ob skrajno neodzivni masini,
par minut). In glej ga zlomka, program zacne (kolikor toliko) normalno
delovati naprej in veselo porabljati dodatni swap. Kar, po moji laicni
razlagi, pomeni, da je malloc dovolil alocirati prevec pomnilnika, ko pa
ga je program zacel uporabljati, pa je malo zaskripalo. Pac v skaldu z
Rokovo trditvijo.

Peace!
  Mkx

---- perl -e 'print $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'




Dodatne informacije o seznamu Starilist