Transcript Figure 5.01
Chapter 4: Threads
Operating System Concepts – 8th Edition
Silberschatz, Galvin and Gagne ©2009
Chapter 4: Threads
Overview
Motivation
Benefits
Operating System Concepts – 8th Edition
4.2
Silberschatz, Galvin and Gagne ©2009
Objectives
To introduce the notion of a thread — a fundamental unit of CPU utilization that
forms the basis of multithreaded computer systems.
Operating System Concepts – 8th Edition
4.3
Silberschatz, Galvin and Gagne ©2009
Overview
A thread is a basic unit of CPU utilization (i.e. It is the smallest sequence of
programmed instructions that can be managed independently)
Thread comprises :
ID, a program counter, a register set and a stack.
It shares with other threads belonging to the same process its code section,
data section and other operating system resources.
A traditional (or heavyweight) process has a single thread of control.
A thread could be considered a ‘lightweight’ process
If a process has multiple threads of control, it can perform more than one task
at a time.
Threads provide a way to improve application performance through parallelism.
Each thread belongs to exactly one process and no thread can exist outside a
process.
Operating System Concepts – 8th Edition
4.4
Silberschatz, Galvin and Gagne ©2009
Single and Multithreaded Processes
Traditional ( heavyweight ) process has a single thread of control - There is one program
counter, and one sequence of instructions that can be carried out at any given time.
Multi-threaded applications have multiple threads within a single process, each having their
own program counter, stack and set of registers, but sharing common code, data, and certain
structures such as open files.
Operating System Concepts – 8th Edition
4.5
Silberschatz, Galvin and Gagne ©2009
Motivation
Many software packages that run on modern desktop PCs are multithreaded. An
application typically is implemented as a separate process with several threads of
control.
Examples :
E.G. (1) : A word processor may have a thread for displaying graphics, another
thread for responding to keystrokes from the user, and a third thread for
performing spelling and grammar checking in the background.
E.G. (2) : A web server - Multiple threads allow for multiple requests to be
satisfied simultaneously, without having to service requests sequentially or to
fork off separate processes for every incoming request….(creating a new thread
belongs to an existing process is less overhead of creating a new process)
Most operating system kernels are now multithreaded >>>> several threads operate
in the kernel, and each thread performs a specific task, such as managing devices or
interrupt handling.
Operating System Concepts – 8th Edition
4.6
Silberschatz, Galvin and Gagne ©2009
Benefits
There are four major categories of benefits to multi-threading:
Responsiveness - One thread may provide rapid response while other threads
are blocked or slowed down doing intensive calculations.
Resource sharing –
Processes may only share resources through techniques (e.g. shared
memory or message passing) …Such techniques must be explicitly arranged
by the programmer.
By default threads share common code, data, and other resources, which
allows multiple tasks to be performed simultaneously in a single address
space.
Operating System Concepts – 8th Edition
4.7
Silberschatz, Galvin and Gagne ©2009
Benefits (Cont.)
Economy - Creating and managing threads is much faster than performing the
same tasks for processes.
Scalability
The benefits of multithreading can be greatly increased in a multiprocessor
architecture, where threads may be running in parallel on different
processors.
A single-threaded process can only run on one processor, regardless how
many CPUs are available. whereas the execution of a multi-threaded
application may be split amongst available processors. …….( Note that
single threaded processes can still benefit from multi-processor architectures
when there are multiple processes contending for the CPU)
Operating System Concepts – 8th Edition
4.8
Silberschatz, Galvin and Gagne ©2009
End of Chapter 4
Operating System Concepts – 8th Edition
Silberschatz, Galvin and Gagne ©2009