What are the process state in Unix ?


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!

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

close button