0% found this document useful (0 votes)
6 views

Threads in Operating System

A thread is a lightweight process that represents a single flow of execution within a process, allowing multiple threads to operate concurrently. There are two types of threads: user-level threads, which are managed by the user and lack kernel coordination, and kernel-level threads, which are recognized and managed by the operating system. Threads enhance system throughput, enable effective utilization of multiprocessor systems, and facilitate faster context switching and resource sharing.

Uploaded by

kranokmusic
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Threads in Operating System

A thread is a lightweight process that represents a single flow of execution within a process, allowing multiple threads to operate concurrently. There are two types of threads: user-level threads, which are managed by the user and lack kernel coordination, and kernel-level threads, which are recognized and managed by the operating system. Threads enhance system throughput, enable effective utilization of multiprocessor systems, and facilitate faster context switching and resource sharing.

Uploaded by

kranokmusic
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

Threads in Operating System

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:
o It takes far less time to create a new thread in an existing process than to
create a new process.
o Threads can share the common data, they do not need to use Inter- Process
communication.
o Context switching is faster when working with threads.
o 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.

HTML Tutorial

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
o 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.
o 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.
o 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.
o 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.
o 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.
o 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