2. HOME PREVIOUS TOPIC
NEXT
PREVIOUS QUESTION PAPERS
FOR OS
CPP TUTORIALS
2
3. Recap
In the last class, you have learnt
• Relationship between Processes
• Reasons for providing an environment that allows
Process cooperation
3
4. Objectives
On completion of this class, you would be able to
know
• Definition of Thread
• Benefits of Multithread programming
• Multithreading Models
4
5. Thread Structure
• A thread is a light weight process (LWP)
• Basic unit of CPU utilization
• Shares other threads belonging to the same process its
code section, data section and other resources
• Threads created for a particular process are known as
sibling threads
5
7. Thread Structure
• Process having multiple threads of control, can perform more
than one task at a time
• Threads operate, in many respects, in the same manner as
processes
• Like processes threads can share CPU, but only one thread at a
time is active
• Thread can create child threads
• Threads are not independent of one another
• This structure does not provide protection between threads as
they can read or write over any other thread
7
9. Threads
Single threaded process
• A traditional (or heavy weight) Process that has a single thread
of control
Multi threaded process
• A process which has several threads of control
• It can do more than one task at a time
9
10. Single and Multi Thread Process
Thread
Single Thread Process Multi Thread Process
Fig.1
10
11. Benefits of Multithreading Programming
Responsiveness
• Allows a program to continue even if a part of it is
blocked or performing a lengthy operation
Resource sharing
• Threads share the memory and the resources of the
process to which they belong
• Allows an application to have several different
threads of activity within the same address space
11
12. Benefits of Multithreading Programming
Economy
• Threads share resources of the process to which
they belong
• Hence it is more economical to create and
conduct switch threads
12
13. Benefits of Multithreading Programming
Utilization of multiprocessor architectures
• Benefits of multithreading can be greatly increased
in a multiprocessor architecture where threads may
be running in parallel on different processors
• Multithreading increases concurrency on a multi-
CPU machine
13
14. Multi Threading Model
• An operating system support multiple threads of execution in
one process
• Support for threads may be provided at either the user level or
by the kernel
• User threads are supported above the kernel and are managed
without kernel support
• Kernel threads are supported and managed directly by
operating system
• Windows XP. Solaris, True64 UNIX - support kernel threads
14
15. One process one thread One process multiple thread
Fig.1 (a) Fig.2 (b)
Multiple process, one thread per process Multiple process, multiple threads per process
Fig.3 (c) Fig.4 (d)
Fig: multithreading model 15
16. Multithreading Models
Many-to-one Model
• Maps many user-level threads to one kernel thread
• Green threads-a thread library available for Solaris users this
model
Fig.2
16
17. Multithreading Models
One-to-One Model
• Maps each user thread to a kernel thread
• Windows 95/98/NT/2000/XP implement the one-to-one
model
User thread
Kernel thread
Fig.3
17
19. Summary
In this class, you have learnt
• A thread is a basic unit of CPU utilization
• A thread is a light weight process
• A thread shares with peer threads its code section
data section and other resources
• Extensive sharing makes CPU switching among
peer threads and thread creation inexpensive
19
22. Quiz
State whether the following statements are true or false
1. Thread is a light weight process
a) True
b) False
2. Threads can communicate with each other
a) True
b) False
3. A thread needs __________________
Less no. of resources
4. A single process _____________________
Supports multiple threads
22