430 likes | 577 Views
Threads, SMP, and Microkernels. Chapter 4. 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
E N D
Threads, SMP, and Microkernels Chapter 4
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
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!
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
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
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
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
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
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
Thread States • States associated with a change in thread state • Spawn • Spawn another thread • Block • Unblock • Finish • Deallocate register context and stacks
Categories of Thread Implementation • User-level threads • Kernel-level threads
User-Level Threads • All thread management is done by the application • The kernel is not aware of the existence of threads
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
Combined Approaches • Example is Solaris • Thread creation done in the user space • Bulk of scheduling and synchronization of threads within application
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
Flynn’s Taxonomy • Extensions to Flynn’s taxonomy: • Single Program Multiple Data (SPMD)—a programming model • This classification is largely outdated!
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
Shared Memory • All processors have access to shared memory: • Notion of “Global Address Space”
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
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
Benefits of a Microkernel Organization • Uniform interface on request made by a process • Extensibility • Flexibility • Portability • Reliability • Distributed System Support • Object-oriented Operating System
Microkernel Design • Low-level memory management • Mapping each virtual page to a physical page frame
Microkernel Design • Interprocess communication • I/O and interrupt management