2. Process Control Management

Threads

Ubuntu normally use the same internal representation for processes and threads. A thread can be defined as a new process that happens to share the same address space as its parent. A distinction is only made when a new thread is created by the clone system call.

• fork - creates a new process with its own entirely new process context .
• clone - creates a new process with its own identity, but that is allowed to share the data structures of its parent .

Using clone gives an application fine-grained control over exactly what is shared between two threads”

Process states

From the time a process is created with a fork until it has completed its job and disappears from the process table, it goes through like this many different states. The state a process is in changes many times during its "States." These changes can occur, for example, when the process makes a system call, it is someone else's turn to run, an interrupt occurs, or the process asks for a resource that is currently not available. ( L, Friedrich 2008)

In Ubuntu Operating systems Follows the following process states.

Ready - The process is competing for the processor or could be executed, but another process is currently being executed.

Execution - The process is active or running or being executed by processor.

Suspend - The process is waiting for an external event.

Stopped - The process has been suspended by an external process.

Zombie - The process has finished executed, but it is still references in the system.