Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 4: Multithreaded Programming. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Principles Objectives To introduce a notion of a thread.

Similar presentations


Presentation on theme: "Chapter 4: Multithreaded Programming. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Principles Objectives To introduce a notion of a thread."— Presentation transcript:

1 Chapter 4: Multithreaded Programming

2 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Principles Objectives To introduce a notion of a thread – a fundamental unit of CPU utilization that forms the basis of multithreaded computer systems To discuss the APIs for thread libraries (skip) To examine issues related to multithreaded programming (skip)

3 4.3 Silberschatz, Galvin and Gagne ©2005 Operating System Principles Chapter 4: Multithreaded Programming Overview Multithreading Models Thread Library (skip) Threading Issues (skip) Linux Threads (skip)

4 4.4 Silberschatz, Galvin and Gagne ©2005 Operating System Principles 4.1 Overview Single and Multithreaded Processes check Fig. 4.2 in p. 155

5 4.5 Silberschatz, Galvin and Gagne ©2005 Operating System Principles Benefits Responsiveness: Allow an interactive program to continue running even if part of it is blocked or is performing a lengthy operation Resource Sharing Threads share the memory and the resources of the process Economy It is more economical to create and context-switch threads. For example, in Solaris, creating a process is 30 times slower than creating a thread, and context switching a process is 5 times slower than context switching a thread Scalability Utilization of Multiprocessor Architectures Threads may be running in parallel on different processors Skip 4.1.3

6 4.6 Silberschatz, Galvin and Gagne ©2005 Operating System Principles 4.2 Multithreading Models How to establish the relationship between user and kernel threads Many-to-One One-to-One Many-to-Many User Threads Thread management done by user-level threads library Three primary thread libraries: POSIX Pthreads, Win32 threads, Java threads Kernel threads Supported by the kernel (operating system) Examples : Windows XP/2000, Solaris, Linux, Tru64 UNIX, Mac OS X

7 4.7 Silberschatz, Galvin and Gagne ©2005 Operating System Principles Many-to-One Many user-level threads mapped to single kernel thread Examples: Solaris Green Threads, GNU Portable Threads Thread management is done in user space, so it is efficient. If a thread makes a blocking system call, then the entire process will block

8 4.8 Silberschatz, Galvin and Gagne ©2005 Operating System PrinciplesOne-to-One Each user-level thread maps to kernel thread Examples Windows NT/XP/2000, Linux, Solaris 9 and later Drawback: creating a user thread requires creating the corresponding kernel thread Restrict the number of threads supported by the system

9 4.9 Silberschatz, Galvin and Gagne ©2005 Operating System Principles 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 Examples: Solaris prior to version 9, Windows NT/2000 with the ThreadFiber package

10 4.10 Silberschatz, Galvin and Gagne ©2005 Operating System Principles Two-level Model Similar to Many-to-Many, except that it allows a user thread to be bound to kernel thread Examples IRIX, HP-UX, Tru64 UNIX, Solaris 8 and earlier Skip 4.3 – 4.6


Download ppt "Chapter 4: Multithreaded Programming. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Principles Objectives To introduce a notion of a thread."

Similar presentations


Ads by Google