Threads, SMP, and Microkernels
Threads, SMP, and Microkernels
Microkernels
Chapter 4
1
Process
• 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
2
Process
• Dispatching is referred to as a thread
or lightweight process
• Resource of ownership is referred to
as a process or task
3
Multithreading
• Operating system supports multiple threads of
execution within a single process
• MS-DOS supports a single thread
• UNIX supports multiple user processes but only
supports one thread per process
• Windows, Solaris, Linux, Mach, and OS/2
support multiple threads
4
5
Process
• Have a virtual address space which
holds the process image
• Protected access to processors, other
processes, files, and I/O resources
6
Thread
• An execution state (running, ready, etc.)
• Saved thread context when not running
• Has 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
7
8
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
• Since threads within the same process share
memory and files, they can communicate with
each other without invoking the kernel
9
Uses of Threads in a Single-
User Multiprocessing System
• Foreground to background work
• Asynchronous processing
• Speed of execution
• Modular program structure
10
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
11
Thread States
• States associated with a change in
thread state
– Spawn
• Spawn another thread
– Block
– Unblock
– Finish
• Deallocate register context and stacks
12
Remote Procedure Call
Using Single Thread
13
Remote Procedure Call Using
Threads
14
Multithreading
15
Adobe PageMaker
16
User-Level Threads
• All thread management is done by the
application
• The kernel is not aware of the
existence of threads
17
User-Level Threads
18
19
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
20
Kernel-Level Threads
21
VAX Running UNIX-Like
Operating System
22
Combined Approaches
• Example is Solaris
• Thread creation done in the user
space
• Bulk of scheduling and synchronization
of threads within application
23
Combined Approaches
24
Relationship Between Threads
and Processes
25
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
26
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
27
28
Symmetric Multiprocessing
• Kernel can execute on any processor
• Typically each processor does self-
scheduling form the pool of available
process or threads
29
30
Multiprocessor Operating
System Design
Considerations
• Simultaneous concurrent processes or
threads
• Scheduling
• Synchronization
• Memory management
• Reliability and fault tolerance
31
Microkernels
• Small operating system core
• Contains only essential core operating systems
functions
• Many services traditionally included in the
operating system are now external subsystems
– Device drivers
– File systems
– Virtual memory manager
– Windowing system
– Security services
32
33
Benefits of a Microkernel
Organization
• Uniform interface on request made by a process
– Don’t distinguish between kernel-level and user-level
services
– All services are provided by means of message
passing
• Extensibility
– Allows the addition of new services
• Flexibility
– New features added
– Existing features can be subtracted
34
Benefits of a Microkernel
Organization
• Portability
– Changes needed to port the system to a
new processor is changed in the
microkernel - not in the other services
• Reliability
– Modular design
– Small microkernel can be rigorously tested
35
Benefits of Microkernel
Organization
• Distributed system support
– Message are sent without knowing what
the target machine is
• Object-oriented operating system
– Components are objects with clearly
defined interfaces that can be
interconnected to form software
36
Microkernel Design
• Low-level memory management
– Mapping each virtual page to a physical page frame
37
Microkernel Design
• Interprocess communication
• I/O and interrupt management
38
Windows Processes
• Implemented as objects
• An executable process may contain
one or more threads
• Both processes and thread objects
have built-in synchronization
capabilities
39
40
Windows Process Object
41
Windows Thread Object
42
Windows 2000
Thread States
• Ready
• Standby
• Running
• Waiting
• Transition
• Terminated
43
44
Solaris
• Process includes the user’s address
space, stack, and process control
block
• User-level threads
• Lightweight processes (LWP)
• Kernel threads
45
46
47
Solaris Lightweight Data
Structure
• Identifier
• Priority
• Signal mask
• Saved values of user-level registers
• Kernel stack
• Resource usage and profiling data
• Pointer to the corresponding kernel thread
• Pointer to the process structure
48
49
Linux Task Data Structure
• State
• Scheduling information
• Identifiers
• Interprocess communication
• Links
• Times and timers
• File system
• Address space
• Processor-specific context
50
Linux States of a Process
• Running
• Interruptable
• Uninterruptable
• Stopped
• Zombie
51
52