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

Threads

Threads PPS

Uploaded by

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

Threads

Threads PPS

Uploaded by

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

27-Jan-11

THREADS

www.eazynotes.com
1
Gursharan Singh Tatla
professorgstatla@gmail.com
THREAD
 A thread is a single sequential flow of execution of the

27-Jan-11
tasks of a process.
 A thread is a lightweight process and the smallest unit of

www.eazynotes.com
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.
2
MULTI-THREADING
 A process can have single thread of control or multiple

27-Jan-11
threads of control.
 If a process has single thread of control, it can perform

www.eazynotes.com
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.
3
MULTI-THREADING
 For e.g.:

27-Jan-11
 The tasks in a web browser are divided into multiple threads.
 Downloading the images, downloading the text and

www.eazynotes.com
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.
4
SINGLE THREAD & MULTI-THREAD

27-Jan-11
www.eazynotes.com
5
THREADS & PROCESSES
 An idea of how threads & processes can be related to

27-Jan-11
each other is depicted in the fig.:

www.eazynotes.com
6
THREADS & PROCESSES
 There are several similarities and differences between a

27-Jan-11
thread and a process:
 Similarities:

www.eazynotes.com
 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.

7
THREADS & PROCESSES
 Differences:

27-Jan-11
 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.

www.eazynotes.com
 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.

8
TYPES OF THREADS
 Threads are of three types:

27-Jan-11
 Kernel Level Threads

www.eazynotes.com
 User Level Threads

 Hybrid Threads

9
KERNEL LEVEL THREADS
 Threads of processes defined by operating system itself

27-Jan-11
are called Kernel Level Threads.
 In these types of threads, kernel performs thread

www.eazynotes.com
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.

10
USER LEVEL THREADS
 The threads of user application process are called User

27-Jan-11
Level Threads.
 They are implemented in the user space of main

www.eazynotes.com
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.

11
HYBRID THREADS
 In hybrid approach, both kernel level threads and user

27-Jan-11
level threads are implemented.
 For e.g.: Solaris 2.

www.eazynotes.com
12
MULTI-THREADING MODELS
 Depending on the support for user and kernel threads,

27-Jan-11
there are three multithreading models:

www.eazynotes.com
 Many-to-One Model

 One-to-One Model

 Many-to-Many Model

13
MANY-TO-ONE MODEL
 In this model, many user level threads are mapped to one

27-Jan-11
kernel level thread.
 Threads are managed in user space.

www.eazynotes.com
14
ONE-TO-ONE MODEL
 In this model, each user level thread is mapped to one

27-Jan-11
kernel level thread.

www.eazynotes.com
15
MANY-TO-MANY MODEL
 In this model, many user level threads are mapped to

27-Jan-11
many kernel level threads.

www.eazynotes.com
16
17

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy