1 threads, smp, and microkernels chapter 4. 2 process: some info. motivation for threads! two...
Post on 19-Dec-2015
216 views
TRANSCRIPT
1
Threads, SMP, and Microkernels
Chapter 4
2
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
3
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!
4
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
5
6
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
7
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
8
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 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
11
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
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
15
Multithreading
16
TOP Command
17
PSTREE Command
18
/proc directory on Linux
19
Details of Process 2114
20
Adobe PageMaker
21
Categories of Thread Implementation
• User-level threads• Kernel-level threads
22
23
User-Level Threads• All thread management is done by the
application• The kernel is not aware of the existence of
threads
24
User-Level Threads
25
26
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
27
Kernel-Level Threads
28
VAX Running UNIX-Like Operating System
29
Combined Approaches• Example is Solaris• Thread creation done in the user space• Bulk of scheduling and synchronization of
threads within application
30
Combined Approaches
31
Relationship Between Threads and Processes
32
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
33
Flynn’s Taxonomy• Extensions to Flynn’s taxonomy:
• Single Program Multiple Data (SPMD)—a programming model
• This classification is largely outdated!
34
35
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
36
Shared Memory• All processors have access to shared memory:
• Notion of “Global Address Space”
37
38
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
39
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
40
41
Benefits of a Microkernel Organization
• Uniform interface on request made by a process• Extensibility• Flexibility• Portability• Reliability• Distributed System Support• Object-oriented Operating System
42
Microkernel Design• Low-level memory management
• Mapping each virtual page to a physical page frame
43
Microkernel Design• Interprocess communication• I/O and interrupt management