Loading…
Criticality: static profiling for real-time programs
With the increasing performance demand in real-time systems it becomes more and more important to provide feedback to programmers and software development tools on the performance-relevant code parts of a real-time program. So far, this information was limited to an estimation of the worst-case exec...
Saved in:
Published in: | Real-time systems 2014-05, Vol.50 (3), p.377-410 |
---|---|
Main Authors: | , , |
Format: | Article |
Language: | English |
Subjects: | |
Citations: | Items that this one cites Items that cite this one |
Online Access: | Get full text |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
cited_by | cdi_FETCH-LOGICAL-c383t-577e9275240237cca48596455c1e55ee31652fba15cca02eaf411c3833eca5ff3 |
---|---|
cites | cdi_FETCH-LOGICAL-c383t-577e9275240237cca48596455c1e55ee31652fba15cca02eaf411c3833eca5ff3 |
container_end_page | 410 |
container_issue | 3 |
container_start_page | 377 |
container_title | Real-time systems |
container_volume | 50 |
creator | Brandner, Florian Hepp, Stefan Jordan, Alexander |
description | With the increasing performance demand in real-time systems it becomes more and more important to provide feedback to programmers and software development tools on the performance-relevant code parts of a real-time program. So far, this information was limited to an estimation of the worst-case execution time (WCET) and its associated worst-case execution path (WCEP) only. However, both, the WCET and the WCEP, only provide partial information. Only code parts that are on
one
of the WCEPs are indicated to the programmer.
No
information is provided for all other code parts. To give a comprehensive view covering the entire code base, tools in the spirit of program profiling are required.
This work proposes an efficient approach to compute worst-case timing information for all code parts of a program using a complementary metric, called
criticality
. Every statement of a program is assigned a criticality value, expressing how critical the code is with respect to the global WCET. This gives valuable information how close the worst execution path passing through a specific program part is to the global WCEP. We formally define the criticality metric and investigate some of its properties with respect to dominance in control-flow graphs. Exploiting some of those properties, we propose an algorithm that reduces the overhead of computing the metric to cover complete programs. We also investigate ways to efficiently find only those code parts whose criticality is above a given threshold.
Experiments using well-established real-time benchmark programs show an interesting distribution of the criticality values, revealing considerable amounts of highly critical as well as uncritical code. The metric thus provides ideal information to programmers and software development tools to optimize the worst-case execution time of these programs. |
doi_str_mv | 10.1007/s11241-013-9196-y |
format | article |
fullrecord | <record><control><sourceid>proquest_hal_p</sourceid><recordid>TN_cdi_hal_primary_oai_HAL_hal_01108039v1</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>1551045668</sourcerecordid><originalsourceid>FETCH-LOGICAL-c383t-577e9275240237cca48596455c1e55ee31652fba15cca02eaf411c3833eca5ff3</originalsourceid><addsrcrecordid>eNp1kE9LxDAQxYMouK5-AG8FL3qIZpJM23hbFv_Bghc9hxiSNUu3XZOu0G9vSkVB8DTM5PdmXh4h58CugbHqJgFwCZSBoApUSYcDMgOsBAVRi0MyY4pzWkopjslJShvGGEKlZkQuY-iDNU3oh9si9SY3xS52PjShXRe-i0V0pqF92Lpxvo5mm07JkTdNcmffdU5e7-9elo909fzwtFysqM1He4pV5RSvkEvGRWWtkTWqUiJacIjOCSiR-zcDmN8Yd8ZLgFEqnDXovZiTq2nvu2n0LoatiYPuTNCPi5UeZwyA1UyoT8js5cRmkx97l3q9Dcm6pjGt6_ZJAyIwiWVZZ_TiD7rp9rHNP9GcoxKZYTJTMFE2dilF538cANNj5nrKPJsQesxcD1nDJ03KbLt28Xfz_6IvTqiB_g</addsrcrecordid><sourcetype>Open Access Repository</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2259366804</pqid></control><display><type>article</type><title>Criticality: static profiling for real-time programs</title><source>Springer Nature</source><creator>Brandner, Florian ; Hepp, Stefan ; Jordan, Alexander</creator><creatorcontrib>Brandner, Florian ; Hepp, Stefan ; Jordan, Alexander</creatorcontrib><description>With the increasing performance demand in real-time systems it becomes more and more important to provide feedback to programmers and software development tools on the performance-relevant code parts of a real-time program. So far, this information was limited to an estimation of the worst-case execution time (WCET) and its associated worst-case execution path (WCEP) only. However, both, the WCET and the WCEP, only provide partial information. Only code parts that are on
one
of the WCEPs are indicated to the programmer.
No
information is provided for all other code parts. To give a comprehensive view covering the entire code base, tools in the spirit of program profiling are required.
This work proposes an efficient approach to compute worst-case timing information for all code parts of a program using a complementary metric, called
criticality
. Every statement of a program is assigned a criticality value, expressing how critical the code is with respect to the global WCET. This gives valuable information how close the worst execution path passing through a specific program part is to the global WCEP. We formally define the criticality metric and investigate some of its properties with respect to dominance in control-flow graphs. Exploiting some of those properties, we propose an algorithm that reduces the overhead of computing the metric to cover complete programs. We also investigate ways to efficiently find only those code parts whose criticality is above a given threshold.
Experiments using well-established real-time benchmark programs show an interesting distribution of the criticality values, revealing considerable amounts of highly critical as well as uncritical code. The metric thus provides ideal information to programmers and software development tools to optimize the worst-case execution time of these programs.</description><identifier>ISSN: 0922-6443</identifier><identifier>EISSN: 1573-1383</identifier><identifier>DOI: 10.1007/s11241-013-9196-y</identifier><language>eng</language><publisher>Boston: Springer US</publisher><subject>Algorithms ; Communications Engineering ; Computer programs ; Computer Science ; Computer Systems Organization and Communication Networks ; Control ; Covering ; Demand ; Embedded Systems ; Feedback ; Flow graphs ; Mechatronics ; Networks ; Performance and Reliability ; Profiling ; Programmers ; Programming Languages ; Real time ; Robotics ; Software ; Software development tools ; Special Purpose and Application-Based Systems</subject><ispartof>Real-time systems, 2014-05, Vol.50 (3), p.377-410</ispartof><rights>Springer Science+Business Media New York 2013</rights><rights>Real-Time Systems is a copyright of Springer, (2013). All Rights Reserved.</rights><rights>Distributed under a Creative Commons Attribution 4.0 International License</rights><lds50>peer_reviewed</lds50><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c383t-577e9275240237cca48596455c1e55ee31652fba15cca02eaf411c3833eca5ff3</citedby><cites>FETCH-LOGICAL-c383t-577e9275240237cca48596455c1e55ee31652fba15cca02eaf411c3833eca5ff3</cites><orcidid>0000-0002-2493-7864</orcidid></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>230,314,780,784,885,27923,27924</link.rule.ids><backlink>$$Uhttps://ensta-paris.hal.science/hal-01108039$$DView record in HAL$$Hfree_for_read</backlink></links><search><creatorcontrib>Brandner, Florian</creatorcontrib><creatorcontrib>Hepp, Stefan</creatorcontrib><creatorcontrib>Jordan, Alexander</creatorcontrib><title>Criticality: static profiling for real-time programs</title><title>Real-time systems</title><addtitle>Real-Time Syst</addtitle><description>With the increasing performance demand in real-time systems it becomes more and more important to provide feedback to programmers and software development tools on the performance-relevant code parts of a real-time program. So far, this information was limited to an estimation of the worst-case execution time (WCET) and its associated worst-case execution path (WCEP) only. However, both, the WCET and the WCEP, only provide partial information. Only code parts that are on
one
of the WCEPs are indicated to the programmer.
No
information is provided for all other code parts. To give a comprehensive view covering the entire code base, tools in the spirit of program profiling are required.
This work proposes an efficient approach to compute worst-case timing information for all code parts of a program using a complementary metric, called
criticality
. Every statement of a program is assigned a criticality value, expressing how critical the code is with respect to the global WCET. This gives valuable information how close the worst execution path passing through a specific program part is to the global WCEP. We formally define the criticality metric and investigate some of its properties with respect to dominance in control-flow graphs. Exploiting some of those properties, we propose an algorithm that reduces the overhead of computing the metric to cover complete programs. We also investigate ways to efficiently find only those code parts whose criticality is above a given threshold.
Experiments using well-established real-time benchmark programs show an interesting distribution of the criticality values, revealing considerable amounts of highly critical as well as uncritical code. The metric thus provides ideal information to programmers and software development tools to optimize the worst-case execution time of these programs.</description><subject>Algorithms</subject><subject>Communications Engineering</subject><subject>Computer programs</subject><subject>Computer Science</subject><subject>Computer Systems Organization and Communication Networks</subject><subject>Control</subject><subject>Covering</subject><subject>Demand</subject><subject>Embedded Systems</subject><subject>Feedback</subject><subject>Flow graphs</subject><subject>Mechatronics</subject><subject>Networks</subject><subject>Performance and Reliability</subject><subject>Profiling</subject><subject>Programmers</subject><subject>Programming Languages</subject><subject>Real time</subject><subject>Robotics</subject><subject>Software</subject><subject>Software development tools</subject><subject>Special Purpose and Application-Based Systems</subject><issn>0922-6443</issn><issn>1573-1383</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2014</creationdate><recordtype>article</recordtype><recordid>eNp1kE9LxDAQxYMouK5-AG8FL3qIZpJM23hbFv_Bghc9hxiSNUu3XZOu0G9vSkVB8DTM5PdmXh4h58CugbHqJgFwCZSBoApUSYcDMgOsBAVRi0MyY4pzWkopjslJShvGGEKlZkQuY-iDNU3oh9si9SY3xS52PjShXRe-i0V0pqF92Lpxvo5mm07JkTdNcmffdU5e7-9elo909fzwtFysqM1He4pV5RSvkEvGRWWtkTWqUiJacIjOCSiR-zcDmN8Yd8ZLgFEqnDXovZiTq2nvu2n0LoatiYPuTNCPi5UeZwyA1UyoT8js5cRmkx97l3q9Dcm6pjGt6_ZJAyIwiWVZZ_TiD7rp9rHNP9GcoxKZYTJTMFE2dilF538cANNj5nrKPJsQesxcD1nDJ03KbLt28Xfz_6IvTqiB_g</recordid><startdate>20140501</startdate><enddate>20140501</enddate><creator>Brandner, Florian</creator><creator>Hepp, Stefan</creator><creator>Jordan, Alexander</creator><general>Springer US</general><general>Springer Nature B.V</general><general>Springer Verlag</general><scope>AAYXX</scope><scope>CITATION</scope><scope>8FE</scope><scope>8FG</scope><scope>AFKRA</scope><scope>ARAPS</scope><scope>BENPR</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>HCIFZ</scope><scope>P5Z</scope><scope>P62</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>7SC</scope><scope>8FD</scope><scope>JQ2</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope><scope>1XC</scope><orcidid>https://orcid.org/0000-0002-2493-7864</orcidid></search><sort><creationdate>20140501</creationdate><title>Criticality: static profiling for real-time programs</title><author>Brandner, Florian ; Hepp, Stefan ; Jordan, Alexander</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c383t-577e9275240237cca48596455c1e55ee31652fba15cca02eaf411c3833eca5ff3</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2014</creationdate><topic>Algorithms</topic><topic>Communications Engineering</topic><topic>Computer programs</topic><topic>Computer Science</topic><topic>Computer Systems Organization and Communication Networks</topic><topic>Control</topic><topic>Covering</topic><topic>Demand</topic><topic>Embedded Systems</topic><topic>Feedback</topic><topic>Flow graphs</topic><topic>Mechatronics</topic><topic>Networks</topic><topic>Performance and Reliability</topic><topic>Profiling</topic><topic>Programmers</topic><topic>Programming Languages</topic><topic>Real time</topic><topic>Robotics</topic><topic>Software</topic><topic>Software development tools</topic><topic>Special Purpose and Application-Based Systems</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Brandner, Florian</creatorcontrib><creatorcontrib>Hepp, Stefan</creatorcontrib><creatorcontrib>Jordan, Alexander</creatorcontrib><collection>CrossRef</collection><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>ProQuest Central</collection><collection>Advanced Technologies & Aerospace Collection</collection><collection>ProQuest Central</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central Korea</collection><collection>SciTech Premium Collection</collection><collection>Advanced Technologies & Aerospace Database</collection><collection>ProQuest Advanced Technologies & Aerospace Collection</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><collection>Computer and Information Systems Abstracts</collection><collection>Technology Research Database</collection><collection>ProQuest Computer Science Collection</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts – Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><collection>Hyper Article en Ligne (HAL)</collection><jtitle>Real-time systems</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Brandner, Florian</au><au>Hepp, Stefan</au><au>Jordan, Alexander</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Criticality: static profiling for real-time programs</atitle><jtitle>Real-time systems</jtitle><stitle>Real-Time Syst</stitle><date>2014-05-01</date><risdate>2014</risdate><volume>50</volume><issue>3</issue><spage>377</spage><epage>410</epage><pages>377-410</pages><issn>0922-6443</issn><eissn>1573-1383</eissn><abstract>With the increasing performance demand in real-time systems it becomes more and more important to provide feedback to programmers and software development tools on the performance-relevant code parts of a real-time program. So far, this information was limited to an estimation of the worst-case execution time (WCET) and its associated worst-case execution path (WCEP) only. However, both, the WCET and the WCEP, only provide partial information. Only code parts that are on
one
of the WCEPs are indicated to the programmer.
No
information is provided for all other code parts. To give a comprehensive view covering the entire code base, tools in the spirit of program profiling are required.
This work proposes an efficient approach to compute worst-case timing information for all code parts of a program using a complementary metric, called
criticality
. Every statement of a program is assigned a criticality value, expressing how critical the code is with respect to the global WCET. This gives valuable information how close the worst execution path passing through a specific program part is to the global WCEP. We formally define the criticality metric and investigate some of its properties with respect to dominance in control-flow graphs. Exploiting some of those properties, we propose an algorithm that reduces the overhead of computing the metric to cover complete programs. We also investigate ways to efficiently find only those code parts whose criticality is above a given threshold.
Experiments using well-established real-time benchmark programs show an interesting distribution of the criticality values, revealing considerable amounts of highly critical as well as uncritical code. The metric thus provides ideal information to programmers and software development tools to optimize the worst-case execution time of these programs.</abstract><cop>Boston</cop><pub>Springer US</pub><doi>10.1007/s11241-013-9196-y</doi><tpages>34</tpages><orcidid>https://orcid.org/0000-0002-2493-7864</orcidid></addata></record> |
fulltext | fulltext |
identifier | ISSN: 0922-6443 |
ispartof | Real-time systems, 2014-05, Vol.50 (3), p.377-410 |
issn | 0922-6443 1573-1383 |
language | eng |
recordid | cdi_hal_primary_oai_HAL_hal_01108039v1 |
source | Springer Nature |
subjects | Algorithms Communications Engineering Computer programs Computer Science Computer Systems Organization and Communication Networks Control Covering Demand Embedded Systems Feedback Flow graphs Mechatronics Networks Performance and Reliability Profiling Programmers Programming Languages Real time Robotics Software Software development tools Special Purpose and Application-Based Systems |
title | Criticality: static profiling for real-time programs |
url | http://sfxeu10.hosted.exlibrisgroup.com/loughborough?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-11T11%3A51%3A32IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_hal_p&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Criticality:%20static%20profiling%20for%20real-time%20programs&rft.jtitle=Real-time%20systems&rft.au=Brandner,%20Florian&rft.date=2014-05-01&rft.volume=50&rft.issue=3&rft.spage=377&rft.epage=410&rft.pages=377-410&rft.issn=0922-6443&rft.eissn=1573-1383&rft_id=info:doi/10.1007/s11241-013-9196-y&rft_dat=%3Cproquest_hal_p%3E1551045668%3C/proquest_hal_p%3E%3Cgrp_id%3Ecdi_FETCH-LOGICAL-c383t-577e9275240237cca48596455c1e55ee31652fba15cca02eaf411c3833eca5ff3%3C/grp_id%3E%3Coa%3E%3C/oa%3E%3Curl%3E%3C/url%3E&rft_id=info:oai/&rft_pqid=2259366804&rft_id=info:pmid/&rfr_iscdi=true |