A Microkernel API for Fine-grained Decomposition

A Microkernel API for Fine-grained Decomposition
Slide Note
Embed
Share

This project explores a Microkernel API for fine-grained decomposition, focusing on system architecture, data transfer, thread management, and ease of development. The approach involves servers, local objects, references, and interfaces for designing microkernels. Reference management and TCP/IP stack utilization play crucial roles in this research.

  • Microkernel API
  • Fine-grained Decomposition
  • System Architecture
  • Thread Management
  • TCP/IP Stack

Uploaded on Feb 20, 2025 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. A Microkernel API for Fine-grained Decomposition Sebastian Reichelt, Jan Stoess, Frank Bellosa SYSTEM ARCHITECTURE GROUP, KARLSRUHE UNIVERSITY KIT The cooperation of Forschungszentrum Karlsruhe GmbH and Universit t Karlsruhe (TH)

  2. OS Decomposition Microkernel Data location? Data transfer? Split state? System knowledge? TCP/IP stack Threads Threads Address spaces spaces Address Packets IPC IPC Component model Ease of development? Reuse? Granularity? Device driver Threads Threads Address spaces Interfaces IPC Kernel Microkernel Sebastian Reichelt, Jan Stoess, Frank Bellosa A Microkernel API for Fine-grained Decomposition 2/11

  3. Our Approach Servers Servers Microkernel Data location? Data transfer? Split state? System knowledge? TCP/IP stack Local objects objects Local References References Packets Function Function calls calls Device driver Component model Component model Interfaces Microkernel Sebastian Reichelt, Jan Stoess, Frank Bellosa A Microkernel API for Fine-grained Decomposition 3/11

  4. Designing for Decomposition Existing microkernels: Task Microkernel Task Threads Address spaces IPC Create thread Server Send IPC Task Task Receive IPC Our microkernel: Component model Component Component Servers Local objects References Provided interface Component Required interfaces Server Component Threading options Sebastian Reichelt, Jan Stoess, Frank Bellosa A Microkernel API for Fine-grained Decomposition 4/11

  5. Reference Management Microkernel Sebastian Reichelt, Jan Stoess, Frank Bellosa A Microkernel API for Fine-grained Decomposition 5/11

  6. Reference Management Client TCP/IP stack open connection TCP connection send packet Microkernel Sebastian Reichelt, Jan Stoess, Frank Bellosa A Microkernel API for Fine-grained Decomposition 6/11

  7. Prototype Multi-server OS (~4 man-months) Basic servers (memory, scheduling, ...) Drivers (standard PC hardware, PCI, Ethernet) Decomposed TCP/IP stack Linux ABI implementation (partial) Linux lwIP Kernel (~2 man-months) IA-32 implementation Servers in kernel mode Evaluation: granularity, reuse, performance Sebastian Reichelt, Jan Stoess, Frank Bellosa A Microkernel API for Fine-grained Decomposition 7/11

  8. Granularity Size of a server: Minimum Maximum As fine-granular as desired Average 27 1363 13588 Lines of code Bytes 306 2907 280 Linux ABI layer Sebastian Reichelt, Jan Stoess, Frank Bellosa A Microkernel API for Fine-grained Decomposition 8/11

  9. Reuse RTL-8139 driver ported from Linux (~1 man-month): Reuse possible with little effort lines of code e.g. calls via interfaces instead of directly queue-based packet processing Sebastian Reichelt, Jan Stoess, Frank Bellosa A Microkernel API for Fine-grained Decomposition 9/11

  10. Performance Operation Pentium 4 Core 2 Cross-component call/return (kernel mode) Function call/return Low performance overhead 46 23 11 9 Operation Cross-component call/return (inter-AS) L4Ka round-trip IPC Pentium 4 Core 2 771 1965 2262 1052 cycles Sebastian Reichelt, Jan Stoess, Frank Bellosa A Microkernel API for Fine-grained Decomposition 10/11

  11. Conclusion Microkernel APIs enforce system structure Existing APIs distributed systems Development, reuse, and granularity problems Our approach: component model as API More general abstractions related to decomposition (servers, interfaces, calls, references, local objects, ...) Derived microkernel design Networking-capable prototype OS Good granularity and reuse, promising performance http://oosys.sourceforge.net/ Demo today Sebastian Reichelt, Jan Stoess, Frank Bellosa A Microkernel API for Fine-grained Decomposition 11/11

More Related Content