Knots: An Efficient Single Stack Preemption Mechanism for Resource Constrained Devices
Source: University of California
The low-end embedded systems space is characterized by two classes of operating systems: Run-To-Completion (RTC) systems such as Tenos 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.