1 / 11

A Microkernel API for Fine-grained Decomposition

A Microkernel API for Fine-grained Decomposition. Sebastian Reichelt , Jan Stoess, Frank Bellosa. OS Decomposition. Data location? Data transfer? Split state? System knowledge?. Microkernel. Kernel. TCP/IP stack. Threads. Threads. Address spaces. Address spaces. Packets. IPC. IPC.

dessa
Download Presentation

A Microkernel API for Fine-grained Decomposition

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. A Microkernel API for Fine-grained Decomposition Sebastian Reichelt, Jan Stoess, Frank Bellosa

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

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

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

  5. Reference Management Microkernel Sebastian Reichelt, Jan Stoess, Frank BellosaA Microkernel API for Fine-grained Decomposition

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

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

  8. Granularity Size of a server: As fine-granular as desired Linux ABI layer Sebastian Reichelt, Jan Stoess, Frank BellosaA Microkernel API for Fine-grained Decomposition

  9. Reuse RTL-8139 driver ported from Linux (~1 man-month): Reuse possible with little effort lines of code e.g. calls via interfacesinstead of directly queue-basedpacket processing Sebastian Reichelt, Jan Stoess, Frank BellosaA Microkernel API for Fine-grained Decomposition

  10. Performance Low performance overhead cycles Sebastian Reichelt, Jan Stoess, Frank BellosaA Microkernel API for Fine-grained Decomposition

  11. Conclusion • http://oosys.sourceforge.net/ • Demo today • 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 Sebastian Reichelt, Jan Stoess, Frank BellosaA Microkernel API for Fine-grained Decomposition

More Related