Computing Maximum Task Execution Times — A Graph-BasedApproach

  • Authors:
  • Peter P. Puschner;Anton V. Schedl

  • Affiliations:
  • Institut für Technische Informatik, Technische Universität Wien A-1040 Vienna, Austria. E-mail: peter@vmars.tuwien.ac.at;Institut für Technische Informatik, Technische Universität Wien A-1040 Vienna, Austria. E-mail: peter@vmars.tuwien.ac.at

  • Venue:
  • Real-Time Systems
  • Year:
  • 1997

Quantified Score

Hi-index 0.00

Visualization

Abstract

The knowledge of program execution times is crucial for the developmentand the verification of real-time software. Therefore, there is a need formethods and tools to predict the timing behavior of pieces of program codeand entire programs. This paper presents a novel method for the analysis of program executiontimes. The computation of MAximum eXecution Times (MAXTs) is mapped onto agraph-theoretical problem that is a generalization of the computation of amaximum cost circulation in a directed graph. Programs are represented byT-graphs, timing graphs, which are similar to flow graphs. These graphsreflect the structure and the timing behavior of the code. Relative capacityconstraints, a generalization of capacity constraints that bound the flow inthe edges, express user-supplied information about infeasible paths. Tocompute MAXTs, T-graphs are searched for those execution paths whichcorrespond to a maximum cost circulation. The search problem is transformedinto an integer linear programming problem. The solution of the linearprogramming problem yields the MAXT. The special merits of the presented method are threefold: It uses aconcise notation to characterize the static structure of a program and itspossible execution paths. Furthermore, the notation allows for a descriptionof the feasible paths through the program code that characterizes thebehavior of the code sufficiently to compute the exact maximum execution timeof the program – not just a bound thereof. Finally, linear programsolving does not only yield maximum execution times, but also producesdetailed information about the execution time and the number of executions ofevery single program construct in the worst case. This knowledge is valuablefor a more comprehensive analysis of the timing of a program.