Affiliation:
1. University of Maryland, College Park, Maryland
Abstract
Out-of-memory errors are a serious source of unreliability in most embedded systems. Applications run out of main memory because of the frequent difficulty of estimating the memory requirement before deployment, either because it depends on input data, or because certain language features prevent estimation. The typical lack of disks and virtual memory in embedded systems has a serious consequence when an out-of-memory error occurs. Without swap space, the system crashes if its memory footprint exceeds the available memory by even 1 byte. This work improves reliability for multitasking embedded systems by proposing MTSS, a multitask stack sharing technique. If a task attempts to overflow the bounds of its allocated stack space, MTSS grows its stack into the stack memory space allocated for other tasks. This technique can avoid the out-of-memory error if the extra space recovered is sufficient to complete execution. Experiments show that MTSS is able to recover an average of 54% of the stack space allocated to the overflowing task in the free space of other tasks. In addition, unlike conventional systems, MTSS detects memory overflows, allowing the possibility of remedial action or a graceful exit if the recovered space is not enough. Alternatively, MTSS can be used for decreasing the required physical memory of an embedded system by reducing the initial memory allocated to each of the tasks and recovering the deficit by sharing stack with other tasks. The overheads of MTSS are low: the runtime and energy overheads are 3.1% and 3.2%, on average. These are tolerable given that reliability is the most important concern in virtually all systems, ahead of other concerns, such as runtime and energy.
Publisher
Association for Computing Machinery (ACM)
Subject
Hardware and Architecture,Software
Cited by
6 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Gadgets of Gadgets in Industrial Control Systems: Return Oriented Programming Attacks on PLCs;2023 IEEE International Symposium on Hardware Oriented Security and Trust (HOST);2023-05-01
2. Bringing Segmented Stacks to Embedded Systems;Proceedings of the 24th International Workshop on Mobile Computing Systems and Applications;2023-02-22
3. EmSBoTScript: A Tiny Virtual Machine-Based Embedded Software Framework;2021 5th International Conference on Computer Science and Artificial Intelligence;2021-12-04
4. Semi-Extended Tasks: Efficient Stack Sharing Among Blocking Threads;2018 IEEE Real-Time Systems Symposium (RTSS);2018-12
5. Rethinking Java call stack design for tiny embedded devices;ACM SIGPLAN Notices;2012-05-18