Presentation is loading. Please wait.

Presentation is loading. Please wait.

Advanced Design and System Patterns The Microkernel Pattern.

Similar presentations


Presentation on theme: "Advanced Design and System Patterns The Microkernel Pattern."— Presentation transcript:

1 Advanced Design and System Patterns The Microkernel Pattern

2 2 Advanced Design and System Patterns What is the Microkernel Pattern? Similar to Layers pattern Separate minimal functionality from extended functionality Able to adapt to customer-specific parts Originates from OS theory and research

3 3 Advanced Design and System Patterns Why use the Microkernel Pattern? When there is a need to adapt to changing system requirements Portability, extensibility and adaptability Easy integration of emerging technologies (e.g. emulation)

4 4 Advanced Design and System Patterns Roles to be played Internal server External server Adapter Client Microkernel

5 5 Advanced Design and System Patterns The Microkernel in more detail Implements central services Other components build on these basic services Encapsulation of system-specific dependencies These basic services are called atomic services (or mechanisms)

6 6 Advanced Design and System Patterns Internal Server (Subsystem) in more detail Extends functionality offered by the microkernel Separate component Encapsulates some dependencies on underlying hardware/software system Example: device drivers

7 7 Advanced Design and System Patterns External Server (Personality) in more detail Uses microkernel to implement its own view of the underlying application domain Layer on top of atomic services provided by microkernel Different external servers implement different policies from different application domains Example: OS/2 Warp

8 8 Advanced Design and System Patterns Client in more detail Application that is associated with exactly one external server It accesses the APIs provided by the external server

9 9 Advanced Design and System Patterns Adapter (Emulator) in more detail Protect clients and external server from direct dependencies Use adapter interface Example: no distinction between a native OS/2 Warp and microkernel support Implement as a Proxy (since Adapter refers to one external server)

10 10 Advanced Design and System Patterns Example: The CHORUS System Originated in INRIA (France) in 1990 High-performance UNIX emulation Distributed environments RT applications Integration with OOT

11 11 Advanced Design and System Patterns Chorus Architecture

12 12 Advanced Design and System Patterns Example of a Microkernel System (Chorus)

13 13 Advanced Design and System Patterns Test Case Windows NT Architecture OS designed to run programs from different environments DOS, 16-bit Windows, OS/2 Client-server model (programs run in User mode) Calls packaged and sent to Kernel via LPC

14 14 Advanced Design and System Patterns System Services

15 15 Advanced Design and System Patterns General Features NT Executive is layered Some objects in charge of policy (e.g. Security Monitor) The Kernel is responsible for implementation

16 16 Advanced Design and System Patterns General Features (continued) Relaxed layered system (Kernel and I/O manager may access hardware directly) NT has a subsystem for each operating system

17 17 Advanced Design and System Patterns The Layers System services: interface layer between subsystems and NT Executive Resource management: Object Manager, Virtual Memory Manager etc. Kernel: basic functions (interrupt, thread dispatching...)

18 18 Advanced Design and System Patterns The Layers (continued) HAL: hides hardware differences between different processor families Hardware layer

19 19 Advanced Design and System Patterns The Kernel Bottom of the food chain Fundamental functions and objects Cannot be pre-empted

20 20 Advanced Design and System Patterns Responsibilities of the Kernel Scheduling threads Transferring control on interrupts and exceptions Synchronising multiprocessor operations Initiating system recovery after a power failure

21 21 Advanced Design and System Patterns Objects in Kernel Dispatcher objects (e.g. Mutex, Semaphore, Thread) Control objects (Process, I/O, Asynchronous Procedure Call) Represent more primitive attribute subset provided by corresponding User objects

22 22 Advanced Design and System Patterns Final Remarks Microkernel is a variant of Layers pattern Use Microkernel when clients have different views of underlying business logic (Buschmann)


Download ppt "Advanced Design and System Patterns The Microkernel Pattern."

Similar presentations


Ads by Google