Title: Windows 2000 and Solaris: Threads and SMP Management
1 Windows 2000 and Solaris Threads and SMP
Management Submitted by Rahul Bhuman
2 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 processs 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.
3Hardware context (registers, stack)
Scheduling class and priority
Kernel process table
CPU(s)
Process lineage (parents, children)
Signals, handlers, disposition
Memory
Process
Address space
I/O
Process state
Open files
Session information (control terminal, job
control state)
Process ID (PID) Process group ID Parent process
ID
Credentials (UID, GID)
The basic process environment, minus the thread
abstractions below.
4Windows 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.
5Structure of Executive Block
6Kennel Process Block
7Process Environment Block
8Solaris 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
9Unbound 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,
Software context open file, credential,
address space, process group, session control,
User thread
User thread
User thread
User thread
User thread
User thread
Process
Process
LWP Machine state
LWP Machine state
LWP Machine state
LWP Machine state
CPU
Kthread
Kthread
Kthread
Kthread
Solaris Multithreaded process model
10Windows 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
11Structure of ETHREAD block
12 Kernel Thread Block Thread Environment Block
(TEB)
13Solaris Thread States
14Windows 2000 Thread States
15Solaris Thread Scheduling
10
59
interrupt
ints
169
User Range priority
Real Time
1
0
60
User Range priority
interactive
System
-60
60
User Range priority
Time Share
0
-60
16Windows 2000 Thread Scheduling
17Windows 2000 Symmetric Multiprocessing
18Windows 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 - Â
19Solaris 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 2 3
1 2 3
1 2 3
1 2 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)
1 is CPU (s) 2 is Memory 3 is I/O
20Solaris 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-to-peer relationship exists among
all the processors (CPUs) on the system - All processors are equal
21References
- 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