LAM/MPI logo

LAM/MPI General User's Mailing List Archives

  |   Home   |   Download   |   Documentation   |   FAQ   |   all just in this list

From: Neil Storer (Neil.Storer_at_[hidden])
Date: 2004-03-16 08:50:12


Thomas,

When a process terminates, the memory (Heap, Stack and program) that it used is
released back to the Operating System. If the OS does not then re-use that
space, there is a bug in the OS.

A "memory leak" usually refers to a program that continually grabs memory as it
runs and does not free this memory up. (e.g. a call to 'malloc' inside a loop
without a corresponding call to 'free'). But even then, the OS will re-use the
memory when the program terminates.

However, if the program uses interprocess communication routines (shmctl, shmget
etc.) it may be that the shared-memory segments used are not released, when the
program terminates - especially if the program does not call "shmctl" with the
IPC_RMID command. See the MAN pages for ipcs and ipcrm to see how you can spot
these shared memory segments.

Hope this helps

Regards

-- 
+-----------------+---------------------------------+------------------+
| Neil Storer     |    Head: Systems S/W Section    | Operations Dept. |
+-----------------+---------------------------------+------------------+
| ECMWF,          | email: neil.storer_at_[hidden]    |    //=\\  //=\\  |
| Shinfield Park, | Tel:   (+44 118) 9499353        |   //   \\//   \\ |
| Reading,        |        (+44 118) 9499000 x 2353 | ECMWF            |
| Berkshire,      | Fax:   (+44 118) 9869450        | ECMWF            |
| RG2 9AX,        |                                 |   \\   //\\   // |
| UK              | URL:   http://www.ecmwf.int/    |    \\=//  \\=//  |
+--+--------------+---------------------------------+----------------+-+
    | ECMWF is the European Centre for Medium-Range Weather Forecasts |
    +-----------------------------------------------------------------+