IBM REDP-4285-00 User Manual

Page of 170
4285ch01.fm
Draft Document for Review May 4, 2007 11:35 am
8
 
Linux Performance and Tuning Guidelines
Zombie processes
When a process has already terminated, having received a signal to do so, it normally takes 
some time to finish all tasks (such as closing open files) before ending itself. In that normally 
very short time frame, the process is a 
zombie
After the process has completed all of these shutdown tasks, it reports to the parent process 
that it is about to terminate. Sometimes, a zombie process is unable to terminate itself, in 
which case it shows a status of Z (zombie).
It is not possible to kill such a process with the kill command, because it is already 
considered “dead.” If you cannot get rid of a zombie, you can kill the parent process and then 
the zombie disappears as well. However, if the parent process is the init process, you should 
not kill it. The init process is a very important process and therefore a reboot may be needed 
to get rid of the zombie process.
1.1.8  Process memory segments
A process uses its own memory area to perform work. The work varies depending on the 
situation and process usage. A process can have different workload characteristics and 
different data size requirements. The process has to handle any of varying data sizes. To 
satisfy this requirement, the Linux kernel uses a dynamic memory allocation mechanism for 
each process. The process memory allocation structure is shown in Figure 1-7.
Figure 1-7   Process address space
The process memory area consist of these segments
򐂰
Text segment
The area where executable code is stored.
Text
Executable instruction (Read-only
Data
Initialized data
BSS
Zero-ininitialized data
Heap
Dynamic memory allocation 
by malloc()
Stack
Local variables
Function parameters, 
Return address etc.
Text
segment
Data
segment
Stack
segment
Process address space
Heap
segment
0x0000