Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
What is process creation in Operating Systems?
Process creation is a fundamental mechanism in operating systems where an existing process creates one or more new processes during execution. The creating process is called the parent process, and the newly created processes are called child processes.
Each process in the system can create multiple child processes, forming a hierarchical tree structure. Every process is identified by a unique process identifier (PID), which is typically an integer number assigned by the operating system.
How Process Creation Works
Resource Allocation
When a process creates a child process, there are different strategies for resource allocation −
Direct allocation − Child processes obtain resources directly from the operating system
Resource sharing − Child processes share some resources with the parent process
Resource partitioning − Parent process divides its resources among all its children
Restricting child processes to a subset of the parent's resources prevents any process from overloading the system by creating too many sub-processes.
Execution Models
When a process creates a new process, there are two execution possibilities −
| Execution Model | Description | Use Case |
|---|---|---|
| Concurrent Execution | Parent continues executing alongside children | Parallel processing, servers |
| Wait for Children | Parent waits until some or all children terminate | Sequential tasks, dependency chains |
Address Space Models
There are two address space possibilities for new processes −
| Address Space Model | Description | Example |
|---|---|---|
| Duplicate Process | Child is an exact copy of the parent process | Unix fork() system call |
| New Program | Child has a completely new program loaded | Unix exec() after fork()
|
Common System Calls
Operating systems provide specific system calls for process creation −
// Unix/Linux example
pid_t pid = fork(); // Create child process
if (pid == 0) {
// Child process code
exec("new_program");
} else if (pid > 0) {
// Parent process code
wait(&status); // Wait for child
}
Conclusion
Process creation enables multitasking and concurrent execution in operating systems through hierarchical parent-child relationships. The flexibility in resource allocation and execution models allows systems to efficiently manage multiple processes while preventing resource exhaustion through controlled process creation mechanisms.
