0% found this document useful (0 votes)
18 views6 pages

Threads in Operating System (OS) - Javatpoint

Threads in an operating system (OS) represent a single flow of execution within a process, allowing multiple threads to exist within the same process, which enhances efficiency and resource sharing. There are two types of threads: user-level threads, which are managed by the user and are faster but lack kernel coordination, and kernel-level threads, which are managed by the OS and provide better coordination but are slower. Benefits of using threads include improved system throughput, effective utilization of multiprocessor systems, faster context switching, and simplified communication and resource sharing.

Uploaded by

ROHIT VISHWKARMA
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views6 pages

Threads in Operating System (OS) - Javatpoint

Threads in an operating system (OS) represent a single flow of execution within a process, allowing multiple threads to exist within the same process, which enhances efficiency and resource sharing. There are two types of threads: user-level threads, which are managed by the user and are faster but lack kernel coordination, and kernel-level threads, which are managed by the OS and provide better coordination but are slower. Benefits of using threads include improved system throughput, effective utilization of multiprocessor systems, faster context switching, and simplified communication and resource sharing.

Uploaded by

ROHIT VISHWKARMA
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Threads in Operating System

(OS)
A thread is a single sequential flow of execution of tasks of a process
so it is also known as thread of execution or thread of control. There
is a way of thread execution inside the process of any operating
system. Apart from this, there can be more than one thread inside a
process. Each thread of the same process makes use of a separate
program counter and a stack of activation records and control
blocks. Thread is often referred to as a lightweight process.

The process can be split down into so many threads. For example,
in a browser, many tabs can be viewed as threads. MS Word uses
many threads - formatting text from one thread, processing input
from another thread, etc.
:
Need of Thread:
It takes far less time to create a new thread in an existing
process than to create a new process.
Threads can share the common data, they do not need to use
Inter- Process communication.
Context switching is faster when working with threads.
It takes less time to terminate a thread than a process.

Types of Threads
In the operating system, there are two types of threads.

1. Kernel level thread.


2. User-level thread.

User-level thread

The operating system does not recognize the user-level thread. User
threads can be easily implemented and it is implemented by the user.
If a user performs a user-level thread blocking operation, the whole
process is blocked. The kernel level thread does not know nothing
about the user level thread. The kernel-level thread manages user-
level threads as if they are single-threaded processes?examples:
Java thread, POSIX threads, etc.

Advantages of User-level threads

1. The user threads can be easily implemented than the kernel


thread.
2. User-level threads can be applied to such types of operating
systems that do not support threads at the kernel-level.
3. It is faster and efficient.
4. Context switch time is shorter than the kernel-level threads.
:
5. It does not require modifications of the operating system.
6. User-level threads representation is very simple. The register,
PC, stack, and mini thread control blocks are stored in the
address space of the user-level process.
7. It is simple to create, switch, and synchronize threads without
the intervention of the process.

Disadvantages of User-level threads

1. User-level threads lack coordination between the thread and the


kernel.
2. If a thread causes a page fault, the entire process is blocked.

Kernel level thread

The kernel thread recognizes the operating system. There is a thread


control block and process control block in the system for each
thread and process in the kernel-level thread. The kernel-level
thread is implemented by the operating system. The kernel knows
about all the threads and manages them. The kernel-level thread
offers a system call to create and manage the threads from user-
space. The implementation of kernel threads is more difficult than
:
the user thread. Context switch time is longer in the kernel thread. If
a kernel thread performs a blocking operation, the Banky thread
execution can continue. Example: Window Solaris.

Advantages of Kernel-level threads

1. The kernel-level thread is fully aware of all threads.


2. The scheduler may decide to spend more CPU time in the
process of threads being large numerical.
3. The kernel-level thread is good for those applications that block
the frequency.

Disadvantages of Kernel-level threads

1. The kernel thread manages and schedules all threads.


:
2. The implementation of kernel threads is difficult than the user
thread.
3. The kernel-level thread is slower than user-level threads.

Components of Threads
Any thread has the following components.

1. Program counter
2. Register set
3. Stack space

Benefits of Threads
Enhanced throughput of the system: When the process is
split into many threads, and each thread is treated as a job, the
number of jobs done in the unit time increases. That is why the
throughput of the system also increases.
Effective Utilization of Multiprocessor system: When you
have more than one thread in one process, you can schedule
more than one thread in more than one processor.
Faster context switch: The context switching period between
threads is less than the process context switching. The process
context switch means more overhead for the CPU.
Responsiveness: When the process is split into several
threads, and when a thread completes its execution, that
process can be responded to as soon as possible.
Communication: Multiple-thread communication is simple
because the threads share the same address space, while in
process, we adopt just a few exclusive communication
strategies for communication between two processes.
Resource sharing: Resources can be shared between all
threads within a process, such as code, data, and files. Note:
:
The stack and register cannot be shared between threads.
There is a stack and register for each thread.
:

You might also like