Vous êtes sur la page 1sur 23

Chapter 4: Threads

Operating System Concepts – 8th Edition Silberschatz, Galvin and Gagne ©2009
Motivation
● Threads run within an 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
● Can simplify code, increase efficiency
● Kernels are generally multithreaded

Operating System Concepts – 8th Edition 4.2 Silberschatz, Galvin and Gagne ©2009
Single and Multithreaded Processes

Operating System Concepts – 8th Edition 4.3 Silberschatz, Galvin and Gagne ©2009
Benefits

● Responsiveness

● Resource Sharing

● Economy

● Scalability

Operating System Concepts – 8th Edition 4.4 Silberschatz, Galvin and Gagne ©2009
Multicore Programming
● Multicore systems putting pressure on programmers - Challenges
include:
● Dividing activities
● Balance
● Data splitting
● Data dependency
● Testing and debugging

Operating System Concepts – 8th Edition 4.5 Silberschatz, Galvin and Gagne ©2009
Concurrent Execution on a
Single-core System

Operating System Concepts – 8th Edition 4.6 Silberschatz, Galvin and Gagne ©2009
Parallel Execution on a
Multicore System

Operating System Concepts – 8th Edition 4.7 Silberschatz, Galvin and Gagne ©2009
User Threads
● Thread management done by user-level threads library

● Three primary thread libraries:


● POSIX Pthreads
● Win32 threads
● Java threads

Operating System Concepts – 8th Edition 4.8 Silberschatz, Galvin and Gagne ©2009
Kernel Threads
0

Operating System Concepts – 8th Edition 4.9 Silberschatz, Galvin and Gagne ©2009
Multithreading Models
● Many-to-One

● One-to-One

● Many-to-Many

Operating System Concepts – 8th Edition 4.10 Silberschatz, Galvin and Gagne ©2009
Many-to-One
● Many user-level threads mapped to single kernel thread

● Examples:
● Solaris Green Threads
● GNU Portable Threads

Operating System Concepts – 8th Edition 4.11 Silberschatz, Galvin and Gagne ©2009
Many-to-One Model

Operating System Concepts – 8th Edition 4.12 Silberschatz, Galvin and Gagne ©2009
One-to-One
● Each user-level thread maps to kernel thread

● Examples
● Windows NT/XP/2000
● Linux
● Solaris 9 and later

Operating System Concepts – 8th Edition 4.13 Silberschatz, Galvin and Gagne ©2009
One-to-one Model

Operating System Concepts – 8th Edition 4.14 Silberschatz, Galvin and Gagne ©2009
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

● Windows NT/2000 with the ThreadFiber package

Operating System Concepts – 8th Edition 4.15 Silberschatz, Galvin and Gagne ©2009
Many-to-Many Model

Operating System Concepts – 8th Edition 4.16 Silberschatz, Galvin and Gagne ©2009
Two-level Model

● Similar to M:M, except that it allows a user thread to be bound


to kernel thread

● Examples
● IRIX
● HP-UX
● Tru64 UNIX
● Solaris 8 and earlier

Operating System Concepts – 8th Edition 4.17 Silberschatz, Galvin and Gagne ©2009
Two-level Model

Operating System Concepts – 8th Edition 4.18 Silberschatz, Galvin and Gagne ©2009
Thread Libraries
● Thread library provides programmer with API for creating and
managing threads

● Two primary ways of implementing


● Library entirely in user space
● Kernel-level library supported by the OS

Operating System Concepts – 8th Edition 4.19 Silberschatz, Galvin and Gagne ©2009
Pthreads
● May be provided either as user-level or kernel-level

● A POSIX standard (IEEE 1003.1c) API for thread creation and


synchronization

● API specifies behavior of the thread library, implementation is


up to development of the library

● Common in UNIX operating systems (Solaris, Linux, Mac OS


X)

Operating System Concepts – 8th Edition 4.20 Silberschatz, Galvin and Gagne ©2009
Pthreads Example

Operating System Concepts – 8th Edition 4.21 Silberschatz, Galvin and Gagne ©2009
Pthreads Example (Cont.)

Operating System Concepts – 8th Edition 4.22 Silberschatz, Galvin and Gagne ©2009
End of Chapter 4

Operating System Concepts – 8th Edition Silberschatz, Galvin and Gagne ©2009

Vous aimerez peut-être aussi