Knots: An Efficient Single Stack Preemption Mechanism for Resource Constrained Devices [Report]

NESL Technical Report #: 2007-10-2


Abstract: The low-end embedded systems space is characterized by two classes of operating systems: run-to-completion (RTC) systems such as TinyOS and preemptive multithreading systems such as Mantis. In RTC systems only a single task may exist on the stack at any time, therefore RTC systems have low memory requirements for the stack space but have poor deadline handling capabilities. Preemptive multithreading systems are better at deadline handling but all tasks in the system require memory for their worst-case execution stack at all times. This results in suboptimal amount of memory allocation for the system. The two types of systems define the two end points of a spectrum characterized by varying degrees of deadline handling capabilities and memory requirements. We have designed and implemented a system that by efficiently performing preemption on a single stack offers the flexibility of operating anywhere on this spectrum. It also offers improved deadline handling capabilities than RTC systems and lower memory requirements than preemptive multithreading systems.

Page (Count): 12

Date: 2007-10-21

Public Document?: Yes

NESL Document?: Yes

Document category: Report