You are on page 1of 15

Chapter 4: Multithreaded

Programming
Chapter 4: Multithreaded Programming

 Overview
 Multithreading Models
 Thread Libraries

Operating System Concepts 4.2 Silberschatz, Galvin and Gagne ©2005


Single and Multithreaded Processes

Operating System Concepts 4.3 Silberschatz, Galvin and Gagne ©2005


Benefits

 Responsiveness

 Resource Sharing

 Economy

 Utilization of multiprocessor Architectures

Operating System Concepts 4.4 Silberschatz, Galvin and Gagne ©2005


User Threads

 Thread management done by user-level threads library

 Three primary thread libraries:


 POSIX Pthreads
 Win32 threads
 Java threads

Operating System Concepts 4.5 Silberschatz, Galvin and Gagne ©2005


Kernel Threads

 Supported by the Kernel

 Examples
 Windows XP/2000
 Solaris
 Linux
 Tru64 UNIX
 Mac OS X

Operating System Concepts 4.6 Silberschatz, Galvin and Gagne ©2005


Multithreading Models

 Many-to-One

 One-to-One

 Many-to-Many

Operating System Concepts 4.7 Silberschatz, Galvin and Gagne ©2005


Many-to-One

 Many user-level threads mapped to single kernel thread


 Examples:
 Solaris Green Threads
 GNU Portable Threads

Operating System Concepts 4.8 Silberschatz, Galvin and Gagne ©2005


Many-to-One Model

Operating System Concepts 4.9 Silberschatz, Galvin and Gagne ©2005


One-to-One

 Each user-level thread maps to kernel thread


 Examples
 Windows NT/XP/2000
 Linux
 Solaris 9 and later

Operating System Concepts 4.10 Silberschatz, Galvin and Gagne ©2005


One-to-one Model

Operating System Concepts 4.11 Silberschatz, Galvin and Gagne ©2005


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 4.12 Silberschatz, Galvin and Gagne ©2005


Many-to-Many Model

Operating System Concepts 4.13 Silberschatz, Galvin and Gagne ©2005


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 4.14 Silberschatz, Galvin and Gagne ©2005


Two-level Model

Operating System Concepts 4.15 Silberschatz, Galvin and Gagne ©2005

You might also like