Speichermanagement mit C
Andre Landwehr
andre.landwehr at gmx.net
Fri May 10 00:12:02 CEST 2002
On Sun, Apr 28, 2002 at 06:21:34PM +0200, Florian Lohoff wrote:
> speicherbereich fuer jeden prozess faengt bei "0" an - Dann wird ein
> program geladen und der "heap" pointer wird nach oben "geschoben". Immer
> um eine page (Siehe system call "brk" oder "break").
>
> D.g. der pointer geht auf 0x1000 - Der pointer wird aber nie nach
> untern geschoben - Dafuer gibt es keinen system-call. D.h. wenn du
> einmal in deinen "virtuellen" addressraum in deinem Task memory
> einblendest dann wird das nie wieder freigegeben - Ein prozess kann
> nur wachsen - niemals kleiner werden.
Diese Aussage hab ich glaub ich grade wiederlegt... ich hab einen
Prozeß, der (zumindest laut top) auch kleiner werden kann.
Laut "man top" ist:
SIZE The size of the task's code plus data plus stack
space, in kilobytes, is shown here.
RSS The total amount of physical memory used by the task,
in kilobytes, is shown here. For ELF processes used
library pages are counted here, for a.out processes
not.
Beide Werte wurden kleiner, direkt nachdem ich eine Menge Speicher
freigegeben hatte. Der betreffende Speicher ist der zuletzt
allokierte gewesen, der vermutlich also am oberen Ende lag. Hab
ich mal wieder einen Denkfehler oder können neuere Kernels und
libc's das jetzt?
Andre
--
/"\
\ /
X ASCII Ribbon campaign against HTML E-Mail
/ \
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 232 bytes
Desc: not available
URL: <http://lug-owl.de/pipermail/linux/attachments/20020510/bd273fdb/attachment.sig>
More information about the Linux
mailing list