Unix - What Is a Process in Unix?

In Unix and Unix-like operating systems, a process is an instance of a program that is currently being executed. When a command or application runs, the operating system creates a process to manage its execution, allocate resources, and track its state until it finishes.


Process Characteristics

Each process in Unix has several important attributes:

  • Process ID (PID): A unique number assigned by the kernel to identify the process

  • Parent Process ID (PPID): The PID of the process that created it

  • User and group ownership: Determines access permissions

  • Memory space: Includes code, data, heap, and stack

  • Execution state: Such as running, sleeping, or stopped

These attributes allow the kernel to manage multiple processes efficiently.


How Processes Are Created

Processes are typically created using the fork() system call, which creates a copy of the parent process. The child process may then execute a new program using exec(). This model enables Unix to support multitasking and concurrent execution.

Example:

ls

Running this command creates a process for ls, which executes and then terminates.


Process States

A process can exist in several states:

  • Running: Actively using the CPU

  • Sleeping: Waiting for I/O or an event

  • Stopped: Suspended (e.g., via Ctrl+Z)

  • Zombie: Finished execution but still has an entry in the process table

These states help the system schedule and manage processes properly.


Process Management Commands

Unix provides several commands to view and control processes:

  • ps – Displays process information

  • top / htop – Real-time process monitoring

  • kill – Sends signals to processes

  • nice / renice – Adjusts process priority


Importance of Processes

Processes are central to Unix operation, enabling multitasking, isolation, and efficient resource sharing. By managing processes effectively, Unix ensures stability, performance, and security across the entire system.