صفحه 1:
Threads, SMP, and
Microkernels
Chapter 4
صفحه 2:
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
صفحه 3:
Process
° Dispatching is referred to as a
thread or lightweight process
° Resource of ownership is
referred to as a process or task
صفحه 4:
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:
Toe process
joneprocess 000000
ees سه سدسمب سس م كا
۳
عع م ةس 1 لد ساد
Threatperprees
صفحه 6:
Process
° Have a virtual address space
which holds the process image
° Protected access to processors,
other processes, files, and I/O
resources
صفحه 7:
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
صفحه 8:
Figure 4.2. Single Threaded and Multithreaded Process Models
صفحه 9:
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
صفحه 10:
Uses 01 111۲6005 1۳ 2
Single-User
DROS reser
work
° Asynchronous processing
° Speed of execution
° Modular program structure
صفحه 11:
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
صفحه 12:
Thread States
° States associated with a change
in thread state
- Spawn
* Spawn another thread
~ Block
~ Unblock
~ Finish
* Deallocate register context and
stacks
صفحه 13:
Remote Procedure Call
Using Single Thread
صفحه 14:
Remote Procedure Call
Using Threads
Figure 43 Remote Procedure Cull (RPC) Using Threads
صفحه 15:
Multithreading
Figure 4.4 Multithreading Example on a Uniprocessor
صفحه 16:
Adobe PageMaker
صفحه 17:
User-Level Threads
° All thread management is done
by the application
¢ The kernel is not aware of the
existence of threads
صفحه 18:
User-Level Threads
صفحه 19:
19
صفحه 20:
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
صفحه 21:
Kernel-Level Threads
صفحه 22:
VAX Running UNIX-Like
Operating System
Table 4.1 Thread and Process Operation Latencies (Hs) [ANDE92]
Kernel Level
Operation __User-Lovel Threads Threads Processes
Nall Fork 34 948 11,300
Signal Wait 37 441 1.840
صفحه 23:
Combined Approaches
° Example is Solaris
° Thread creation done in the
user space
° Bulk of scheduling and
synchronization of threads
within application
صفحه 24:
Combined Approaches
صفحه 25:
Relationship Between
Threads and Processes
Tablo 4.2 Relationship Between Threads and Processes
Description Example Systems
1 Each thread of execution isa Traditional UNIS
‘unique process with its owa implementations
address space and resources
ML Avprocess defines an address Windows NT. Solis, Limus
space and dymamic resource OS2, OS/390, MACH
‘ownership. Multiple threads
may be created and executed
‘within that process.
LM Attuead may migrate from Ra (Clouds), Emerald
fone process environment to
smother. This allows a thread
tobe easily moved among
distinct systems.
‘MN Combines attributes of ان
and LM cases
صفحه 26:
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
صفحه 27:
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)
~ Aset of processors simultaneously
execute different instruction sequences
on different data sets
27
صفحه 28:
sIMD MIMD
(single instruction (multiple instruction
multiple data stream) multiple data stream)
Shared-Memory Distributed-Memory
(tightly coupled) (loosely coupled)
Master/Slave Clusters
‘Multiprocessors
(SMP)
Figure 48 Parallel Processor Architectures
28
صفحه 29:
Symmetric
Multiprocessing
° Kernel can execute on any
processor
° Typically each processor does
self-scheduling form the pool of
available process or threads
صفحه 30:
30
موی
[rica
Procesor Processor
17 1
Sytem Bus
10
و
10
Adapter
10
ند
mmetric Multiprocessor Organization
vo
‘Subsystem
Figure 49
صفحه 31:
011111111021 0065501
Operating System
sign n Considerations
a neous concurrent
processes or threads
° Scheduling
° Synchronization
° Memory management
° Reliability and fault tolerance
صفحه 32:
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:
33
Pron
(0) Mlerokernet
Interprocess Communication نا
1 an Device Manage
Kernel
Prive Process Management Kern
(a) Layered kernel
Figure 4.10 Kernel Architecture
user
Mode
Kernel
Mae
صفحه 34:
261161115 01 2
Microkernel
۰ هنن 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
صفحه 35:
261161115 01 2
Microkernel
خم ۲
~ 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
صفحه 36:
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
صفحه 37:
Microkernel Design
* Low-level memory management
~ Mapping each virtual page to a physical
page frame
Figure 4.11 Page Fault Processing
37
صفحه 38:
Microkernel Design
° Interprocess communication
° I/O and interrupt management
صفحه 39:
Windows Processes
° Implemented as objects
° An executable process may
contain one or more threads
° Both processes and thread
objects have built-in
synchronization capabilities
صفحه 40:
40
م
ص
irtual address descriptors
Handle Vable Available
objects
Process
‘object
ان
اسر
Handles
Figure 4.12 A Windows Process and Its Resources
صفحه 41:
Windows Process
Object
صفحه 42:
Windows Thread Object
‘Thread
3
‘Tiree context
لإا سر
ts pity
Tirta pocessrafinty
‘Tirta exeution Ene
Alen sis
Suspension count
ممما هه
‘Termini port
‘Tire exit sis
‘Gate nea
‘Open teat
(Quety treed snformation
Settad information
(Caren hea!
مس و
ادن ان
Suspend
Rene
مت سیم
۳
(0) Thread object
42
ject type
(one Beaty
صفحه 43:
Windows 2000
Thread States
° Ready
° Standby
° Running
° Waiting
° Transition
° Terminated
صفحه 44:
44
تست
eS
يي رست
اعمط
Suspend,
‘siting ١
Figure 4.14 Windows Thread States
E>
Resource Not Available
Not Runnable
صفحه 45:
Solaris
° Process includes the user’s
address space, stack, and
process control block
° User-level threads
° Lightweight processes (LWP)
° Kernel threads
صفحه 46:
سح [ج] تن یدای ert eat )3( تسس
Figure 4.15 Solaris Multithreaded Architecture Example
صفحه 47:
UNIX Process Structure Solaris Process Structure
‘peepee
Figure 4.16 Process Structure in Traditional UNIX and Solaris [LEWI96]
47
صفحه 48:
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
صفحه 49:
49
3 User-Level Threads
هس
هه or Preamps
wakeup
locked
Lightweight Processes
is User-Level Thread and LWP States
ure 417 Si
صفحه 50:
Linux Task Data
Structure
State
Scheduling information
Identifiers
Interprocess communication
Links
Times and timers
File system
Address space
Processor-specific context
صفحه 51:
Linux States of a
Process
° Running
° Interruptable
° Uninterruptable
° Stopped
° Zombie
صفحه 52:
52
Figure 4.18 Linux Process/Thread Model
creation