Linux and Shell Programming

0 of 30 lessons complete (0%)

Module 5 Processes

Introduction to Process

Definition of a Process

A process in Unix is an instance of a running program. It represents the execution of a program in a specific state. It contains the program code and its current activity.

Process States (Running, Ready, Blocked)

  • Running State: A process is actively executing instructions on the CPU.
  • Ready State: A process is loaded into the main memory and is awaiting execution.
  • Blocked State (or Waiting State): A process is temporarily inactive, often because it’s waiting for some event (e.g., I/O operation completion).

Process Control Block (PCB)

The Process Control Block (PCB) is a data structure that contains information about a process in the operating system. It includes:

  • Process state
  • Program counter
  • CPU registers
  • CPU scheduling information
  • Memory management information
  • I/O status information
  • Accounting information
  • Unique Process ID (PID)

Process ID (PID)

A Process ID (PID) is a unique numerical identifier assigned to each running process in a Unix-like operating system. It helps the system keep track of and manage individual processes.

Parent and Child Processes

  • Parent Process: A process that creates another process (child process). The parent process may wait for the child process to terminate or continue its own execution.
  • Child Process: A process created by another process (parent process). It inherits attributes, file descriptors, and environment variables from its parent.

Process Hierarchy

Processes are organized in a hierarchical structure, often referred to as a process tree. The root of this tree is typically the init process with PID 1. Child processes are spawned by their parent processes, creating a parent-child relationship.

Commands and Explanations

1. ps Command:

  • The ps command is used to display information about active processes.
ps -ef
  • The option -e selects all processes, and -f provides full format listing.

2. top Command:

  • The top command provides a dynamic view of system processes, continuously updating in real-time.
top
  • It displays a list of active processes with details like PID, CPU usage, memory usage, etc.

3. pstree Command:

  • The pstree command displays the processes in a tree format, showing their hierarchical relationship.
pstree
  • This command provides a visual representation of the parent-child relationships among processes.

4. pgrep Command:

  • The pgrep command allows you to search for processes by their name.
pgrep <process-name>
  • It returns the PID(s) of processes that match the specified name.

5. pkill Command:

  • The pkill command is used to send signals to processes based on their name.
pkill <process-name>
  • This command sends a signal to all processes whose names match the specified pattern.

These commands and explanations should provide a practical understanding of the topics related to the introduction of processes.