[ LUGOS ] Dinamicna alokacija

Igor Zaverski igor.zaverski na izum.si
Pon Maj 25 09:43:24 CEST 1998


Jernej Kovse wrote:

> Ko v C++ veckrat dinamicno alociram pomnilnik z new, mi
> program javi failed to allocate virtual memory by new,
> od tod sklepam, da program ne more vec alocirati dinamicnega

Koliko pa alociras?Ali alociras vec enako velikih paketov ali pa je
kaksen ekstremno velik?
Se ti mogoce program ne zazanka, medtem ko neprenehoma klice new, nikoli
pa delete?
Ali imas dovolj veliki SWAP?

> pomnilnika, ki mu ga kernel da na voljo. Lahko torej
> segment pomnilnika, ki je na voljo za dinamicno alokacijo
> (z new v C++ oz z malloc v C) kako povecam. Mogoce kdo
> ve kako to naredim na vms?

Kolikor vem, je virtualni spomin linearen in ne segmenten. Omejitev je
le RAM+SWAP.Na VMS-u sta na nivoju OS-a najpomembnejsa sistemska servisa
$CRETVA (Create Virtual Address Space) in $EXPREG (Expand
Program/Control Region), ki skrbita za alokacijo spomina. Vendar new ali
malloc sama kliceta te servise, tako da ti zato ni treba skrbeti.
Na VMS-u si se omejen s quoto (Paging file quota). Poglej, ce je dovolj
velika:
  $ SHOW PROCESS/QUOTA

> Aja, pa se to, ne samo Linux, tudi FreeBSD mi dela podobne
> tezave.
>
> Jernej

   L.P.        IgorZ




Dodatne informacije o seznamu Starilist