malloc & free
Libor Chocholaty
libor_ml1 na mts.cz
Pondělí Leden 30 15:21:52 CET 2006
Jiri Kosina wrote:
>On Mon, 30 Jan 2006, Dalibor Straka wrote:
>
>
>
>>>tych 500 mega chces v jednom bloku? mozno nemas volnych 500 mega v kuse...
>>>
>>>
>>Kernel by mel pridelit 500MB z virtualni pameti a jak si ji rozstrankuje
>>a rozhaze je interni zalezitost.
>>
>>
>
>To sice ano, ale pokud virtualni adresni prostor procesu je fragmentovany
>tak, ze v nem neni zadny souvisly blok pozadovane velikosti, tak se neda
>nic moc delat, i presto ze v souctu je volne pameti jeste dostatek.
>
>
Mam pocit, ze proces od kernelu muze pamet jen dostat nikoli vratit. Na
to by melo slouzit volani brk(2). Programu pak malloc dava pozadovanou
pamet z pameti alokovane procesu. Kdyz si ji proces prilis rozseka
(fragmentace) nezbyva nez aby malloc(3) pozadal kernel o dalsi kus
pameti pomoci brk(2). Pokud pozadovany kusanec je k dispozici a
nepresahne limit procesu, tak ji dostane, v ostatnich pripadech...
man brk
man malloc
Libor
Další informace o konferenci Linux