0% found this document useful (0 votes)
16 views24 pages

cs231 ch4

Chapter 4 discusses threads as lightweight processes that enable concurrent execution within applications, enhancing responsiveness and resource sharing. It covers various threading models, including many-to-one, one-to-one, and many-to-many, along with the benefits of multithreading in programming, especially in multicore systems. The chapter also highlights thread libraries, particularly Pthreads, which provide APIs for thread management.

Uploaded by

prateek.singh23b
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views24 pages

cs231 ch4

Chapter 4 discusses threads as lightweight processes that enable concurrent execution within applications, enhancing responsiveness and resource sharing. It covers various threading models, including many-to-one, one-to-one, and many-to-many, along with the benefits of multithreading in programming, especially in multicore systems. The chapter also highlights thread libraries, particularly Pthreads, which provide APIs for thread management.

Uploaded by

prateek.singh23b
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

Chapter 4: Threads

Operating System Concepts – 8th Edition Silberschatz, Galvin and Gagne ©2009
Thread
 A lightweight process
 A flow of execution through the process code
 It comprises a thread ID, a PC, a register set, a stack
 Shares code section, data section, other OS resources

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
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.4 Silberschatz, Galvin and Gagne ©2009
Benefits

 Responsiveness

 Resource Sharing

 Economy

 Scalability

Operating System Concepts – 8th Edition 4.5 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.6 Silberschatz, Galvin and Gagne ©2009
Concurrent Execution on a
Single-core System

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

Operating System Concepts – 8th Edition 4.8 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.9 Silberschatz, Galvin and Gagne ©2009
Kernel Threads
 Supported by the Kernel

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

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

Operating System Concepts – 8th Edition 4.11 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.12 Silberschatz, Galvin and Gagne ©2009
Many-to-One Model

Operating System Concepts – 8th Edition 4.13 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.14 Silberschatz, Galvin and Gagne ©2009
One-to-one Model

Operating System Concepts – 8th Edition 4.15 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.16 Silberschatz, Galvin and Gagne ©2009
Many-to-Many Model

Operating System Concepts – 8th Edition 4.17 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.18 Silberschatz, Galvin and Gagne ©2009
Two-level Model

Operating System Concepts – 8th Edition 4.19 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.20 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.21 Silberschatz, Galvin and Gagne ©2009
Pthreads Example

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

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

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

You might also like