Processes and Threads: - Processes Have Two Characteristics
Processes and Threads: - Processes Have Two Characteristics
While the process is running, it controls the processor registers. The contents of these registers are
saved when the process is not running.
In a multithreaded environment,
• there is still a single process control block and user address space associated with the
process,
• but separate stacks for each thread,
• as well as a separate control block for each thread containing register values, priority, and
other thread-related state information.
Thus, all of the threads of a process share the state and resources of that process.
• They reside in the same address space and have access to the same data.
• When one thread alters an item of data in memory, other threads see the results if and when
they access that item.
• If one thread opens a file with read privileges, other threads in the same process can also
read from that file.
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
• If there is an application or function that should be
implemented as a set of related units of execution,
• it is far more efficient to do so as a collection of
threads - rather than a collection of separate
processes.
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
Adobe PageMaker
Categories of
Thread Implementation
• User Level Thread (ULT)
• Example is Solaris
Relationship Between
Thread and Processes
Traditional View
• Traditionally, the computer has been viewed
as a sequential machine.
– A processor executes instructions one at a time in
sequence
– Each instruction is a sequence of operations
• Two popular approaches to providing
parallelism
– Symmetric MultiProcessors (SMPs)
– Clusters (ch 16)
Categories of
Computer Systems
• Single Instruction Single Data (SISD) stream
– Single processor executes a single instruction
stream to operate on data stored in a single
memory
• Single Instruction Multiple Data (SIMD) stream
– Each instruction is executed on a different set of
data by the different processors
Categories of Computer Systems
• Multiple Instruction Single Data (MISD) stream
(Never implemented)
– A sequence of data is transmitted to a set of
processors, each of execute a different instruction
sequence
• Multiple Instruction Multiple Data (MIMD)
– A set of processors simultaneously execute
different instruction sequences on different data
sets
Parallel Processor
Architectures
Symmetric
Multiprocessing
• Kernel can execute on any processor
– Allowing portions of the kernel to execute in
parallel
• Typically each processor does self-scheduling
from the pool of available process or threads
Typical
SMP Organization
Multiprocessor OS
Design Considerations
• The key design issues include
– Simultaneous concurrent processes or threads
– Scheduling
– Synchronization
– Memory Management
– Reliability and Fault Tolerance