Semi-Extended Tasks: Efficient Stack Sharing among Blocking Threads

Publikation: Beitrag in Buch/Bericht/Sammelwerk/KonferenzbandAufsatz in KonferenzbandForschungPeer-Review

Autoren

  • Christian Dietrich
  • Daniel Lohmann
Forschungs-netzwerk anzeigen

Details

OriginalspracheEnglisch
Titel des Sammelwerks39th IEEE Real-Time Systems Symposium (RTSS)
Herausgeber (Verlag)Institute of Electrical and Electronics Engineers Inc.
Seiten338-349
Seitenumfang12
ISBN (elektronisch)978-1-5386-7908-1
ISBN (Print)978-1-5386-7909-8
PublikationsstatusVeröffentlicht - 7 Jan. 2019
Veranstaltung39th IEEE Real-Time Systems Symposium (RTSS) - Nashville, USA / Vereinigte Staaten
Dauer: 11 Dez. 201814 Dez. 2018

Publikationsreihe

NameProceedings Real-Time Systems Symposium
ISSN (Print)1052-8725
ISSN (elektronisch)2576-3172

Abstract

Memory is an expensive and, therefore, limited resource in deeply embedded real-time systems. Thread stacks substantially contribute to the RAM requirements. To reduce the system's worst-case stack consumption (WCSC), it is state of the art to exploit thread-level preemption constraints to let multiple threads share the same stack. However, deriving a tight, yet correct bound for the shared stack is a difficult undertaking and stack sharing is currently restricted to run-to-completion threads, which are preemptable, but cannot block (i.e., passively wait for an event) at run time. With semi-extended tasks (SETs), we propose a solution for efficient stack sharing among blocking and non-blocking threads on the system level. For this, we refine the stack-sharing granularity from the thread to function level. We provide an efficient intra-thread stack-switch mechanism and an ILP-based WCSC analysis that considers fine-grained preemption constraints and possible function-level switching points from the private to the shared stack. A genetic algorithm then selects switching points that lead to the reduction of the overall WCSC. Compared to systems that run only non-blocking threads on the shared stack, semi-extended tasks decrease the WCSC in our benchmarks on average by 7 percent and up to 52 percent for some systems.

ASJC Scopus Sachgebiete

Zitieren

Semi-Extended Tasks: Efficient Stack Sharing among Blocking Threads. / Dietrich, Christian; Lohmann, Daniel.
39th IEEE Real-Time Systems Symposium (RTSS). Institute of Electrical and Electronics Engineers Inc., 2019. S. 338-349 8603225 (Proceedings Real-Time Systems Symposium).

Publikation: Beitrag in Buch/Bericht/Sammelwerk/KonferenzbandAufsatz in KonferenzbandForschungPeer-Review

Dietrich, C & Lohmann, D 2019, Semi-Extended Tasks: Efficient Stack Sharing among Blocking Threads. in 39th IEEE Real-Time Systems Symposium (RTSS)., 8603225, Proceedings Real-Time Systems Symposium, Institute of Electrical and Electronics Engineers Inc., S. 338-349, 39th IEEE Real-Time Systems Symposium (RTSS), Nashville, Tennessee, USA / Vereinigte Staaten, 11 Dez. 2018. https://doi.org/10.1109/rtss.2018.00049
Dietrich, C., & Lohmann, D. (2019). Semi-Extended Tasks: Efficient Stack Sharing among Blocking Threads. In 39th IEEE Real-Time Systems Symposium (RTSS) (S. 338-349). Artikel 8603225 (Proceedings Real-Time Systems Symposium). Institute of Electrical and Electronics Engineers Inc.. https://doi.org/10.1109/rtss.2018.00049
Dietrich C, Lohmann D. Semi-Extended Tasks: Efficient Stack Sharing among Blocking Threads. in 39th IEEE Real-Time Systems Symposium (RTSS). Institute of Electrical and Electronics Engineers Inc. 2019. S. 338-349. 8603225. (Proceedings Real-Time Systems Symposium). doi: 10.1109/rtss.2018.00049
Dietrich, Christian ; Lohmann, Daniel. / Semi-Extended Tasks : Efficient Stack Sharing among Blocking Threads. 39th IEEE Real-Time Systems Symposium (RTSS). Institute of Electrical and Electronics Engineers Inc., 2019. S. 338-349 (Proceedings Real-Time Systems Symposium).
Download
@inproceedings{e36a629a82c745ada86b428e0f91a072,
title = "Semi-Extended Tasks: Efficient Stack Sharing among Blocking Threads",
abstract = "Memory is an expensive and, therefore, limited resource in deeply embedded real-time systems. Thread stacks substantially contribute to the RAM requirements. To reduce the system's worst-case stack consumption (WCSC), it is state of the art to exploit thread-level preemption constraints to let multiple threads share the same stack. However, deriving a tight, yet correct bound for the shared stack is a difficult undertaking and stack sharing is currently restricted to run-to-completion threads, which are preemptable, but cannot block (i.e., passively wait for an event) at run time. With semi-extended tasks (SETs), we propose a solution for efficient stack sharing among blocking and non-blocking threads on the system level. For this, we refine the stack-sharing granularity from the thread to function level. We provide an efficient intra-thread stack-switch mechanism and an ILP-based WCSC analysis that considers fine-grained preemption constraints and possible function-level switching points from the private to the shared stack. A genetic algorithm then selects switching points that lead to the reduction of the overall WCSC. Compared to systems that run only non-blocking threads on the shared stack, semi-extended tasks decrease the WCSC in our benchmarks on average by 7 percent and up to 52 percent for some systems.",
keywords = "Real-time operating system, static analysis, Worst-case stack consumption",
author = "Christian Dietrich and Daniel Lohmann",
note = "Funding information: The authors thank the anonymous reviewers for their feedback. Furthermore, we thank Stefan Bader and Roman Sommer for the fruitful discussions about the initial implementation. This work has been supported by the German Research Foundation (DFG) under the grants no. LO 1719/4-1 and SFB/TR 89 (“Invasic”), Project C1.; 39th IEEE Real-Time Systems Symposium (RTSS), RTSS ; Conference date: 11-12-2018 Through 14-12-2018",
year = "2019",
month = jan,
day = "7",
doi = "10.1109/rtss.2018.00049",
language = "English",
isbn = "978-1-5386-7909-8",
series = "Proceedings Real-Time Systems Symposium",
publisher = "Institute of Electrical and Electronics Engineers Inc.",
pages = "338--349",
booktitle = "39th IEEE Real-Time Systems Symposium (RTSS)",
address = "United States",

}

Download

TY - GEN

T1 - Semi-Extended Tasks

T2 - 39th IEEE Real-Time Systems Symposium (RTSS)

AU - Dietrich, Christian

AU - Lohmann, Daniel

N1 - Funding information: The authors thank the anonymous reviewers for their feedback. Furthermore, we thank Stefan Bader and Roman Sommer for the fruitful discussions about the initial implementation. This work has been supported by the German Research Foundation (DFG) under the grants no. LO 1719/4-1 and SFB/TR 89 (“Invasic”), Project C1.

PY - 2019/1/7

Y1 - 2019/1/7

N2 - Memory is an expensive and, therefore, limited resource in deeply embedded real-time systems. Thread stacks substantially contribute to the RAM requirements. To reduce the system's worst-case stack consumption (WCSC), it is state of the art to exploit thread-level preemption constraints to let multiple threads share the same stack. However, deriving a tight, yet correct bound for the shared stack is a difficult undertaking and stack sharing is currently restricted to run-to-completion threads, which are preemptable, but cannot block (i.e., passively wait for an event) at run time. With semi-extended tasks (SETs), we propose a solution for efficient stack sharing among blocking and non-blocking threads on the system level. For this, we refine the stack-sharing granularity from the thread to function level. We provide an efficient intra-thread stack-switch mechanism and an ILP-based WCSC analysis that considers fine-grained preemption constraints and possible function-level switching points from the private to the shared stack. A genetic algorithm then selects switching points that lead to the reduction of the overall WCSC. Compared to systems that run only non-blocking threads on the shared stack, semi-extended tasks decrease the WCSC in our benchmarks on average by 7 percent and up to 52 percent for some systems.

AB - Memory is an expensive and, therefore, limited resource in deeply embedded real-time systems. Thread stacks substantially contribute to the RAM requirements. To reduce the system's worst-case stack consumption (WCSC), it is state of the art to exploit thread-level preemption constraints to let multiple threads share the same stack. However, deriving a tight, yet correct bound for the shared stack is a difficult undertaking and stack sharing is currently restricted to run-to-completion threads, which are preemptable, but cannot block (i.e., passively wait for an event) at run time. With semi-extended tasks (SETs), we propose a solution for efficient stack sharing among blocking and non-blocking threads on the system level. For this, we refine the stack-sharing granularity from the thread to function level. We provide an efficient intra-thread stack-switch mechanism and an ILP-based WCSC analysis that considers fine-grained preemption constraints and possible function-level switching points from the private to the shared stack. A genetic algorithm then selects switching points that lead to the reduction of the overall WCSC. Compared to systems that run only non-blocking threads on the shared stack, semi-extended tasks decrease the WCSC in our benchmarks on average by 7 percent and up to 52 percent for some systems.

KW - Real-time operating system

KW - static analysis

KW - Worst-case stack consumption

UR - http://www.scopus.com/inward/record.url?scp=85061550198&partnerID=8YFLogxK

U2 - 10.1109/rtss.2018.00049

DO - 10.1109/rtss.2018.00049

M3 - Conference contribution

AN - SCOPUS:85061550198

SN - 978-1-5386-7909-8

T3 - Proceedings Real-Time Systems Symposium

SP - 338

EP - 349

BT - 39th IEEE Real-Time Systems Symposium (RTSS)

PB - Institute of Electrical and Electronics Engineers Inc.

Y2 - 11 December 2018 through 14 December 2018

ER -