160-177

advertisement
Operating Systems:
Internals and Design Principles, 6/E
William Stallings
Chapter 4
Threads, SMP, and
Microkernels
Patricia Roy
Manatee Community College, Venice, FL
©2008, Prentice Hall
Processes and Threads
• 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
• Dispatching is referred to as a thread or
lightweight process
• Resource of ownership is referred to as a
process or task
Multithreading
• OS supports multiple, concurrent paths of
execution within a single process
Multithreading
• MS-DOS supports a single user process
and thread
• UNIX supports multiple user processes but
only supports one thread per process
• Java run-time environment is a single
process with multiple threads
Threads and Processes
Processes
• A virtual address space which holds the
process image
• Protected access to processors, other
processes, files, and I/O resources
One or More Threads in
Process
• An execution state (running, ready, etc.)
• Saved thread context when not running
• An execution stack
One or More Threads in
Process
• Some per-thread static storage for local
variables
• Access to the memory and resources of its
process
– all threads of a process share this
Threads
Benefits of Threads
• Takes less time to create a new thread
than a process
• Less time to terminate a thread than a
process
• Less time to switch between two threads
within the same process
Benefits of Threads
• Since threads within the same process
share memory and files, they can
communicate with each other without
invoking the kernel
Uses of Threads in a SingleUser Multiprocessing System
•
•
•
•
Foreground and background work
Asynchronous processing
Speed of execution
Modular program structure
Threads
• Suspending a process involves
suspending all threads of the process
since all threads share the same address
space
• Termination of a process, terminates all
threads within the process
Thread States
• States associated with a change in thread
state
– Spawn
• Spawn another thread
– Block
– Unblock
– Finish
• Deallocate register context and stacks
Remote Procedure Call Using
Single Thread
RPC Using One Thread per
Server
Multithreading
Adobe PageMaker
User-Level Threads
• All thread management is done by the
application
• The kernel is not aware of the existence of
threads
User-Level Threads
Kernel-Level Threads
• Windows is an example of this approach
• Kernel maintains context information for
the process and the threads
• Scheduling is done on a thread basis
Kernel-Level Threads
Combined Approaches
• Example is Solaris
• Thread creation done in the user space
• Bulk of scheduling and synchronization of
threads within application
Combined Approaches
Relationship Between Thread
and Processes
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
– A sequence of data is transmitted to a set of
processors, each of which executes a
different instruction sequence. Never
implemented
• 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
• Typically each processor does selfscheduling form the pool of available
process or threads
Symmetric Multiprocessor
Organization
Multiprocessor Operating
Systems Design Considerations
• Simultaneous concurrent processes or
threads
– Kernel must be reentrant
– Data structures need multiple update locking
• Scheduling
– Multiple schedulers in operation, no conflicts!
• Synchronization
– Shared data space, need locking
Multiprocessor Operating
Systems Design Considerations
• Memory management
– Paging issues
– Sharing of hardware
• Reliability and fault tolerance
– Tolerate single processor failure
– graceful degradation
Microkernels - Motivation
•
•
•
•
•
Monolithic systems unsustainable
First OS/360 had 1 million LOC
Multics had 20 million!
Layering helps, but not full solution
Swap vertical layers for horizontal
Microkernels
• Small operating system core
• Contains only essential core operating
systems functions
• Message passing through microkernel
Kernel Architecture
Benefits of a Microkernel
Organization
• Uniform interfaces
– Don’t distinguish between kernel-level and
user-level services
– All services are provided by means of
message passing
• Extensibility
• Flexibility
– New features added
– Existing features can be subtracted
Benefits of a Microkernel
Organization
• Portability
– Changes needed to port the system to a new
processor are only in the microkernel
• Reliability
– Small microkernel can be rigorously tested
Benefits of a Microkernel
Organization
• Distributed system support
– Message are sent without knowing what the
target machine is
• Object-oriented operating systems
– Components are objects with clearly defined
interfaces that can be interconnected to form
software
Microkernel Performance
• Message passing more expensive than
SVC
• Other factors offset this
• Smaller can be better
– Example: 12KB and 7 SVCs!
– Perform as well as or better than layered
architectures
Microkernel Examples
• Mach (CMU 1985 - basis of Apple OS X)
• Chorus (INRIA 1980)
Microkernel Design
• Low-level memory management
– Mapping each virtual page to a physical page
frame
Microkernel Design
• Interprocess communication
– Heavy use of shared memory
• I/O and interrupt management
– Translate interrupts into message passing
– Device specific processing done outside
kernel
Windows Processes
• Implemented as objects
• An executable process may contain one or
more threads
• Both processes and thread objects have
built-in synchronization capabilities
Windows Processes
Windows Process Object
Windows Thread Object
Thread States
Solaris
• Process includes the user’s address
space, stack, and process control block
• User-level threads
• Lightweight processes (LWP)
• Kernel threads
Processes and Threads in
Solaris
LWP Data Structure
•
•
•
•
Identifier
Priority
Signal mask
Saved values of user-level registers
LWP Data Structure
•
•
•
•
Kernel stack
Resource usage and profiling data
Pointer to the corresponding kernel thread
Pointer to the process structure
Process Structure
Solaris Thread States
Linux Tasks
•
•
•
•
State
Scheduling information
Identifiers
Interprocess communication
Linux Tasks
•
•
•
•
•
Links
Times and timers
File system
Address space
Processor-specific context
Linux Process/Thread Model
Download