The final publication is available via <a href="https://doi.org/10.1016/j.jsc.2016.07.023" target="_blank">https://doi.org/10.1016/j.jsc.2016.07.023</a>.
-
dc.description.abstract
Embedded real-time software systems (ESS) play an important role in almost every aspect of our daily lives. We do rely on them to be functionally correct and to adhere to timing-constraints ensuring that their computational results are always delivered in time. Violations of the timing-constraints of a safety-critical ESS, such as an airplane or a medical control device, can have disastrous economic and social consequences. Identifying and correcting such violations is therefore an important and challenging research topic. In this article we address this challenge and describe a rigorous approach for the timing analysis of programs and for proving its results precise.
In practice most important is the worst-case execution time (WCET) of an ESS, that is, the maximal running time of the system on a specified hardware. A WCET analysis needs to provide a formal guarantee that a system meets its timing-constraints even in the worst case. This requires to compute a safe and tight bound for the execution time of a program. Existing WCET tools, however, are usually not able to guarantee that there is a feasible system trace that takes indeed as long as stated by the computed execution time bound: often, due to the employed abstractions during static analysis a computed WCET bound overestimates the actual WCET bound, since loop bounds and other timing-relevant program properties their computation is based on are computed for spurious infeasible system traces that can be ruled out by a path-sensitive program abstraction and analyzing program resources.
In this article we present an approach for inferring and proving WCET bounds precise. This approach guarantees that the WCET bound is computed for a feasible system trace. This is achieved by combining WCET computation with path-wise symbolic execution in an abstraction refinement loop. This way, symbolic execution can be targeted and limited to relevant program parts thereby taming and avoiding the usually prohibitive computational costs of symbolic execution with a full path coverage. Moreover, our approach improves the quality of the underlying WCET analysis, since it automatically tightens the bound until it is proven precise, thereby improving the precision of the initially computed WCET bound.
Our overall approach is an anytime algorithm, i.e., it can be stopped at any time without violating the soundness of its results. If run until termination, the WCET bound is proven precise, by automatically inferring additional constraints from spurious traces and using these constraints in the abstraction refinement.
We implemented our approach in the r-TuBound WCET toolchain and tested it on challenging benchmarks from the WCET community. Our experimental results underline the advantage of using symbolic methods for proving WCET bounds precise, at a moderate cost.
en
dc.description.sponsorship
Austrian Science Funds (FWF)
-
dc.description.sponsorship
ERC Starting Grant 2014 SYMCAR
-
dc.description.sponsorship
Wallenberg Academy Fellowship 2014 - TheProSE
-
dc.description.sponsorship
EU FP7 COST Action IC 1202 Timing Analysis on Code-Level (TACLe)
-
dc.language
English
-
dc.language.iso
en
-
dc.publisher
Elsevier Ltd.
-
dc.relation.ispartof
Journal of Symbolic Computation
-
dc.rights.uri
http://rightsstatements.org/vocab/InC/1.0/
-
dc.subject
Worst-Case Execution Time (WCET) Analysis
en
dc.subject
Static Symbolic Execution
en
dc.subject
Symbolic Computation
en
dc.subject
Automated Reasoning
en
dc.title
Replacing Conjectures by Positive Knowledge: Inferring Proven Precise Worst-Case Execution Time Bounds Using Symbolic Execution
en
dc.type
Article
en
dc.type
Artikel
de
dc.rights.license
In Copyright
en
dc.rights.license
Urheberrechtsschutz
de
dc.description.startpage
101
-
dc.description.endpage
124
-
dc.relation.grantno
RiSE S11409-N23
-
dc.relation.grantno
639270
-
dc.relation.grantno
D0497701
-
dc.rights.holder
2016 Elsevier
-
dc.type.category
Original Research Article
-
tuw.container.volume
80
-
tuw.journal.peerreviewed
true
-
tuw.peerreviewed
true
-
tuw.version
smur
-
dcterms.isPartOf.title
Journal of Symbolic Computation
-
tuw.publication.orgunit
E192 - Institut für Informationssysteme
-
tuw.publisher.doi
10.1016/j.jsc.2016.07.023
-
dc.identifier.eissn
0747-7171
-
dc.identifier.libraryid
AC11365159
-
dc.description.numberOfPages
24
-
dc.identifier.urn
urn:nbn:at:at-ubtuw:3-3335
-
tuw.author.orcid
0000-0002-8299-2714
-
dc.rights.identifier
In Copyright
en
dc.rights.identifier
Urheberrechtsschutz
de
wb.sci
true
-
item.fulltext
with Fulltext
-
item.grantfulltext
open
-
item.openairecristype
http://purl.org/coar/resource_type/c_2df8fbb1
-
item.cerifentitytype
Publications
-
item.languageiso639-1
en
-
item.openairetype
research article
-
item.openaccessfulltext
Open Access
-
item.mimetype
application/pdf
-
crisitem.author.dept
E194-05 - Forschungsbereich Compilers and Languages
-
crisitem.author.dept
E192-04 - Forschungsbereich Formal Methods in Systems Engineering
-
crisitem.author.dept
E185 - Institut für Computersprachen
-
crisitem.author.orcid
0000-0002-8299-2714
-
crisitem.author.parentorg
E194 - Institut für Information Systems Engineering