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

Chapter 4: Threads: Silberschatz, Galvin and Gagne ©2013 Operating System Concepts Essentials - 2 Edition

Uploaded by

saini.25.ansh
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)
21 views17 pages

Chapter 4: Threads: Silberschatz, Galvin and Gagne ©2013 Operating System Concepts Essentials - 2 Edition

Uploaded by

saini.25.ansh
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
You are on page 1/ 17

Chapter 4: Threads

Operating System Concepts Essentials – 2nd Edition Silberschatz, Galvin and Gagne ©2013
Motivation

A thread is a basic unit of CPU utilization


Thread ID
Program counter
Register set
Stack
A thread shares with other threads belonging to the same
process
Code section
Data section
Operating-system resources, such as open files

A thread is a lightweight process

Operating System Concepts Essentials – 2nd Edition 4.2 Silberschatz, Galvin and Gagne ©2013
Thread

Operating System Concepts Essentials – 2nd Edition 4.3 Silberschatz, Galvin and Gagne ©2013
Thread

Most modern applications are multithreaded


Threads run within application
Multiple tasks with the application can be implemented by separate
threads
Update display
Fetch data
Spell checking
Answer a network request
Process creation is heavy-weight while thread creation is light-weight
Significantly improve efficiency
Several CPU-intensive tasks in parallel across the multiple
computing cores
Kernels are generally multithreaded

Operating System Concepts Essentials – 2nd Edition 4.4 Silberschatz, Galvin and Gagne ©2013
Multithreaded Server Architecture

• A single application may be required to perform several similar tasks


• Example: A web server accepts client requests for web pages

Operating System Concepts Essentials – 2nd Edition 4.5 Silberschatz, Galvin and Gagne ©2013
Benefits

Responsiveness – may allow continued execution if part of


process is blocked, especially important for user interfaces
Resource Sharing – threads share resources of process, easier
than shared memory or message passing
Economy – cheaper than process creation, thread switching
lower overhead than context switching
Scalability – process can take advantage of multiprocessor
architectures

Operating System Concepts Essentials – 2nd Edition 4.6 Silberschatz, Galvin and Gagne ©2013
Multicore Programming

Multicore or multiprocessor systems putting pressure on


programmers, challenges include:
Dividing activities
Balance
Data splitting
Data dependency
Testing and debugging
Parallelism implies a system can perform more than one task
simultaneously
Concurrency supports more than one task making progress
Single processor / core, scheduler providing concurrency

Operating System Concepts Essentials – 2nd Edition 4.7 Silberschatz, Galvin and Gagne ©2013
Concurrency vs. Parallelism
Concurrent execution on single-core system:

Parallelism on a multi-core system:

Operating System Concepts Essentials – 2nd Edition 4.8 Silberschatz, Galvin and Gagne ©2013
Multicore Programming (Cont.)

Types of parallelism
Data parallelism – distributes subsets of the same data
across multiple cores, same operation on each
Task parallelism – distributing threads across cores, each
thread performing unique operation
As # of threads grows, so does architectural support for threading
CPUs have cores as well as hardware threads

Operating System Concepts Essentials – 2nd Edition 4.9 Silberschatz, Galvin and Gagne ©2013
Amdahl’s Law
Identifies performance gains from adding additional cores to an
application that has both serial and parallel components
S is serial portion
N processing cores

That is, if application is 75% parallel / 25% serial, moving from 1 to 2


cores results in speedup of 1.6 times
As N approaches infinity, speedup approaches 1 / S

Serial portion of an application has disproportionate effect on


performance gained by adding additional cores

Operating System Concepts Essentials – 2nd Edition 4.10 Silberschatz, Galvin and Gagne ©2013
User Threads and Kernel Threads

User threads - management done by user-level threads library


Kernel threads - Supported by the Kernel
Examples – virtually all general-purpose operating systems, including:
Windows
Solaris
Linux
Tru64 UNIX
Mac OS X

Operating System Concepts Essentials – 2nd Edition 4.11 Silberschatz, Galvin and Gagne ©2013
MULTITHREADING MODELS

Operating System Concepts Essentials – 2nd Edition 4.12 Silberschatz, Galvin and Gagne ©2013
Many-to-One

Many user-level threads mapped to


single kernel thread
One thread blocking causes all to block
Multiple threads may not run in parallel
on muticore system because only one
may be in kernel at a time
Few systems currently use this model
Examples:
Solaris Green Threads
GNU Portable Threads

Operating System Concepts Essentials – 2nd Edition 4.13 Silberschatz, Galvin and Gagne ©2013
One-to-One
Each user-level thread maps to kernel thread
Creating a user-level thread creates a kernel thread
More concurrency than many-to-one
Number of threads per process sometimes
restricted due to overhead
Examples
Windows
Linux
Solaris 9 and later

Operating System Concepts Essentials – 2nd Edition 4.14 Silberschatz, Galvin and Gagne ©2013
Many-to-Many Model
Allows many user level threads to be
mapped to many kernel threads
Allows the operating system to create
a sufficient number of kernel threads
Solaris prior to version 9

Operating System Concepts Essentials – 2nd Edition 4.15 Silberschatz, Galvin and Gagne ©2013
Threading Issues

Semantics of fork() and exec()

Does fork()duplicate only the calling thread or all


threads?
Some UNIXes have two versions of fork
exec() usually works as normal – replace the running
process including all threads

Operating System Concepts Essentials – 2nd Edition 4.16 Silberschatz, Galvin and Gagne ©2013
End of Chapter 4

Operating System Concepts Essentials – 2nd Edition Silberschatz, Galvin and Gagne ©2013

You might also like