2019
DOI: 10.1145/3319618
|View full text |Cite
|
Sign up to set email alerts
|

A Survey of Asynchronous Programming Using Coroutines in the Internet of Things and Embedded Systems

Abstract: Many Internet of ings and embedded projects are event-driven, and therefore require asynchronous and concurrent programming.Current proposals for C++20 suggest that coroutines will have native language support. It is timely to survey the current use of coroutines in embedded systems development.is paper investigates existing research which uses or describes coroutines on resource-constrained platforms. e existing research is analysed with regard to: so ware platform, hardware platform and capacity;use cases an… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
4
0

Year Published

2019
2019
2024
2024

Publication Types

Select...
4
3
1

Relationship

0
8

Authors

Journals

citations
Cited by 13 publications
(4 citation statements)
references
References 62 publications
0
4
0
Order By: Relevance
“…Our evaluation methodology is designed to assess the performance of the cab dispatch system within an edge computing paradigm, focusing on several critical metrics: response time latency, concurrency handling under high load conditions, fault tolerance, and multicore processing efficiency. Recognizing the complexity and variability of realworld IoT hardware environments [33], our current testing uses a purely software-based environment, and future work will include detailed hardware simulations to enhance the practical applicability and robustness of our findings in diverse IoT contexts. Additionally, we also conducted experiments under simulated constrained network conditions to mimic potential real-life challenges.…”
Section: Discussionmentioning
confidence: 99%
“…Our evaluation methodology is designed to assess the performance of the cab dispatch system within an edge computing paradigm, focusing on several critical metrics: response time latency, concurrency handling under high load conditions, fault tolerance, and multicore processing efficiency. Recognizing the complexity and variability of realworld IoT hardware environments [33], our current testing uses a purely software-based environment, and future work will include detailed hardware simulations to enhance the practical applicability and robustness of our findings in diverse IoT contexts. Additionally, we also conducted experiments under simulated constrained network conditions to mimic potential real-life challenges.…”
Section: Discussionmentioning
confidence: 99%
“…Example techniques include using longjmp or assembly code to change the stack pointer, using the POSIX signal stack to store stacks of coroutines, and leaving storage of local variables up to the programmer and using Duff's device for control flow. We recommend the paper describing the Gnu Portable Threads library [Engelschall 2000] for a comparison of implementation strategies along with the more recent systematic review [Belson et al 2019] for its discussion of how application context and requirements seem to have formed these approaches.…”
Section: Fully Compile-time Coroutine Implementationsmentioning
confidence: 99%
“…In this respect there are two groups: stackfull and stackless coroutines. Modern C++20 provides the framework and mechanisms for the latter [7] [3]. That is, they suspend execution by returning to the caller and the data that is required to resume execution is stored separately from the stack.…”
Section: Forth Endowed With the Coroutinesmentioning
confidence: 99%
“…FiberTask<T> in line [1] is a structure with the nested class promise_type, as required by the C++20 framework [7]. On the other hand, GetTimePoint in lines [3,5,10] does the time management, resulting with the suspend via co_await in [9]. The next proposed new word is COYLD (from co-yield) that suspends a given word leaving its value on the top of the Forth9s stack.…”
Section: Forth Endowed With the Coroutinesmentioning
confidence: 99%