• DocumentCode
    3645145
  • Title

    Sleepy Sloth: Threads as Interrupts as Threads

  • Author

    Wanja Hofer;Daniel Lohmann;Wolfgang Schröder-Preikschat

  • Author_Institution
    Friedrich-Alexander Univ. Erlangen-Nuremberg, Bamberg, Germany
  • fYear
    2011
  • Firstpage
    67
  • Lastpage
    77
  • Abstract
    Event latency is considered to be one of the most important properties when selecting an event-driven real-time operating system. This is why in previous work on the Sloth kernel, we suggested treating threads as ISRs -- executing all application code in an interrupt context -- and thereby reducing event latencies by scheduling and dispatching solely in hardware. However, to achieve these benefits, Sloth does not support blocking threads or ISRs, but requires all control flows to have run-to-completion semantics. In this paper, we present Sleepy Sloth, an extension of Sloth that provides a new generalized thread abstraction that overcomes this limitation, while still letting the hardware do all scheduling and dispatching. Sleepy Sloth abolishes the (artificial) distinction between threads and ISRs: Threads can be dispatched as efficiently as interrupt handlers and interrupt handlers can be scheduled as flexibly as threads. Our Sleepy Sloth implementation of the automotive OSEK OS standard provides much more flexibility to application developers while maintaining efficient execution of application control flows. Sleepy Sloth runs on commodity off-the-shelf hardware and outperforms a leading commercial OSEK implementation by a factor of 1.3 to 19.
  • Keywords
    "Hardware","Kernel","Instruction sets","Dispatching","Context","Message systems"
  • Publisher
    ieee
  • Conference_Titel
    Real-Time Systems Symposium (RTSS), 2011 IEEE 32nd
  • ISSN
    1052-8725
  • Print_ISBN
    978-1-4577-2000-0
  • Type

    conf

  • DOI
    10.1109/RTSS.2011.14
  • Filename
    6121427