Process Management in Operating Systems
Course Instructor : Dr. Reham El-Shamy
Teaching Assistant : Eng. Ahmed Reda
Prepared By : Arwa Nasser Abdelhamid
Code : 623247
1. Introduction
Operating systems are the backbone of modern computing devices, enabling hardware
and software to work together seamlessly. Among the most essential components of
any OS is process management, a subsystem responsible for handling all running
programs and coordinating their execution. Every task performed on a computer—
browsing the internet, running applications, playing videos, editing documents—relies on
process management to allocate CPU time, memory, I/O resources, and ensure stable
execution without crashes.
Process management ensures that the computer appears fast, responsive, and
multitasking-friendly. For example, when a user watches a YouTube video while
downloading a file and listening to music, the OS must manage all these tasks
simultaneously. This complex coordination happens through process creation,
scheduling, synchronization, communication, and termination.
This paper provides a deep, expanded, and highly detailed exploration of process
management in modern operating systems, including concepts, structures, algorithms,
communication models, synchronization, and real-world implementations in Linux and
Windows. The goal is to produce an academically strong reference suitable for
university-level submission.
2. Defining a Process
A process is an active, running instance of a program. While a program is a passive set
of instructions stored on disk, a process includes:
Loaded code into memory
Data and stack sections
Register values
Kernel resources
Open files
Threads
Permissions
Execution context
2.1 Programs vs. Processes (Expanded
Explanation)
A program becomes a process only when executed. For example:
Opening Google Chrome spawns multiple processes:
o Browser process
o GPU process
o Renderer processes
o Utility processes
Each acts independently, with its own memory space and permissions, ensuring both
performance and security.
This distinction is crucial because the OS doesn’t schedule programs—it schedules
processes.
3. Process States (Extended)
Every process transitions between states during its lifetime.
3.1 The Five Classic States
1. New: The process is being created by the OS.
2. Ready: Waiting for CPU allocation.
3. Running: CPU actively executes its instructions.
4. Waiting/Blocked: Waiting for I/O events or resource availability.
5. Terminated: Finished execution.
3.2 Advanced/Suspended States
Modern OSs add additional states:
Suspended Ready: In secondary memory (swapped out).
Suspended Blocked: Blocked + swapped.
Zombie: Process finished but PCB still exists.
Orphan: Parent terminated before child.
These extended states are especially important in Linux and Windows.
4. Process Control Block (PCB) – Deep
Structure
The Process Control Block is the "identity card" and "memory" of each process. It stores
all information needed to resume the process after a context switch.
4.1 Contents of a PCB (Extended List)
Process ID (PID)
Parent process ID
Process priority
Current state
CPU registers
Program counter
Memory boundaries
Page tables
Open file descriptors
I/O status information
Accounting information
Thread list (if multi-threaded)
Security credentials
Signal handling configurations
Without the PCB, multitasking would be impossible.
5. Process Operations (Deep Expansion)
5.1 Process Creation
Occurs through system calls such as:
fork() in Unix
CreateProcess() in Windows
Creation involves:
1. Allocating memory
2. Initializing PCB
3. Setting default priority
4. Inheriting resources from parent
5. Adding the process to ready queue
5.2 Process Termination
A process may terminate due to:
Successful completion
Unhandled exception
Access violation
Out-of-memory error
Manual user kill
OS resource protection
6. CPU Scheduling (Extended)
Modern computers run thousands of processes. CPU scheduling decides which one
gets CPU time.
6.1 Goals of Scheduling
Reduce waiting time
Maximize CPU utilization
Maximize throughput
Improve fairness
Minimize response time (important for user experience)
Meet real-time deadlines
7. CPU Scheduling Algorithms (Large
Expansion)
Below is an expanded discussion with examples.
7.1 FCFS Example
Processes arrive:
P1 (Burst=24), P2 (Burst=3), P3 (Burst=3)
P1 delays P2 and P3 → high waiting time.
7.2 SJF Example
Processes:
P1(6), P2(8), P3(7), P4(3)
Order: P4, P1, P3, P2
Reduces average waiting dramatically.
7.3 Preemptive vs Non-Preemptive Scheduling
Preemptive allows interrupting running processes
Non-preemptive lets processes run until completion
7.4 Priority Scheduling Expanded
Low-priority processes may starve indefinitely.
Aging gradually increases their priority to prevent starvation.
7.5 Round Robin (RR) Expanded
Quantum too small → too many context switches.
Quantum too large → behaves like FCFS.
RR is used in:
Linux
macOS
Android
Windows time-sharing
7.6 Multilevel Queue Scheduling
Queues:
System processes (highest priority)
Interactive tasks
Batch jobs
Background services
Each queue has its own algorithm.
7.7 Multilevel Feedback Queue (MLFQ)
The most advanced scheduling model in real OSs.
Processes can move up/down between queues based on behavior.
Used by:
BSD Unix
MacOS
Windows
Many Linux distros
8. Context Switching (Extended)
8.1 What Happens During a Context Switch?
1. Save current register values
2. Update PCB
3. Choose next process
4. Load next PCB
5. Restore registers
6. Jump to program counter
Context switch time is wasted CPU time → OS must minimize it.
9. Threads and Multithreading (Deep
Expansion)
9.1 Advantages of Threads
Faster communication
Lower overhead
Better CPU utilization
Useful in parallel programs
9.2 Types of Threads
User threads: Managed by user-level libraries
Kernel threads: Managed by OS kernel
10. Interprocess Communication (IPC) –
Big Section
10.1 Why IPC is Important
Processes must coordinate safely.
Example:
Browser process communicates with renderer process through IPC for security
reasons.
10.2 IPC Techniques Expanded
Pipes
Named Pipes
Shared Memory
Message Queues
Semaphores
Signals
Memory Mapped Files
Sockets
Shared memory is fastest but needs synchronization.
Message passing is simpler but slower.
11. Synchronization (Extended)
11.1 The Critical Section Problem
Any code accessing shared data must be protected.
Without it → race conditions.
11.2 Tools
Disabling interrupts (older systems)
Locks
Semaphores
Monitors
Spinlocks
Atomic operations
12. Deadlocks (Extended Large Section)
Deadlocks occur when processes form a cycle of resource requests.
12.1 Deadlock Example
P1 holds R1 needs R2
P2 holds R2 needs R1
12.2 Detection Algorithms
Resource allocation graph
Wait-for graph
12.3 Avoidance
Banker’s Algorithm
12.4 Recovery
Process termination
Resource preemption
13. Memory Management and Processes
(Large Expansion)
13.1 Paging
Allows non-contiguous memory allocation.
13.2 Segmentation
Divides memory into variable-size segments.
13.3 Demand Paging
Loads pages only when needed.
13.4 Thrashing
Too many page faults → CPU spends most time swapping.
14. Real-Time Processes
14.1 Types
Hard real time: Medical systems, autopilot
Soft real time: Streaming, gaming
14.2 Algorithms
Rate Monotonic
Earliest Deadline First
15. Case Study: Linux Process
Management (Large Expansion)
15.1 Process Model
Everything is a file
Uses fork() + exec()
Strong IPC support
15.2 Linux Scheduler (CFS)
The Completely Fair Scheduler distributes CPU time "fairly" based on virtual runtime.
15.3 Tools for Process Management
top
htop
ps
/proc filesystem
16. Case Study: Windows Process
Management (Large Expansion)
16.1 Key Characteristics
Thread-centric model
Strong security architecture
Process isolation
16.2 Windows Scheduling
Priority-based preemptive scheduler
32 priority levels
16.3 Process Objects
Job objects
Thread objects
Handle tables
17. Virtualization and Process
Management
Virtual machines add another layer of scheduling:
Hypervisor schedules virtual CPUs
Guest OS schedules processes
Host OS schedules threads
This creates multi-layer scheduling complexity.
18. Cloud Computing and Process
Management
Cloud systems run millions of isolated workloads.
Cloud scheduling considerations:
Latency
Fairness
Load balancing
Energy efficiency
Fault tolerance
19. Future Directions
AI-based schedulers
Energy-aware scheduling
Hybrid user-kernel threading
Process containers (Docker)
Serverless process execution
20. Conclusion
Process management remains a foundational discipline in operating systems. As
technology evolves—virtualization, cloud computing, AI—the complexity and importance
of efficient process control grow dramatically. A deep understanding of processes,
scheduling, synchronization, IPC, and deadlocks is crucial for students, developers, and
system designers.
21. References (Expanded - 10+
Sources)
1. Abraham Silberschatz, Peter Galvin, Greg Gagne – Operating System Concepts,
Wiley.
2. Andrew S. Tanenbaum, Herbert Bos – Modern Operating Systems, Pearson.
3. William Stallings – Operating Systems Internal Principles, Pearson.
4. Remzi Arpaci-Dusseau – Operating Systems: Three Easy Pieces.
5. Linux Kernel Documentation – [Link]
6. Microsoft Windows Internals – Mark Russinovich.
7. Maurice Herlihy – The Art of Multiprocessor Programming.
8. Intel CPU Architecture Manuals.
9. IBM Research Papers on Scheduling Algorithms.
10. ACM Digital Library – OS Process Management Papers.