Lesson 05 SMP Microkernels Parallel Processors Parallel Processors
- Slides: 23
Lesson 05 SMP & Micro-kernels
Parallel Processors • Parallel Processors: • The simultaneous use of more than one CPU for faster execution of a program. It is the simultaneous use of multiple compute resources to solve a computational problem. • A problem is broken into discrete parts that can be solved concurrently • Each part is further broken down to a series of instructions • Instructions from each part execute simultaneously on different processors
Parallel Processors
Hardware Parallelism • Flynn’s taxonomy (Michael Flynn, 1996) classifies computer architectures based on the number of instructions that can be executed and how they operate on data. • Single Instruction Single Data (SISD) • Traditional sequential computing systems • Single Instruction Multiple Data (SIMD) • Multiple Instructions Single Data (MISD) • Multiple Instructions Multiple Data (MIMD) Computer Architectures SISD SIMD MISD
Computer Architecture • Single Instruction Single Data (SISD) stream – Single processor executes a single instruction stream to operate on data stored in a single memory – Based on Von Neumann architecture – No parallel execution
Computer Architecture § Single Instruction Multiple Data (SIMD) stream • Also called array processor • Single instruction controls the simultaneous execution of different set of data by the different processors
Computer Architecture § Multiple Instruction Single Data (MISD) – A sequence of data is transmitted to a set of processors, each of execute a different instruction sequence – Output of one processer will be input of other – Not implemented practically
Computer Architecture § Multiple Instruction Multiple Data (MIMD) – A set of processors simultaneously execute different instruction sequences on different data sets
Multiple Instructions Multiple Data • According to way of processor communication, MIMD is divided into two categories: 1. Shared Memory (Tightly coupled) • Each processor has Dedicated Memory • Each processor behave like separate computer • Connected via fixed path or network • Called as multicomputer or cluster 2. Distributed Memory (loosely coupled) • Share memory (for program and data) • Called shared-memory multiprocessor.
Parallel Processor Architecture
Shared Memory (Tightly Coupled) • According to processes are assigned to processors, shared memory is divided into two categories: 1. Master/Slave Architecture • Kernel level processes always runs on a particular processor – Master processor is also responsible for scheduling processes • User level processes runs on remaining processors v Disadvantages – Configuration / processing speed of master may affect whole system – Failure of master will collapse whole system
Shared Memory (Tightly Coupled) 2. Symmetric Multiprocessors (SMP) • Kernel process can execute on any processor • Each processor perform self scheduling from pool of available processes • Problem may occur if two processors will choose same processes.
Symmetric Multiprocessing (SMP) • Cache is private for each processor. • Cache Coherence – Due to private cache for each processor problem of cache coherence occurs, as change in value of cache of one processor does not reflect in cache of other processors, which is handled in hardware rather than Operating system.
Key Design Issues of Symmetric Multiprocessing (SMP) • Simultaneous concurrent processes or threads – Multiple processors may execute same/different part of kernel & kernel table and structure must avoid deadlock. • Scheduling – Threads of same process may be executed on different processors, so multiprocessor scheduling must be managed. • Synchronization – Facility to enforce mutual exclusion and event ordering – A common synchronization mechanism used in multiprocessor operating systems is locks
Key Design Issues of Symmetric Multiprocessing (SMP) • Memory Management – To ensure access for memory for each processor • Reliability and Fault Tolerance – In case of failure of any processor, recognize and restructure loss.
MICROKERNELS
Kernel • Intermediary between applications and hardware – Remain in RAM and charge all operations of operating system • Responsible for: – Process management – Memory management – Device management – System calls
Microkernel • A microkernel is a small OS core that provides the foundation for modular extensions. – Modular: System composed of separate connected components • Basic Idea: – Absolutely essential core OS functions are placed in kernel. – Less essential services are built in microkernel and execute in user mode. • Kernel supervises functionality of microkernels
Microkernel
Microkernel • Monolithic OS: – Any procedure can call any other procedure. – Difficult to handle, as its code crossed millions of lines. – E. g. MS DOS • Microkernel based OS: – Extensibility and its ability to enforce modularity behind memory protection boundaries – Less bugs than one that is larger and complex. – E. g. • UNIX
Microkernel
Benefits of Microkernel Organization • Extensibility – To add new service, only selected server is modified or added. • Flexibility – Flexibility of not only add but also remove features from O. S • Portability – More code is in microkernel, so change of code according to specific microprocessor is easier, which enhance portability.
Presentations • Windows Thread and SMP Management • Solaris Thread and SMP Management • Linux Process and Thread Management 23
- Microkernel
- Mach operating system
- Programming massively parallel processors
- Parallel processors from client to cloud
- Programming massively parallel processors
- Programming massively parallel processors
- Programming massively parallel processors, kirk et al.
- Non linear pipeline processor
- Interrupt handling in arm processors
- Processor history
- Handlers classification of parallel computing structure
- Digital camera processors
- Intel processor weakness
- Embeded processors
- Microcontrollers and embedded processors
- Comparison of word processors
- Distributed query processing
- Gas processors association
- Beagleboard embedded processors
- Ece 526
- Macro processors
- Vliw
- Macro processor design options
- Language and processors for requirement