Chapter 4: Threads: Silberschatz, Galvin and Gagne ©2013 Operating System Concepts Essentials - 2 Edition
Chapter 4: Threads: Silberschatz, Galvin and Gagne ©2013 Operating System Concepts Essentials - 2 Edition
Operating System Concepts Essentials – 2nd Edition Silberschatz, Galvin and Gagne ©2013
Motivation
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
Operating System Concepts Essentials – 2nd Edition 4.4 Silberschatz, Galvin and Gagne ©2013
Multithreaded Server Architecture
Operating System Concepts Essentials – 2nd Edition 4.5 Silberschatz, Galvin and Gagne ©2013
Benefits
Operating System Concepts Essentials – 2nd Edition 4.6 Silberschatz, Galvin and Gagne ©2013
Multicore Programming
Operating System Concepts Essentials – 2nd Edition 4.7 Silberschatz, Galvin and Gagne ©2013
Concurrency vs. Parallelism
Concurrent execution on single-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
Operating System Concepts Essentials – 2nd Edition 4.10 Silberschatz, Galvin and Gagne ©2013
User Threads and Kernel Threads
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
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
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