Threads & Processes:
A thread is a single sequence stream within a process. Because of some properties of processes, they are called lightweight processes. In a process, threads allow multiple executions of the streams. The CPU switches rapidly back and forth among the threads giving illusions that the threads are running in parallel. Like, a traditional process i.e., a process with one thread, a thread can be in any of several states(running, blocked, ready, or terminated). Each thread has its stack. since threads generally call different procedures and thus a different execution. This is why the thread needs its stack.
In an operating system that has a thread facility, the basic unit of CPU utilization is a thread. Threads are executed one after another thread has different states. It has a program counter, register set stack space. Threads are not independent of each other as they share the code, data, OS resources, etc.
In a thread-based operating system, a process consists of an address space and one or more threads. Each thread of a process has its program counter, register states, and stack. But all threads of a single process share the same address space.
Now let's explore each concept:
|A thread is the smallest unit of execution within a process.
|A process is an independent program in execution. It has its own memory space, resources, and a unique process identifier (PID).
|In a multi-threaded environment, a process can have multiple threads, each running concurrently.
|Each process typically runs in its own address space, isolated from other processes, providing memory protection.
|Threads within a process share the same resources, such as memory space, but have their own program counter, register set, and stack.
|Processes can contain one or multiple threads. A single-threaded process has only one thread of execution, while a multi-threaded process has multiple threads working together.
|Multi-threading allows for parallel execution of tasks within a process, potentially improving performance on multi-core processors.
|Processes are managed by the operating system's process scheduler, which allocates CPU time and resources to each process.
In summary, a process is a self-contained unit of execution with its own memory and resources, while a thread is the smallest unit of execution within a process. Multiple threads within a process can run concurrently and share resources, allowing for parallelism and improved performance on multi-core processors.
• Here's a simple analogy: Think of a process as a program, and threads as individual tasks within that program. If you have a word processing application running, the process is the application itself, and each thread might handle different tasks like user interface responsiveness, spell checking, and document printing.
Note: The distinction between processes and threads is crucial for understanding how modern operating systems manage and execute tasks efficiently, especially in environments with multiple processor cores.
on: 16 Dec 2020
on: 18 Feb 2022
Featured postsYou may like these posts.
Firewalls are often categorized as either network firewalls or host-based firewall. Firewalls may also be a component of your computer's operating system.
What is New?
We have just updated this website & still working on adding new content & updating existing features.