0% found this document useful (0 votes)
14 views18 pages

ch4 Os

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1/ 18

Chapter 4: Threads

Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne


Chapter 4: Threads

Operating System Concepts – 9th Edition 4.2 Silberschatz, Galvin and Gagne
Understanding Threads
 Threads, also known as lightweight processes, are
independent sequences of execution within a process.
 Unlike traditional processes, threads share the same
memory space and resources within a process context,
allowing for faster communication and synchronization.
 Threads can execute concurrently, providing advantages
such as improved responsiveness and better utilization of
multiprocessor systems.

Operating System Concepts – 9th Edition 4.3 Silberschatz, Galvin and Gagne
Thread Creation and Management
 The operating system provides mechanisms for creating,
managing, and scheduling threads within a process.
 Thread creation involves allocating resources and initializing
thread-specific data structures.
 Thread management tasks include scheduling threads for
execution, handling thread states (such as running, ready,
blocked), and managing thread termination.
 Operating systems typically offer APIs or libraries for thread
management, providing developers with the necessary tools
to create and control threads effectively.

Operating System Concepts – 9th Edition 4.4 Silberschatz, Galvin and Gagne
Motivation

 Most modern applications are multithreaded


 Threads run within 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

Operating System Concepts – 9th Edition 4.5 Silberschatz, Galvin and Gagne
Multithreaded Server Architecture

Operating System Concepts – 9th Edition 4.6 Silberschatz, Galvin and Gagne
Benefits

 Responsiveness – may allow continued execution if


part of process is blocked, especially important for
user interfaces
 Resource Sharing – threads share resources of
process, easier than shared memory or message
passing
 Economy – cheaper than process creation, thread
switching lower overhead than context switching
 Scalability – process can take advantage of
multiprocessor architectures

Operating System Concepts – 9th Edition 4.7 Silberschatz, Galvin and Gagne
Continue…
 Multithreading offers various benefits, including improved
responsiveness, enhanced throughput, better resource
utilization, and increased scalability.
 By allowing concurrent execution of multiple tasks,
multithreading enables applications to better utilize modern
multicore processors and exploit parallelism.
 Multithreading is widely used in diverse domains, including
operating systems, database systems, web servers, and
multimedia applications, to achieve better performance and
responsiveness.

Operating System Concepts – 9th Edition 4.8 Silberschatz, Galvin and Gagne
Single and Multithreaded Processes

Operating System Concepts – 9th Edition 4.9 Silberschatz, Galvin and Gagne
Concurrency vs. Parallelism
 Concurrent execution on single-core system:

 Parallelism on a multi-core system:

Operating System Concepts – 9th Edition 4.10 Silberschatz, Galvin and Gagne
User Threads and Kernel Threads
 User threads - management done by user-level threads library
 Three primary thread libraries:
 POSIX Pthreads
 Windows threads
 Java threads
 Kernel threads - Supported by the Kernel
 Examples – virtually all general purpose operating systems,
including:
 Windows
 Solaris
 Linux
 Tru64 UNIX
 Mac OS X

Operating System Concepts – 9th Edition 4.11 Silberschatz, Galvin and Gagne
Multithreading Models

 Many-to-One

 One-to-One

 Many-to-Many

Operating System Concepts – 9th Edition 4.12 Silberschatz, Galvin and Gagne
Many-to-One

 Many user-level threads mapped


to single kernel thread
 One thread blocking causes all
to block
 Multiple threads may not run in
parallel on muticore system
because only one may be in
kernel at a time
 Few systems currently use this
model
 Examples:
 Solaris Green Threads
 GNU Portable Threads

Operating System Concepts – 9th Edition 4.13 Silberschatz, Galvin and Gagne
One-to-One
 Each user-level thread maps to kernel
thread
 Creating a user-level thread creates a
kernel thread
 More concurrency than many-to-one
 Number of threads per process
sometimes restricted due to overhead
 Examples
 Windows
 Linux
 Solaris 9 and later

Operating System Concepts – 9th Edition 4.14 Silberschatz, Galvin and Gagne
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 with the ThreadFiber
package

Operating System Concepts – 9th Edition 4.15 Silberschatz, Galvin and Gagne
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 – 9th Edition 4.16 Silberschatz, Galvin and Gagne
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 – 9th Edition 4.17 Silberschatz, Galvin and Gagne
END

Operating System Concepts – 9th Edition 4.18 Silberschatz, Galvin and Gagne

You might also like