1 / 22

The Microkernel Pattern

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?.

nigel-west
Download Presentation

The Microkernel Pattern

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Microkernel Pattern

  2. 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. 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. Roles to be played • Internal server • External server • Adapter • Client • Microkernel

  5. 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. 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. 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. Client in more detail • Application that is associated with exactly one external server • It accesses the APIs provided by the external server

  9. 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. Example: The CHORUS System • Originated in INRIA (France) in 1990 • High-performance UNIX emulation • Distributed environments • RT applications • Integration with OOT

  11. Chorus Architecture

  12. Example of aMicrokernel System (Chorus)

  13. 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

  14. System Services

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

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

  17. 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. The Layers (continued) • HAL: hides hardware differences between different processor families • Hardware layer

  19. The Kernel • Bottom of the food chain • Fundamental functions and objects • Cannot be pre-empted

  20. Responsibilities of the Kernel • Scheduling threads • Transferring control on interrupts and exceptions • Synchronising multiprocessor operations • Initiating system recovery after a power failure

  21. 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. Final Remarks • Microkernel is a variant of Layers pattern • Use Microkernel when clients have different views of underlying business logic (Buschmann)

More Related