Threads, SMP, and Microkernels

advertisement
Threads, SMP, and Microkernels
Chapter 4
1
Process: Some Info.
• Motivation for threads!
• Two fundamental aspects of a “process”:
• Resource ownership
• Scheduling or execution
• 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
• So far, we have considered processes that had
just one thread:
• A “process” or a “process with one thread” are kind of
similar!
3
Multithreading
• An attempt to define 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
What exactly is a Process now?
• Have a virtual address space which holds the
process image
• Protected access to processors, other
processes, files, and I/O resources
6
What exactly is a Thread now?
•
•
•
•
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:
• In GUI-based applications, one thread can make
display and the other can process input
• Asynchronous processing:
• Daemons or services in OSes
• Speed of execution:
• Make even better use of processor, especially in
multiprocessor systems
• Modular program structure
10
Threads: What happens to state
models?
• 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
TOP Command
16
PSTREE Command
17
/proc directory on Linux
18
Details of Process 2114
19
Adobe PageMaker
20
Categories of Thread
Implementation
• User-level threads
• Kernel-level threads
21
22
User-Level Threads
• All thread management is done by the
application
• The kernel is not aware of the existence of
threads
23
User-Level Threads
24
25
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
26
Kernel-Level Threads
27
VAX Running UNIX-Like Operating
System
28
Combined Approaches
• Example is Solaris
• Thread creation done in the user space
• Bulk of scheduling and synchronization of
threads within application
29
Combined Approaches
30
Relationship Between Threads and
Processes
31
Flynn’s Taxonomy
• There is no authoritative classification of parallel computers!
• Flynn’s taxonomy is one such classification based on number of
instruction and data stream processed by a parallel computer:
•
•
•
•
Single Instruction Single Data (SISD)
Multiple Instruction Single Data (MISD)
Single Instruction Multiple Data (SIMD)
Multiple Instruction Multiple Data (MIMD)
• Almost all modern computers fall in this category
32
Flynn’s Taxonomy
• Extensions to Flynn’s taxonomy:
• Single Program Multiple Data (SPMD)—a
programming model
• This classification is largely outdated!
33
34
Symmetric Multi-Processors (SMP)
• A SMP is a parallel processing system with a
shared-everything approach:
• The term signifies that each processor shares the
main memory and possibly the cache
• Typically a SMP can have 2 to 256 processors
• Examples include AMD Athlon, AMD Opteron
200 and 2000 series, Intel XEON etc
35
Shared Memory
• All processors have access to shared memory:
• Notion of “Global Address Space”
36
37
Multiprocessor Operating System
Design Considerations
• Simultaneous concurrent processes or threads:
• Executing same kernel code should not result in
erroneous behavior
• Scheduling:
• Opportunities exist to execute multiple threads of the
same process
• Synchronization
• Memory management
• Reliability and fault tolerance
38
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
39
40
Benefits of a Microkernel Organization
•
•
•
•
•
•
•
Uniform interface on request made by a process
Extensibility
Flexibility
Portability
Reliability
Distributed System Support
Object-oriented Operating System
41
Microkernel Design
• Low-level memory management
• Mapping each virtual page to a physical page frame
42
Microkernel Design
• Interprocess communication
• I/O and interrupt management
43
Download