0% found this document useful (0 votes)
22 views17 pages

Understanding Threads and Multi-Threading

The document discusses threads and multi-threading. It defines a thread as the smallest unit of CPU utilization within a process, with its own program counter, register set, and stack. A process can have multiple threads, allowing it to perform multiple tasks simultaneously. This is known as multi-threading. The document compares threads and processes, and describes different types of threads including kernel threads, user threads, and hybrid threads. It also discusses multi-threading models such as many-to-one, one-to-one, and many-to-many.

Uploaded by

Er Ajay Sharma
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)
22 views17 pages

Understanding Threads and Multi-Threading

The document discusses threads and multi-threading. It defines a thread as the smallest unit of CPU utilization within a process, with its own program counter, register set, and stack. A process can have multiple threads, allowing it to perform multiple tasks simultaneously. This is known as multi-threading. The document compares threads and processes, and describes different types of threads including kernel threads, user threads, and hybrid threads. It also discusses multi-threading models such as many-to-one, one-to-one, and many-to-many.

Uploaded by

Er Ajay Sharma
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

Gursharan Singh Tatla

professorgstatla@[Link]

[Link]

27-Jan-11

THREADS

THREAD

A thread is a lightweight process and the smallest


unit of CPU utilization. Thus, a thread is like a
miniprocess.

Each thread has a thread id, program counter,


register set and a stack.

A thread undergoes different states such as new,


ready, running, waiting and terminated similar to
that of a process.

However, a thread is not a program as it cannot run


on its own. It runs within a program.

[Link]

A thread is a single sequential flow of execution of


the tasks of a process.

27-Jan-11

MULTI-THREADING

If a process has single thread of control, it can


perform only one task at a time.

Many modern operating systems have extended


the process concept to allow a process to have
multiple threads.

Thus, allowing the process to perform multiple


tasks at the same time.

This concept is known as Multi-Threading.

[Link]

A process can have single thread of control or


multiple threads of control.

27-Jan-11

MULTI-THREADING
For e.g.:
The tasks in a web browser are divided into multiple
threads.

Downloading the images, downloading the text and


displaying images and text.

While one thread is busy in downloading the images,


another thread displays it.

The various operating systems the implement


multithreading are Windows XP, Vista, 7, Server
2000 onwards, Linux etc.

In multithreading, a thread can share its code, data


and resources with other threads of same process.

[Link]

27-Jan-11

SINGLE THREAD & MULTI-THREAD


27-Jan-11
[Link]

THREADS & PROCESSES


An idea of how threads & processes can be related
to each other is depicted in the fig.:

27-Jan-11

[Link]

THREADS & PROCESSES


There are several similarities and differences
between a thread and a process:
Similarities:

Like process, each thread has its own program counter and
stack.

Threads share CPU just as a process.

Threads also run sequentially, like a process.

Threads can create child threads.

Threads have the same states as process: new, ready,


running, waiting and terminated.

[Link]

27-Jan-11

THREADS & PROCESSES


Differences:
Each process has its own distinct address space in the main
memory. On the other hand, all threads of a same process
share same address space.

Threads require less system resources than a process.

Threads are not independent of each other, unlike processes.

Threads take less time for creation and termination than a


process.

It takes less time to switch between two threads than to switch


between two processes.

[Link]

27-Jan-11

TYPES OF THREADS
Threads are of three types:
Kernel Level Threads

User Level Threads

Hybrid Threads

[Link]

27-Jan-11

KERNEL LEVEL THREADS

In these types of threads, kernel performs thread


creation, scheduling and management.

Kernel threads are used for internal workings of


operating system.

Kernel threads are slower to create and manage.

The various operating systems that support kernel


level threads are: Windows 2000, XP, Solaris 2.

[Link]

Threads of processes defined by operating system


itself are called Kernel Level Threads.

27-Jan-11

10

USER LEVEL THREADS

They are implemented in the user space of main


memory.

User level library (functions to manipulate user


threads) is used for thread creation, scheduling and
management without any support from the kernel.

User level threads are fast to create and manage.

[Link]

The threads of user application process are called


User Level Threads.

27-Jan-11

11

HYBRID THREADS

For e.g.: Solaris 2.

[Link]

In hybrid approach, both kernel level threads and


user level threads are implemented.

27-Jan-11

12

MULTI-THREADING MODELS
Depending on the support for user and kernel
threads, there are three multithreading models:
Many-to-One Model

One-to-One Model

Many-to-Many Model

[Link]

27-Jan-11

13

MANY-TO-ONE MODEL

Threads are managed in user space.

[Link]

In this model, many user level threads are mapped


to one kernel level thread.

27-Jan-11

14

ONE-TO-ONE MODEL
In this model, each user level thread is mapped to
one kernel level thread.

27-Jan-11

[Link]

15

MANY-TO-MANY MODEL
In this model, many user level threads are mapped
to many kernel level threads.

27-Jan-11

[Link]

16

17

You might also like