0% found this document useful (0 votes)
6 views

Chapter 04

Uploaded by

Fauzan Prasetyo
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Chapter 04

Uploaded by

Fauzan Prasetyo
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 20

Operating Systems:

Internals and Design Principles, 6/E


William Stallings

Chapter 4
Threads, SMP, and
Microkernels

Dave Bremer
Otago Polytechnic, N.Z.
©2008, Prentice Hall
Roadmap
• Threads: Resource ownership and
execution
• Symmetric multiprocessing (SMP).
• Microkernel
• Case Studies of threads and SMP:
– Windows
– Solaris
– Linux
Processes and Threads
• Processes have two characteristics:
– Resource ownership - process includes a
virtual address space to hold the process
image
– Scheduling/execution - follows an execution
path that may be interleaved with other
processes
• These two characteristics are treated
independently by the operating system
Processes and Threads
• The unit of dispatching is referred to as a
thread or lightweight process
• The unit of resource ownership is referred
to as a process or task
Multithreading
• The ability of an
OS to support
multiple,
concurrent paths
of execution within
a single process.
Single Thread
Approaches
• MS-DOS supports a
single user process
and a single thread.
• Some UNIX, support
multiple user
processes but only
support one thread
per process
Multithreading
• Java run-time
environment is a
single process with
multiple threads
• Multiple processes
and threads are found
in Windows, Solaris,
and many modern
versions of UNIX
Processes
• A virtual address space which holds the
process image
• Protected access to
– Processors,
– Other processes,
– Files,
– I/O resources
One or More Threads in
Process
• Each thread has
– An execution state (running, ready, etc.)
– Saved thread context when not running
– An execution stack
– Some per-thread static storage for local
variables
– Access to the memory and resources of its
process (all threads of a process share this)
One view…

• One way to view a thread is as an


independent program counter operating
within a process.
Threads vs. processes
Benefits of Threads
• Takes less time to create a new thread
than a process
• Less time to terminate a thread than a
process
• Switching between two threads takes less
time that switching processes
• Threads can communicate with each other
– without invoking the kernel
Thread use in a
Single-User System
• Foreground and background work
• Asynchronous processing
• Speed of execution
• Modular program structure
Threads
• Several actions that affect all of the
threads in a process
– The OS must manage these at the process
level.
• Examples:
– Suspending a process involves suspending all
threads of the process
– Termination of a process, terminates all
threads within the process
Activities similar
to Processes
• Threads have execution states and may
synchronize with one another.
– Similar to processes
• We look at these two aspects of thread
functionality in turn.
– States
– Synchronisation
Thread Execution States
• States associated with a change in thread
state
– Spawn (another thread)
– Block
• Issue: will blocking a thread block other, or all,
threads
– Unblock
– Finish (thread)
• Deallocate register context and stacks
Example:
Remote Procedure Call
• Consider:
– A program that performs two remote
procedure calls (RPCs)
– to two different hosts
– to obtain a combined result.
RPC
Using Single Thread
RPC Using
One Thread per Server
Multithreading
on a Uniprocessor

You might also like