Lesson 05 SMP Microkernels Parallel Processors Parallel Processors

  • Slides: 23
Download presentation
Lesson 05 SMP & Micro-kernels

Lesson 05 SMP & Micro-kernels

Parallel Processors • Parallel Processors: • The simultaneous use of more than one CPU

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

Parallel Processors

Hardware Parallelism • Flynn’s taxonomy (Michael Flynn, 1996) classifies computer architectures based on the

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

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

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

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

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

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

Parallel Processor Architecture

Shared Memory (Tightly Coupled) • According to processes are assigned to processors, shared memory

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

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 –

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 –

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

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

MICROKERNELS

Kernel • Intermediary between applications and hardware – Remain in RAM and charge all

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

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

Microkernel • Monolithic OS: – Any procedure can call any other procedure. – Difficult

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

Microkernel

Benefits of Microkernel Organization • Extensibility – To add new service, only selected server

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 •

Presentations • Windows Thread and SMP Management • Solaris Thread and SMP Management • Linux Process and Thread Management 23