uvolneni pameti funkci free?

Jan Kasprzak kas na informatics.muni.cz
Pondělí Březen 2 22:13:00 CET 1998


Vojtech Bubnik pise:
: 
: zajimala by me strategie uvolnovani pameti knihovni funkci free.
: Pripada mi, ze kdyz alokuju pamet a pak ji zpetne dealokuju, 
: libc ji linuxu nevrati, coz me docela otravilo :-)

	No, ono to v podstate ani moc jinak nejde (resp. jde, ale
ne kazdy malloc() to tak dela). Operacni system muze pridelovat
pamet pomoci brk(2)/sbrk(2), ale potom nejde uvolnit pamet
"zprostredka" datoveho segmentu. Takto funguje vetsina malloc()u
a v drtive vetsine pripadu free() skutecne nevraci pamet systemu.
Jeste je mozne alokovat pamet pres mmap("/dev/zero") resp. pres
anonymni mmap() - pak jde vracet pamet po takovychto mapovanych kouscich.
Nejsem si jist, kterou z metod pouziva GNU malloc (resp malloc v X11).
Kazdopadne ale operacni system umi pridelovat pamet pouze po celych
strankach.

: Pokud opravdu nevraci pamet linuxu, potom by me zajimalo nejake
: srovnani efektivity, jak se s touto dealokovanou pameti vyporada
: swap, tedy jak efektivne se odswapuje ta pamet, kterou proces nepouziva.

	Rekl bych, ze se odswapuje az tehdy, az se zacne skutecne
strankovat (to jest, pokud mate dostatek pameti, tak vam takovato volna
stranka strasi v operacni pameti porad). Vicemene se s tim neda
nic moc delat.

-Yenya

--
\ Jan "Yenya" Kasprzak <kas at fi.muni.cz>       http://www.fi.muni.cz/~kas/
\\ PGP: finger kas at aisa.fi.muni.cz   0D99A7FB206605D7 8B35FCDE05B18A5E //
\\\             Czech Linux Homepage:  http://www.linux.cz/              ///
/// The people who deserve to be flamed are digital who on the altavista \\\
//news page claim the entire project ran on 200 Alphas running NT, welcome\\
/ to the world of lies, half truths and microsoft.              --Alan Cox \



Další informace o konferenci Linux