[ LUGOS ] Memory

Rok Papez rok.papez na kiss.uni-lj.si
Pon Avg 7 14:08:26 CEST 2000


Zivjo!

Sicer se bojim da letim ze off-topic, ampak zaupam moderatorju, da bo
urgiral, ce bo potrebno :-).

Ales Casar wrote:

> > S tem izves koliksen je najvecji blok pomnilnika, ki ga lahko alociras
> > z malloc() klicem, ni pa to enakovredno "uporabi" toliko in toliko
> > pomnilnika.
> 
> Tega se sicer zavedam, da ni nujno, da z vecimi manjsimi kosi ne bi slo
> morda alocirati vecje skupne kolicine pomnilnika

Nisem tako mislil, do tega ne more priti ker MMU preko tabele strani
za vsaki stran posebaj dodeli svoj okvir strani (poljubna preslikava)
in zato lahko "polni luknje".
Do tega pojava bi morda lahko prislo ob veliki fragmetaciji in veliki
porabi navideznega naslovnega prostora, ki je velikosti imho 1GB 
(oz. 2GB) pri 2.2.x in to za vsak process posebej.

Kar sem mislil povedati je, da lahko alociras precej velik blok in da
OS ne bo zanj takoj rezerviral fizicnega pomnilnika in/ali pomnilnika
na SWAP particiji ter bi tovrstna alokacija uspela ceprav bi morala
v resnici biti neuspesna. Je precej podobno Metodovi razlagi, le da je
on govoril o staticni jaz pa o dinamicni alokaciji.

Se ena "anomalija":
Pod OS/2 si lahko recimo alociral naslovni prostor in potem po potrebi
dodajal stran po stran navideznega pomnilnika.
Tako si recimo nepotratno lahko imel imeplementacijo malloc() heapa,
ki je bil po dolocenem casu naluknjan kot svicaraski sir in seveda tiste
luknje niso pobirale prostora niti na SWAPu.
Neke vrste alokacija/dealokacija naslovnega prostora, ne pa pomnilnika;
tega si dodajal/odstranjeval kasneje po potrebi in sicer za vsako stran
posebej.

> Ja, vem. Ampak Metod je razlagal, da nekateri OSi dodelijo procesom vec
> pomnilnika, kot imajo na razpolago *navideznega* pomnilnika, ce procesi
...
> kaj podobnega. Pa nikjer ni bilo tako.

Ce prav pomnim je Metod govoril o tem, da je naletel tudi ze na tovrstno
obnasanje in ne, da je to pogosti pojav.

lp,
Rok.




Dodatne informacije o seznamu Starilist