Modern operating systems are designed to handle multiple tasks efficiently while maintaining good performance and responsiveness. These are mainly achieved through processes and threads.
Process is the Independent program with its own memory
Thread is small unit of a process sharing same memory
Process
Process is a program that is currently in execution within an operating system. It operates in an independent environment and is managed by the OS for proper scheduling and execution. Processes form the basis of program execution in a multitasking system. Its Properties are:
Each process has a unique Process ID (PID) for identification.
Every process moves through different states such as new, ready, running, waiting, and terminated.
Thread is a smallest unit of execution within a process. It enables a program to perform multiple tasks concurrently while sharing the same memory and resources. Threads improve application performance and responsiveness in multitasking environments. Its properties are:
Each thread has its own Thread ID (TID) for identification.
A thread also moves through states such as new, runnable, running, waiting, and terminated.
Threads within the same process share memory and resources, enabling faster communication.
Context switching can occur between threads to allow multiple tasks to execute efficiently.
Units of Execution: Both are execution units within an operating system and are part of process management.
OS Scheduling & Preemption: Both are scheduled by the operating system for fair CPU allocation, and can be preempted for multitasking.
Own Execution Context: Each has its own execution context, including program counter, CPU registers, and stack space.
Creation During Runtime: Both can create child entities during their execution lifecycle.
Communication & Resource Release: Both can communicate using IPC mechanisms, and upon termination, their allocated resources are released back to the operating system