Source: http://www.cs.miami.edu
What is the process state in Unix?
This is a small experiment to show the life cycle of a Unix process. A Unix process is created in the idle state and is then moved between ready to run, running, and possibly waiting (or sleeping) , until it exits and becomes a zombie. Once a process, usually the parent process, reaps the exit status of the zombie, then the process is destroyed.
As a process executes it changes state according to its circumstances. Unix processes have the following states:
Running: The process is either running or it is ready to run.
Waiting: The process is waiting for an event or for a resource.
Stopped: The process has been stopped, usually by receiving a signal.
Zombie: The process is dead but has not been removed from the process table.
What is a zombie?
When a program forks and the child finishes before the parent, the kernel still keeps some of its information about the child in case the parent might need it – for example, the parent may need to check the child’s exit status. To be able to get this information, the parent calls `wait ()’; In the interval between the child terminating and the parent calling `wait ()’, the child is said to be a `zombie’ (If you do `ps’, the child will have a `Z’ in its status field to indicate this.)
How can a parent and child process communicate?
A parent and child can communicate through any of the normal inter-process communication schemes (pipes, sockets, message queues, shared memory), but also have some special ways to communicate that take advantage of their relationship as a parent and child. One of the most obvious is that the parent can get the exit status of the child.
write your view on this topic in the comment box!