Chapter 4: Threads
Chapter 4: Threads
Chapter 4: Threads
CHAPTER 4: THREADS
Overview
Multicore Programming
Multithreading Models
Thread Libraries
Implicit Threading
Threading Issues
Operating System Examples
OBJECTIVES
To introduce the notion of a thread—a
fundamental unit of CPU utilization that forms the
basis of multithreaded computer systems
To discuss the APIs for the Pthreads, Windows,
and Java thread libraries
To explore several strategies that provide implicit
threading
To examine issues related to multithreaded
programming
To cover operating system support for threads in
Windows and Linux
MOTIVATION
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
Consider Oracle SPARC T4 with 8 cores, and 8
hardware threads per core
CONCURRENCY VS. PARALLELISM
Concurrent execution on single-core system:
Many-to-One
One-to-One
Many-to-Many
MANY-TO-ONE
Windows Threads
Linux Threads
WINDOWS THREADS