Download presentation
Presentation is loading. Please wait.
Published byWilfred Fox Modified over 9 years ago
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)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.