Solaris Symmetric Multiprocessing
Download
Report
Transcript Solaris Symmetric Multiprocessing
Windows 2000 and Solaris: Threads
and SMP Management
Submitted by: Rahul Bhuman
Solaris Processes
•Process is an abstraction that contains the environment for a user
program
•Each process has a context and various items of state information
that define the execution environment of the process
•A process’s context is further divided into a hardware and software
context.
•Process contain one or more threads
•Kernel maintains a system wide process table, where by each
process is uniquely identified by a positive integer called the process
identification number.
Scheduling class and priority
K
er
ne
l
pr
oc
es
s
ta
bl
e
Pro
ces
s
Process
lineage
(parents,
children)
Signals,
handlers,
disposition
Process state
Process ID (PID)
Process group ID
Parent process ID
Hardware
context
(registers,
stack)
CPU(s)
Memory
Address space
I/O
Open files
Session
information
(control
terminal, job
control state)
Credentials (UID, GID)
The basic process environment, minus the thread abstractions below.
Windows 2000 Process
At the highest level of abstraction, windows 2000 process
comprises the following:
•A private virtual address space
•An executable program
•A list of open handles to various system resources that are
accessible to all threads in the process.
•A security context called an access token.
•A unique identifier called a process ID
•At least one thread of execution.
Structure of Executive Block
Kennel Process Block
Process Environment Block
Solaris Threads
• User-Level Threads (ULTs)
• Implemented through a threads library in the address space of a
process
• Invisible to the OS
• Lightweight processes (LWPs)
• A mapping between ULTs and kernel threads
• Each LWP supports one or more ULTs and maps to one kernel
thread
• Scheduled by the kernel independently
• May execute in parallel on multiprocessors
• Kernel threads
• Fundamental entities that can be scheduled and dispatched to
run on one of the system processors
U
U
U
se
se
se
r
r
r
th
th
th
re
re
re
ad
ad
ad
Software context:
open file, credential,
address space,
process group,
session control,…
L
W
P|
L
W
P|
Ma
chi
ne
stat
e
Ma
chi
ne
stat
e
Kt
hr
ea
d
Kt
hr
ea
d
U
se
r
th
re
ad
U
se
r
th
re
ad
Pr
oc
es
s
Pr
oc
es
s
U
se
r
th
re
ad
Unbound user
threads are
scheduled within the
threads library, where
the selected user
thread is linked to an
available LWP.
Software context:
open file, credential,
address space,
process group,
session control,…
L
W
P|
L
W
P|
Ma
chi
ne
stat
e
Ma
chi
ne
stat
e
Kt
hr
ea
d
Kt
hr
ea
d
C
P
U
Solaris Multithreaded process model
Windows 2000 Threads
A thread is the entity within a process that Windows 2000 schedules for
execution.
Thread Includes:
•The contents of a set of CPU registers representing the state of the
processor
•Two stacks
•A private storage area called thread-local storage (TLS)
•A unique identifier called a thread ID
•Threads sometimes have their own security context
Structure of ETHREAD block
Kernel Thread Block
Thread Environment Block (TEB)
Solaris Thread States
Windows 2000 Thread States
Solaris Thread Scheduling
User Range
priority
10
59
interrupt
Real Time
169
ints
1
0
User Range
priority
+60
interactive
System
-60
+60
User Range
priority
Time Share
0
-60
Class Priority Range
Global Priority Range
Scheduling Class
0 - 59
000 – 059
Time Share and Interactive
0 – 39
060 – 099
System
0–9
100 – 109
Interrupt Threads if the Real time
class is not loaded
0 – 59
100 – 159
Real Time
0–9
160 – 169
Interrupt threads if the RT class
is loaded
Windows 2000 Thread Scheduling
Windows 2000 Symmetric Multiprocessing
Windows 2000 Symmetric Multiprocessing
Windows 2000 is a symmetric multiprocessing (SMP)
operating system. There is no master processor.
Windows 2000 incorporates several features that are crucial to
its success as a multiprocessor operating system:
•The ability to run operating system code on any available
processor and on multiple processors at the same time
•Multiple threads of execution within a single process,
each of which can execute simultaneously on different
processors
•Fine-grained synchronization within the kernel as well as
within device drivers and server processes, which allows
more components to run concurrently on multiple
processors
Solaris Symmetric Multiprocessing
A Single Multiprocessor system.
Shared memory, symmetric system with
uniform memory and I/O access. Single
kernel image shared by all processes –
single address space view.
1
2
3
1
2
3
1
1
2
2
1 is CPU (s)
2 is Memory
3 is I/O
3
3
1
1
2
2
3
3
A system interconnect,
either bus or cross – bar
design. Cache – coherent
protocol for data transfers
to/from memory,
processors, and I/O. Very
high, sustainable bandwidth
with uniform access times
(latency)
Solaris Symmetric Multiprocessing
•Solaris supports shared memory architecture, which implements a
single kernel shared by all the processors and single uniform
memory address space.
•Symmetric Multiprocessor describes a system in which a peer-topeer relationship exists among all the processors (CPUs) on the
system
•All processors are equal
References
•Solaris Internals – Core Kernel Architecture
Jim Mauro and Richard McDougall
•Inside Microsoft Windows 2000: Third Edition
David A. Solomon and Mark E.Russinovich
•Operating Systems: Internals and Design Principles
William Stallings