Sloth : Let the Hardware Do the Work! Wanja Hofer , Daniel Lohmann, Fabian Scheler, Wolfgang Schr¨ oder-Preikschat SOSP 2009, WiP Session
Confessions of a Slothful Wanja Hofer Sloth : Let the Hardware Do the Work! (SOSP-WiP 2009) 2
How It All Began... Building embedded OSes as used in automotive industry Prevalent OS standard: OSEK OS Event-triggered, priority-driven real-time system Wanja Hofer Sloth : Let the Hardware Do the Work! (SOSP-WiP 2009) 3
Let the Hardware Do the Work! Wanja Hofer Sloth : Let the Hardware Do the Work! (SOSP-WiP 2009) 4
Sloth : Threads as Interrupts Idea: Let interrupt subsystem do the scheduling and dispatching work New: All threads are interrupt handlers and have interrupt priorities New: setReady(thread) is implemented as an IRQ Wanja Hofer Sloth : Let the Hardware Do the Work! (SOSP-WiP 2009) 5
Sloth : Design and Example prio=1 IRQ Source request Thread A CPU IRQ curprio=X prio=2 IRQ Source Arbi- request Thread B tration Unit prio=3 IRQ Source IRQ Vector request Thread C Table threadA() threadB() threadC() Wanja Hofer Sloth : Let the Hardware Do the Work! (SOSP-WiP 2009) 6
Sloth : Design and Example prio=1 IRQ Source request Thread A CPU IRQ curprio=1 prio=2 IRQ Source Arbi- request Thread B tration Unit prio=3 IRQ Source IRQ Vector request Thread C Table threadA() threadB() threadC() Wanja Hofer Sloth : Let the Hardware Do the Work! (SOSP-WiP 2009) 6
Sloth : Design and Example prio=1 IRQ Source request Thread A CPU IRQ curprio=1 prio=2 IRQ Source Arbi- request Thread B tration Unit prio=3 IRQ Source IRQ Vector request Thread C Table threadA() threadB() threadC() Wanja Hofer Sloth : Let the Hardware Do the Work! (SOSP-WiP 2009) 6
Sloth : Design and Example prio=1 IRQ Source request Thread A CPU IRQ curprio=3 prio=2 IRQ Source Arbi- request Thread B tration Unit prio=3 IRQ Source IRQ Vector request Thread C Table threadA() threadB() threadC() Wanja Hofer Sloth : Let the Hardware Do the Work! (SOSP-WiP 2009) 6
Sloth : Design and Example prio=1 IRQ Source request Thread A CPU IRQ curprio=3 prio=2 IRQ Source Arbi- request Thread B tration Unit prio=3 IRQ Source IRQ Vector request Thread C Table threadA() threadB() threadC() Wanja Hofer Sloth : Let the Hardware Do the Work! (SOSP-WiP 2009) 6
Sloth : Design and Example prio=1 IRQ Source request Thread A CPU IRQ curprio=3 prio=2 IRQ Source Arbi- request Thread B tration Unit prio=3 IRQ Source IRQ Vector request Thread C Table threadA() threadB() threadC() Wanja Hofer Sloth : Let the Hardware Do the Work! (SOSP-WiP 2009) 6
Sloth : Design and Example prio=1 IRQ Source request Thread A CPU IRQ curprio=2 prio=2 IRQ Source Arbi- request Thread B tration Unit prio=3 IRQ Source IRQ Vector request Thread C Table threadA() threadB() threadC() Wanja Hofer Sloth : Let the Hardware Do the Work! (SOSP-WiP 2009) 6
Sloth : Design and Example prio=1 IRQ Source request Thread A CPU IRQ curprio=1 prio=2 IRQ Source Arbi- request Thread B tration Unit prio=3 IRQ Source IRQ Vector request Thread C Table threadA() threadB() threadC() Wanja Hofer Sloth : Let the Hardware Do the Work! (SOSP-WiP 2009) 6
Sloth : Advantages Simple Small Fast (2–20x) Cool Wanja Hofer Sloth : Let the Hardware Do the Work! (SOSP-WiP 2009) 7
Sloth : One of the Seven Deadly Sins David Fincher, Se7en (1995) Wanja Hofer Sloth : Let the Hardware Do the Work! (SOSP-WiP 2009) 8
Sloth : One of the Seven Deadly Sins David Fincher, Se7en (1995) Nicolas le Rouge, Le Grant Kalendrier Des Bergiers (1496) Wanja Hofer Sloth : Let the Hardware Do the Work! (SOSP-WiP 2009) 8
More About Being a Sloth 1. Talk to me! 2. http://www4.cs.fau.de/Research/Sloth/ Wanja Hofer Sloth : Let the Hardware Do the Work! (SOSP-WiP 2009) 9
Recommend
More recommend