230 likes | 372 Views
The Microkernel Pattern. 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. Why use the Microkernel Pattern?.
E N D
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
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)
Roles to be played • Internal server • External server • Adapter • Client • Microkernel
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)
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
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
Client in more detail • Application that is associated with exactly one external server • It accesses the APIs provided by the external server
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)
Example: The CHORUS System • Originated in INRIA (France) in 1990 • High-performance UNIX emulation • Distributed environments • RT applications • Integration with OOT
Test CaseWindows 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
General Features • NT Executive is layered • Some objects in charge of policy (e.g. Security Monitor) • The Kernel is responsible for implementation
General Features (continued) • Relaxed layered system (Kernel and I/O manager may access hardware directly) • NT has a subsystem for each operating system
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...)
The Layers (continued) • HAL: hides hardware differences between different processor families • Hardware layer
The Kernel • Bottom of the food chain • Fundamental functions and objects • Cannot be pre-empted
Responsibilities of the Kernel • Scheduling threads • Transferring control on interrupts and exceptions • Synchronising multiprocessor operations • Initiating system recovery after a power failure
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
Final Remarks • Microkernel is a variant of Layers pattern • Use Microkernel when clients have different views of underlying business logic (Buschmann)