A Tool for the Computation of Worst Case Task Execution Times
|
|
- Cynthia Horton
- 5 years ago
- Views:
Transcription
1 A Tool for the Computation of Worst Case Task Execution Times P. Puschner and A. Schedl Institut fur Technische Informatik Technical University of Vienna Vienna, A-1040 Austria Abstract In modern programming environments for real-time software the presence of task timing analysis tools has become state of the art. Upon the results produced by these tools programmers judge whether software being developed meets the specified timing requirements. In this paper we present a new task taming analysis tool for MARS. This tool not only allows to compute worst case execution time bounds of high quality. It also produces detailed information about the extent to which every statement contributes to this bound and allows to experiment with hypothetical times. These properties of the timing analysis tool allow to make execution time information an integral part of the entire programming process. 1 Introduction One of the central parameters in the design and implementation of predictable real-time applications is the maximum execution time (MAXT) of the tasks involved. During the design estimates for the MAXTs of tasks are used to make feasibility studies, to determine the needed resources, to plan the timing of interactions between tasks, and to allocate tasks to processing units. In the implementation phase, these estimates become time budgets that have to be met by the tasks. The MAXTs of those tasks must not exceed the allotted times. Several research projects yielded methodologies and tools for the computation of task execution time bounds [l, 3, 4, 6, 71. While these approaches are very valuable to compute the execution time of entire, fully implemented tasks, we want to give the programmer more detailed information about the code s timing. Also, we want to let the programmer know about the timing during the whole programming process, not just at the end. A promising way to achieve the above-mentioned goal is to provide a programming environment that allows an easy exchange of information about a task s behavior and detailed timing information between the user and the environment. This demand establishes requirements for the task timing analysis tool of the programming environment: This timing analysis tool must be able to a) process programs supplemented with constructs which describe restrictions on the possible execution paths, b) compute bounds for the worst case execution times of programs and program parts that are close to the real execution times, and c) provide information to identify those parts of a program whose improvements are most promising to get along with the given amount of time. This paper describes a novel task execution time analysis tool, the MAXT analyzer, which fulfills the above-mentioned requirements. It takes into account knowledge about limitations of the control flow through a program, such as loop bounds, break- and -statements, and additional user-supplied information about impossible paths. From this input it does not only compute tight execution time bounds, but it also shows to which extent every single piece of code contributes to the overall worst case execution time. The paper is structured as follows: In Section 2 we describe our assumptions about the task model. Section 3 sketches the requirements for the MAXT analyzer. In Section 4 and 5, the main part of this work, we describe the representation of timing data and the MAXT calculation algorithm. The paper is concluded in Section 6. 2 Framework and Assumptions The described timing analysis tool is part of the MARS programming environment [5] for the MARS system [2]. It makes the following assumptions about tasks: /93 $ JEEE 224
2 0 After initialization tasks repeatedly receive a set of messages, perform a calculation (task body), and send a set of messages. Messages may only be received before and sent after the calculation part. In the task body itself no communication, synchronization, or unpredictable delays may occur. 0 All tasks and procedures are written in MOD- ULA/R, a programming language which guarantees that the worst case execution times of every piece of code can be bounded. The pre-runtime scheduler guarantees that a task does not have to wait for a message. Moreover, the use of nonboundable constructs (recursions, unlimited delays, gotos, unbounded loops, etc.) is prohibited. The programming environment is composed of a user interface with text and time editor, a compiler, and the task timing analysis tool. These components of the environment are tightly connected. They communicate via a central data structure, called timing tree. The timing tree represents all information needed for task timing analysis and the detailed documentation of a task s timing behavior. 3 Requirements for the Task Timing Analysis Tool We established the following list of requirements for our new MAXT analyzer. Computability: First of all, an upper bound for the worst case execution time of a task must be computable. This problem has been discussed and solved: The language Real-Time Euclid restricts constructs to those boundable in time [l], and [7, 61 present methods for the calculation of execution time bounds. Quality: The computed bound has to be tight, i.e., the difference between the computed MAXT bound and the real worst case execution time must be small. This is necessary to achieve a good utilization of all involved resources. 0 Feedback Support: MAXT analysis has to produce output that allows for a detailed documentation of a program s timing behavior - the computation of a single MAXT value is not sufficient for that purpose. Only this detailed information showing the execution time and contribution of each program part to the overall execution time allows the programmer to judge the timing of the code and gives him the necessary feedback for possible code improvements. Modelability: The programming environment should support the programmer in judging whether planned code improvements can yield the expected benefits. If the user assumes he can achieve a certain execution time for a program section, the environment should be able to present the consequences of this assumption on the program s overall execution time. The MAXT analyzer must therefore support the assessment of the consequences of program changes before they are actually implemented. 4 The Timing Tree The timing tree is the data structure that holds all details that are relevant for the calculation and display of timing information. The structure of the program s timing tree is related with the syntax tree the compiler generates for the program [8]. Only, the leaves of the timing tree represent statement sequences rather than operands and operators of single statements. Also, the timing tree s nodes hold information about the execution times of the respective program sections. The tree representation was chosen for the following reasons: 0 The similarity to the syntax tree allows to establish a mapping between the respective nodes of both data structures. 0 Maintaining the timing information in a data structure that reflects the structure of the source program gives us the possibility to relate the source code and timing information to each other. To play around and model execution times the programmer can set hypothetical times for all displayed program parts and observe the effects on other parts of the code. 0 Since all tools of the programming environment can directly access the timing tree, the turnaround cycles during programming can be kept short. 4.1 Structure of the Timing Tree A timing tree represents the structure and temporal behavior of a program or subroutine. Its leave nodes represent those parts of the source code that 225
3 the compiler translates into basic blocks, i.e., pieces of sequential assembler code. They hold the actual and hypothetical execution times for these instruction sequences. The inner nodes keep the knowledge about the structure of and the possible execution paths through the code. These nodes represent loops, alternatives (if-statements), -statements, break-statements, procedure calls, as well as scopes, markers, and loop sequences [6]. Inner nodes contain the following pieces of timing information: 0 Control flow times, e.g., the time for the conditional jump around a branch of an if-statement. 0 Actual worst case execution times of composite statements and their parts. 0 Hypothetical execution times for the purpose of modeling. 0 Restrictions on the control flow as expressed by loop bounds, scopes, markers, and loop sequences. 0 Contribution of the construct to the worst case execution time. This number illustrates how many executions of the construct are accounted for in the worst case execution time. 0 The do-not-display flag is used to mark constructs which are generated by the compiler, i.e., they do not appear in the source code, and are not to be shown to the programmer. 5 MAXT Analysis This section describes the MAXT calculation method of the MAXT analyzer. Section 5.1 explains the principles of the calculation method. It also shows how the analyzer processes information about infeasible paths. The treatment of - and breakstatements, which are also considered in our approach, is sketched in Section 5.2. Section 5.3 works out the possibilities and problems when displaying information about the timing behavior for every single program segment. 5.1 Computation of the MAXT The principle of the MAXT-analysis is to traverse the timing-tree by calculating the MAXT for the various constructs from the knowledge about the control flow plus the execution time of basic blocks. In order to be able to compute the execution time of loops, an upper bound for the number of iterations has to be specified by the programmer. That upper bound is called the maxcount of the loop. In addition to these loop bounds the timing tree may describe additional bounds which express limits on the number of possible paths through loops and branches. E.g., within nested loops it often occurs that some paths through the program can under no circumstances be executed for the maximal number of iterations. Additional bounds give the user the opportunity to rule out such paths. This draws the calculated MAXT closer to the real MAXT of the implemented task. Mostly the so described bounds are only valid for a certain scope of the program. It is easier to concentrate on that scope and to ignore the rest of the program when specifying additional bounds. The restrictions on specific program parts within a scope are described by markers. Both, scopes and markers are represented by inner nodes of the timing tree. The main challenge with these extensions is the MAXT-calculation of loops. Our strategy proposes to search for the most time-consuming path through the loop and to calculate the maximal number of possible executions of that path. If the maxcount is the only bound specified in the loop, the execution time of the most time-consuming path has to be multiplied with the mazcount to get the calculated MAXT of the whole loop. If, on the other hand, an additional bound limits the execution number of the most timeconsuming path, the contribution of that path to the MAXT of the entire loop is restricted to that number of times. In this case two or even more different paths - each with a possible limit - contribute to the MAXT of that loop. The piece of pseudo-code in Figure 1 illustrates the MAXT calculati on for loops. seurch-mazt-puth() searches the most timeconsuming path which is not marked as used. huwoften(puth) gives the maximal number of possible passes through path. MAXT (path) gives the maximum execution time of path. mrk-used-puth(puth) marks path as used in order to ignore it in the next execution of search-mazt-puth(). 5.2 Returns and Breaks There are constructs which cause a premature termination of a procedure or loop. The algorithm ofthe 226
4 maxt := 0 to-consume := maxcount while ( to-consume > 0 ) do maxt -pat h : = search-max t -pat h() possible := how-often(maxt-path) if ( possible > to-consume ) then maxt := maat + to-consume*maxt(maxt-path) to-consume := 0 else maat := maxt + possible*maxt(maxt-path) to-consume := to-consume - possible endif mark -used-pat h( maxt -pat h) endwhile Figure 1: Pseudo-code for the MAXT-calculation of Loops 20 cyc Figure 3: Loop with Return statements in their bodies has to be considered. A simple example is given in Figure 3. To get a valid result for the MAXT, the maximal utilization of iterations is required. The MAXT for the given example is obtained when the then-branch is run through for maxcount - 1 times and the else-branch is executed in the last iteration of the loop. MAXT-analyzer takes - in addition to what is presented above - also into account the effects of and break-statements. A procedure which arrives at a -statement during its execution terminates immediately. All subsequent statements are not executed. To get tight results these premature termination has to be taken into consideration. 25 cyc 1 10 cyc 1 Figure 2: If with Return Return-statements exercise an influence on the MAXT-calculation of branches. If one alternative of an if-statement contains a, the most timeconsuming branch cannot be used automatically for MAXT calculation. Figure 2 shows an example, which explains the main issue of that problem (cyc,,.machine cycles). The else-branch consumes more time than the then-branch, but less time than the then-branch increased by the MAXT of the subsequent statements. Also, the analysis of loops which include - Some small modifications of the algorithm are sufficient to take the mentioned items into account. These modifications must allow to compare the worst case execution time of a path that stops execution at a -statement with paths that end at the last statement of the procedure (or other -statements). To this end, the MAXT of the statements following a block with s must already be known when the influence of these s on the global execution time is analyzed. The trick is to calculate the MAXT of a procedure not starting with the first, but with the last statement. That strategy allows to compare the MAXT of a -branch (i.e., a branch containing a -statement) with the sum of the MAXTs of the other branch and the subsequent statements. As said above, analyzing loops means to search for the maxcount most time-consuming paths in that loop. This is also true for loops containing s. Yet within loops we have to take care that only one path can be executed. Since the order in which we sum up the times of the most time-consuming statements does not have to equal the order in which they will be executed at run-time, the code shown in Figure 1 can be used without modification to calculate the MAXT for loops with -statements. The treatment of breabstatements is very similar to -t the treatment of s and we do therefore not de- scribe it here. The only difference is that the effects of breaks are local to one loop, while a terminates a whole subroutine. 227
5 5.3 Information for the Programmer In the previous section we described how the MAXTs of entire procedures are calculated. We did, however, not yet mention the kinds of information the MAXT analyier generates to support the real-time programmer. A significant support for the user is that, apart from the MAXT of the whole procedures, the MAXT of every single statement is calculated and shown. Simple blocks always take a given amount of time, which can be displayed easily. If- and loop-statements require more than one display component to give detailed information about their timing behavior. Both types of statements require one display component for the MAXT of the condition. Apart from that ifstatements contain the following components: one for the MAXT of the then-, one for the else-branch, and one for the MAXT of the whole if-statement. Additional display components for loops are: one for the loop-body and one for the entire loop. All these components are represented in the timing-tree. Their values are calculated by the MAXT-analyzer. When the MAXTs for all parts of a program have to be displayed, some problems arise. As the examm 200 cyc 20 cyc 100 cyc Figure 4: A Sample Display Problem ple in Figure 4 depicts, the displayed times must not always simply be added to receive the MAXT of the whole sequence. Since the inclusion of - and break-statements into our calculations is a central item of our work, we have to consider that these statements normally destroy the sequential control flow through a task. In our example the MAXT of the sequence preceding the is 200 cycles. The branch affects the MAXT of the whole piece of code, whereas the other branch (20 cyc) and the subsequent statement (100 cyc) do not contribute to the MAXT. Therefore an improvement of the latter would not improve the total MAXT at all. A different problem occurs when the MAXTs of loops are displayed (see Figure 5). Obviously the I maxcount: cyc I I I Figure 5: Loop with Return MAXT of the loop is calculated by adding the branch (50 cyc) once and the non--branch (20 cyc) 9 times. The display component for the loopbody always contains the time of the most timeconsuming path, i.e., the MAXT of the -branch. Nevertheless an improvement of n cycles in the non-branch would decrease the MAXT of the loop by 9 x n cycles. An equal improvement in the branch would lower total MAXT only by n cycles. To search for those parts whose improvement is most promising each node of the timing tree contains additional components where its contribution to the MAXT is stored. This information is computed for every single statement during the MAXT calculation. It can be used for display in order to tell the programmer how often the execution time of any particular statement is included in the MAXT of the whole procedure. 6 Conclusion In this paper we described a novel task timing analysis tool for the MARS programming environment. A prototype of this tool has been implemented. It is special in that it computes tight execution time bounds, supports a detailed documentation of a program s timing behavior, and allows to calculate execution time bounds under the assumption of hypothetical execution times for deliberate program parts. Our tool can compute tight execution time bounds for two reasons. First, it makes use of control flow information provided by scope, marker and loop sequence constructs to exclude infeasible paths from the calculation. Second, the tool takes advantage of the knowledge about - and break-statements. Documentation of a program s timing behavior is specifically supported by the data structure that represents the timing information. The nodes of this socalled timing tree hold information of the execution 228
6 times of the code sections they represent and indicate to which extent these constructs contribute to the overall worst case execution time. These pieces of information and the similarity of the timing tree to the program s syntax tree allow to establish an exact mapping of timing information to code sections. Thus, code pieces which consume too much time and have to be improved can be located easily. The possibility to replace actual execution times in the timing tree by hypothetical values allows the programmer to check the consequences of possible changes before actually implementing them. This saves time in cases where useless code improvements would otherwise be tried. A prototype version of the described MAXT tool has been implemented and is currently evaluated. dictable timing. IEEE Software, 9(5):35-44, Sep [6] P. Puschner and Ch. Koza. Calculating the maximum execution time of real-time programs. Real- Time Systems, 1(2): , Sep [7] A. C. Shaw. Reasoning about time in higher-level language software. IEEE Transactions on Software Engineering, SE- 15 (7) : , July [8] A. Vrchoticky. Integrating compilation and timing analysis. Research Report 1/93, Institut fur Technische Informatik, Technische Universitat Wien, Vienna, Austria, Jan Acknowledgements This work has been supported by the Austrian Science Foundation (Fonds zur Forderung der wissenschaftlichen Forschung) under contract P8002- TEC. We are grateful to Gerhard Fohler, Emmerich Fuchs, and Alexander Vrchoticky for their valuable comments on an earlier version of this paper. References [l] E. Kligerman and A. Stoyenko. Real-time euclid: A language for reliable real-time systems. IEEE Transactions on Software Engineering, SE- 12(9): , Sep [2] H. Kopetz, A. Damm, Ch. Koza, M. Mulazzani, W. Schwabl, Ch. Senft, and R. Zainlinger. Distributed fault-tolerant real-time systems: The MARS Approach. IEEE Micro, 9(1):25-40, Feb [3] A. K. Mok, P. Amerasinghe, M. Chen, and K. Tantisirivat. Evaluating tight execution time bounds of programs by annotations. In Proc. 6th IEEE Workshop on Real- Time Operating Systems and Software, pages 74-80, Pittsburgh, PA, USA, May [4] C. Park and A. C. Shaw. Experiments with a program timing tool based on source-level timing schema. IEEE Computer, 24(5):48-57, May [5] G. Pospischil, P. Puschner, A. Vrchoticky, and R. Zainlinger. Developing real-time tasks with pre- 229
FROM TIME-TRIGGERED TO TIME-DETERMINISTIC REAL-TIME SYSTEMS
FROM TIME-TRIGGERED TO TIME-DETERMINISTIC REAL-TIME SYSTEMS Peter Puschner and Raimund Kirner Vienna University of Technology, A-1040 Vienna, Austria {peter, raimund}@vmars.tuwien.ac.at Abstract Keywords:
More informationEliminating Annotations by Automatic Flow Analysis of Real-Time Programs
Eliminating Annotations by Automatic Flow Analysis of Real-Time Programs Jan Gustafsson Department of Computer Engineering, Mälardalen University Box 883, S-721 23 Västerås, Sweden jangustafsson@mdhse
More informationPredicting the Worst-Case Execution Time of the Concurrent Execution. of Instructions and Cycle-Stealing DMA I/O Operations
ACM SIGPLAN Workshop on Languages, Compilers and Tools for Real-Time Systems, La Jolla, California, June 1995. Predicting the Worst-Case Execution Time of the Concurrent Execution of Instructions and Cycle-Stealing
More informationsignature i-1 signature i instruction j j+1 branch adjustment value "if - path" initial value signature i signature j instruction exit signature j+1
CONTROL FLOW MONITORING FOR A TIME-TRIGGERED COMMUNICATION CONTROLLER Thomas M. Galla 1, Michael Sprachmann 2, Andreas Steininger 1 and Christopher Temple 1 Abstract A novel control ow monitoring scheme
More informationIMPROVING TIMING ANALYZABILITY THROUGH SOURCE CODE ANALYSIS AND TESTABILITY TRANSFORMATIONS IN REAL-TIME SYSTEMS. David Barrientos Velasco
IMPROVING TIMING ANALYZABILITY THROUGH SOURCE CODE ANALYSIS AND TESTABILITY TRANSFORMATIONS IN REAL-TIME SYSTEMS David Barrientos Velasco IMPROVING TIMING ANALYZABILITY THROUGH SOURCE CODE ANALYSIS AND
More informationClassification of Code Annotations and Discussion of Compiler-Support for Worst-Case Execution Time Analysis
Proceedings of the 5th Intl Workshop on Worst-Case Execution Time (WCET) Analysis Page 41 of 49 Classification of Code Annotations and Discussion of Compiler-Support for Worst-Case Execution Time Analysis
More informationAn Operating System for a Time-Predictable Computing Node
An Operating System for a Time-Predictable Computing Node Guenter Khyo, Peter Puschner, and Martin Delvai Vienna University of Technology Institute of Computer Enginering A1040 Vienna, Austria peter@vmars.tuwien.ac.at
More informationCalculating the Maximum. P. Puschner, Ch. Koza. Institut fur Technische Informatik. Technische Universitat Wien.
Calculating the Maximum Execution Time of Real-Time Programs P. Puschner, Ch. Koza Institut fur Technische Informatik Technische Universitat Wien peter@vmars.uucp, koza@vmars.uucp Version 1 April 7, 1989
More informationTransforming Execution-Time Boundable Code into Temporally Predictable Code
Transforming Execution-Time Boundable Code into Temporally Predictable Code Peter Puschner Institut for Technische Informatik. Technische Universitdt Wien, Austria Abstract: Traditional Worst-Case Execution-Time
More informationTime Triggered and Event Triggered; Off-line Scheduling
Time Triggered and Event Triggered; Off-line Scheduling Real-Time Architectures -TUe Gerhard Fohler 2004 Mälardalen University, Sweden gerhard.fohler@mdh.se Real-time: TT and ET Gerhard Fohler 2004 1 Activation
More informationTuBound A tool for Worst-Case Execution Time Analysis
TuBound A Conceptually New Tool for Worst-Case Execution Time Analysis 1 Adrian Prantl, Markus Schordan, Jens Knoop {adrian,markus,knoop}@complang.tuwien.ac.at Institut für Computersprachen Technische
More informationG Programming Languages - Fall 2012
G22.2110-003 Programming Languages - Fall 2012 Lecture 3 Thomas Wies New York University Review Last week Names and Bindings Lifetimes and Allocation Garbage Collection Scope Outline Control Flow Sequencing
More informationCh 1: The Architecture Business Cycle
Ch 1: The Architecture Business Cycle For decades, software designers have been taught to build systems based exclusively on the technical requirements. Software architecture encompasses the structures
More informationThe Influence of Real-time Constraints on the Design of FlexRay-based Systems
The Influence of Real-time Constraints on the Design of FlexRay-based Systems Stephan Reichelt Oliver Scheickl Gökhan Tabanoglu Audi Electronics Venture GmbH BMW Car IT GmbH Volkswagen AG Abstract This
More informationStatic WCET Analysis: Methods and Tools
Static WCET Analysis: Methods and Tools Timo Lilja April 28, 2011 Timo Lilja () Static WCET Analysis: Methods and Tools April 28, 2011 1 / 23 1 Methods 2 Tools 3 Summary 4 References Timo Lilja () Static
More informationSingle-Path Code Generation and Input-Data Dependence Analysis
Single-Path Code Generation and Input-Data Dependence Analysis Daniel Prokesch daniel@vmars.tuwien.ac.at July 10 th, 2014 Project Workshop Madrid D. Prokesch TUV T-CREST Workshop, Madrid July 10 th, 2014
More informationAutomatic flow analysis using symbolic execution and path enumeration
Automatic flow analysis using symbolic execution path enumeration D. Kebbal Institut de Recherche en Informatique de Toulouse 8 route de Narbonne - F-62 Toulouse Cedex 9 France Djemai.Kebbal@iut-tarbes.fr
More informationPrinciple of Complier Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore
Principle of Complier Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore Lecture - 20 Intermediate code generation Part-4 Run-time environments
More informationA Time-Triggered View. Peter PUSCHNER
Predictable Timing on MPSoC A Time-Triggered View Peter PUSCHNER 1 st Workshop on Mapping Applications to MPSoCs Schloss Rheinfels, Germany June 2008 Focus goal: build safety-critical hard real-time systems
More informationLoad Balancing for Problems with Good Bisectors, and Applications in Finite Element Simulations
Load Balancing for Problems with Good Bisectors, and Applications in Finite Element Simulations Stefan Bischof, Ralf Ebner, and Thomas Erlebach Institut für Informatik Technische Universität München D-80290
More informationMAKING JAVA HARD REAL-TIME
MAKING JAVA HARD REAL-TIME Peter Puschner Institut für Technische Informatik Technische Universität Wien A-1040 Wien, Austria Email: peter@vmars.tuwien.ac.at Guillem Bernat and Andy Wellings Department
More informationFramework for replica selection in fault-tolerant distributed systems
Framework for replica selection in fault-tolerant distributed systems Daniel Popescu Computer Science Department University of Southern California Los Angeles, CA 90089-0781 {dpopescu}@usc.edu Abstract.
More informationData-Flow Based Detection of Loop Bounds
Data-Flow Based Detection of Loop Bounds Christoph Cullmann and Florian Martin AbsInt Angewandte Informatik GmbH Science Park 1, D-66123 Saarbrücken, Germany cullmann,florian@absint.com, http://www.absint.com
More informationAnnouncements. Lab Friday, 1-2:30 and 3-4:30 in Boot your laptop and start Forte, if you brought your laptop
Announcements Lab Friday, 1-2:30 and 3-4:30 in 26-152 Boot your laptop and start Forte, if you brought your laptop Create an empty file called Lecture4 and create an empty main() method in a class: 1.00
More informationSingle-Path Programming on a Chip-Multiprocessor System
Single-Path Programming on a Chip-Multiprocessor System Martin Schoeberl, Peter Puschner, and Raimund Kirner Vienna University of Technology, Austria mschoebe@mail.tuwien.ac.at, {peter,raimund}@vmars.tuwien.ac.at
More informationWCET-Aware C Compiler: WCC
12 WCET-Aware C Compiler: WCC Jian-Jia Chen (slides are based on Prof. Heiko Falk) TU Dortmund, Informatik 12 2015 年 05 月 05 日 These slides use Microsoft clip arts. Microsoft copyright restrictions apply.
More informationPROBLEM SOLVING AND PYTHON PROGRAMMING
ALGORITHM UNIT-1 It is defined as a sequence of instructions that describe a method for solving a problem. In other words it is a step by step procedure for solving a problem. Properties of Algorithms
More informationChapter 2 Overview of the Design Methodology
Chapter 2 Overview of the Design Methodology This chapter presents an overview of the design methodology which is developed in this thesis, by identifying global abstraction levels at which a distributed
More informationWriting Temporally Predictable Code
Writing Temporally Predictable Code Peter Puschner Benedikt Huber slides credits: P. Puschner, R. Kirner, B. Huber VU 2.0 182.101 SS 2015 Task Execution Time a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 9 a 8 1. Sequence
More informationECE 2574: Data Structures and Algorithms - Recursion Part I. C. L. Wyatt
ECE 2574: Data Structures and Algorithms - Recursion Part I C. L. Wyatt Today we will introduce the notion of recursion, look at some examples, and see how to implement them in code. Introduction to recursion
More informationPerformance Analysis of Embedded Software Using Implicit Path Enumeration
Performance Analysis of Embedded Software Using Implicit Path Enumeration Yau-Tsun Steven Li Sharad Malik Department of Electrical Engineering, Princeton University, NJ 08544, USA. Abstract Embedded computer
More informationIn examining performance Interested in several things Exact times if computable Bounded times if exact not computable Can be measured
System Performance Analysis Introduction Performance Means many things to many people Important in any design Critical in real time systems 1 ns can mean the difference between system Doing job expected
More informationAlgorithms and Flowcharts
UNIT 2 Chapter 1 Algorithms and Flowcharts After studying this lesson, the students will be able to understand the need of Algorithm and Flowcharts; solve problems by using algorithms and flowcharts; get
More information5th World Congress for Software Quality Shanghai, China November 2011
Yoshihiro Kita University of Miyazaki Miyazaki, Japan kita@earth.cs.miyazaki-u.ac.jp Proposal of Execution Paths Indication Method for Integration Testing by Using an Automatic Visualization Tool Avis
More informationOptimizing Closures in O(0) time
Optimizing Closures in O(0 time Andrew W. Keep Cisco Systems, Inc. Indiana Univeristy akeep@cisco.com Alex Hearn Indiana University adhearn@cs.indiana.edu R. Kent Dybvig Cisco Systems, Inc. Indiana University
More informationLecture Notes on Dataflow Analysis
Lecture Notes on Dataflow Analysis 15-411: Compiler Design Frank Pfenning Lecture 5 September 9, 2008 1 Introduction In this lecture we first extend liveness analysis to handle memory references and then
More informationReal-Time Component Software. slide credits: H. Kopetz, P. Puschner
Real-Time Component Software slide credits: H. Kopetz, P. Puschner Overview OS services Task Structure Task Interaction Input/Output Error Detection 2 Operating System and Middleware Application Software
More informationTiming Anomalies and WCET Analysis. Ashrit Triambak
Timing Anomalies and WCET Analysis Ashrit Triambak October 20, 2014 Contents 1 Abstract 2 2 Introduction 2 3 Timing Anomalies 3 3.1 Retated work........................... 4 3.2 Limitations of Previous
More informationDESIGN AND ANALYSIS OF ALGORITHMS. Unit 1 Chapter 4 ITERATIVE ALGORITHM DESIGN ISSUES
DESIGN AND ANALYSIS OF ALGORITHMS Unit 1 Chapter 4 ITERATIVE ALGORITHM DESIGN ISSUES http://milanvachhani.blogspot.in USE OF LOOPS As we break down algorithm into sub-algorithms, sooner or later we shall
More informationKeywords: Worst-case execution time (WCET) analysis, annotation languages, WCET annotation language challenge.
TOWARDS A COMMON WCET ANNOTATION LANGUAGE: ESSENTIAL INGREDIENTS 1 Raimund Kirner, Albrecht Kadlec and Peter Puschner 2 Adrian Prantl, Markus Schordan and Jens Knoop 3 Abstract Within the last years, ambitions
More informationA MACHINE INDEPENDENT WCET PREDICTOR FOR MICROCONTROLLERS AND DSPS
A MACHINE INDEPENDENT WCET PREDICTOR FOR MICROCONTROLLERS AND DSPS Adriano José Tavares Department of Industrial Electronics, University of Minho, 4800 Guimarães, Portugal e-mail: atavares@dei.uminho.pt,
More informationx = 3 * y + 1; // x becomes 3 * y + 1 a = b = 0; // multiple assignment: a and b both get the value 0
6 Statements 43 6 Statements The statements of C# do not differ very much from those of other programming languages. In addition to assignments and method calls there are various sorts of selections and
More informationUnit 1 Chapter 4 ITERATIVE ALGORITHM DESIGN ISSUES
DESIGN AND ANALYSIS OF ALGORITHMS Unit 1 Chapter 4 ITERATIVE ALGORITHM DESIGN ISSUES http://milanvachhani.blogspot.in USE OF LOOPS As we break down algorithm into sub-algorithms, sooner or later we shall
More informationIn this chapter you ll learn:
Much that I bound, I could not free; Much that I freed returned to me. Lee Wilson Dodd Will you walk a little faster? said a whiting to a snail, There s a porpoise close behind us, and he s treading on
More informationTuBound A Conceptually New Tool for Worst-Case Execution Time Analysis 1
TuBound A Conceptually New Tool for Worst-Case Execution Time Analysis 1 Adrian Prantl, Markus Schordan and Jens Knoop Institute of Computer Languages, Vienna University of Technology, Austria email: {adrian,markus,knoop@complang.tuwien.ac.at
More information19 Much that I bound, I could not free; Much that I freed returned to me. Lee Wilson Dodd
19 Much that I bound, I could not free; Much that I freed returned to me. Lee Wilson Dodd Will you walk a little faster? said a whiting to a snail, There s a porpoise close behind us, and he s treading
More informationLecture #12 February 25, 2004 Ugly Programming Tricks
Lecture #12 February 25, 2004 Ugly Programming Tricks In this lecture we will visit a number of tricks available in assembly language not normally seen in high-level languages. Some of the techniques are
More informationCHAPTER : 9 FLOW OF CONTROL
CHAPTER 9 FLOW OF CONTROL Statements-Statements are the instructions given to the Computer to perform any kind of action. Null Statement-A null statement is useful in those case where syntax of the language
More informationAn algorithm for Performance Analysis of Single-Source Acyclic graphs
An algorithm for Performance Analysis of Single-Source Acyclic graphs Gabriele Mencagli September 26, 2011 In this document we face with the problem of exploiting the performance analysis of acyclic graphs
More informationExtended Dataflow Model For Automated Parallel Execution Of Algorithms
Extended Dataflow Model For Automated Parallel Execution Of Algorithms Maik Schumann, Jörg Bargenda, Edgar Reetz and Gerhard Linß Department of Quality Assurance and Industrial Image Processing Ilmenau
More informationAr r ays and Pointer s
Ar r ays and Pointer s Using Bloodshed Dev-C++ Heejin Park Hanyang University 2 Introduction Arrays Multidimensional Arrays Pointers and Arrays Functions, Arrays, and Pointers Pointer Operations Protecting
More informationPredicated Software Pipelining Technique for Loops with Conditions
Predicated Software Pipelining Technique for Loops with Conditions Dragan Milicev and Zoran Jovanovic University of Belgrade E-mail: emiliced@ubbg.etf.bg.ac.yu Abstract An effort to formalize the process
More informationHandling Cyclic Execution Paths in Timing Analysis of Component-based Software
Handling Cyclic Execution Paths in Timing Analysis of Component-based Software Luka Lednicki, Jan Carlson Mälardalen Real-time Research Centre Mälardalen University Västerås, Sweden Email: {luka.lednicki,
More informationScheduling in Multiprocessor System Using Genetic Algorithms
Scheduling in Multiprocessor System Using Genetic Algorithms Keshav Dahal 1, Alamgir Hossain 1, Benzy Varghese 1, Ajith Abraham 2, Fatos Xhafa 3, Atanasi Daradoumis 4 1 University of Bradford, UK, {k.p.dahal;
More informationICSA 2017 Tutorial Runtime Modeling and Visualization -- Introduction to Palladio
DFG Priority Programme 1593 Design For Future - Managed Software Evolution ICSA 2017 Tutorial Runtime Modeling and Visualization -- Introduction to Palladio R. Heinrich ICSA 2017 Tutorial Introduction
More informationA Top-Down Visual Approach to GUI development
A Top-Down Visual Approach to GUI development ROSANNA CASSINO, GENNY TORTORA, MAURIZIO TUCCI, GIULIANA VITIELLO Dipartimento di Matematica e Informatica Università di Salerno Via Ponte don Melillo 84084
More informationCombining Algebraic Constraints with Graph-based Intelligent Testbench Automation by Mike Andrews, Verification Technologist, Mentor Graphics
Combining Algebraic Constraints with Graph-based Intelligent Testbench Automation by Mike Andrews, Verification Technologist, Mentor Graphics 22 Abstract: The Questa infact intelligent testbench automation
More informationScheme of work Cambridge International AS & A Level Computing (9691)
Scheme of work Cambridge International AS & A Level Computing (9691) Unit 2: Practical programming techniques Recommended prior knowledge Students beginning this course are not expected to have studied
More informationeasel LANGUAGE REFERENCE MANUAL
easel LANGUAGE REFERENCE MANUAL Manager Danielle Crosswell dac2182 Language Guru Tyrus Cukavac thc2125 System Architect Yuan-Chao Chou yc3211 Tester Xiaofei Chen xc2364 Table of Contents 1. Introduction...
More information3.4 Data-Centric workflow
3.4 Data-Centric workflow One of the most important activities in a S-DWH environment is represented by data integration of different and heterogeneous sources. The process of extract, transform, and load
More informationAbstract. 1. Introduction
MINIMOS - Abstract A PROGRAM PACKAGE TO FACILITATE MOS DEVICE DESIGN AND ANALYSIS S.Selberherr, W.Fichtner and H.W.Potzl Institut fur Physikalische Elektronik Technische Universitat Wien Gusshausstrasse
More informationPRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS
Objective PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS Explain what is meant by compiler. Explain how the compiler works. Describe various analysis of the source program. Describe the
More informationFundamentals of Programming Session 13
Fundamentals of Programming Session 13 Instructor: Reza Entezari-Maleki Email: entezari@ce.sharif.edu 1 Fall 2014 These slides have been created using Deitel s slides Sharif University of Technology Outlines
More informationThunks. A Way of Compiling Procedure Statements with Some Comments on Procedure Declarations* P. Z. Ingerman
Reprinted from the~communications OF THE ASSOCIATION FOR COMPUTING MACHINERY Volume 4, Number 1, January 1961 Made in U.S.A. Thunks A Way of Compiling Procedure Statements with Some Comments on Procedure
More informationThe Encoding Complexity of Network Coding
The Encoding Complexity of Network Coding Michael Langberg Alexander Sprintson Jehoshua Bruck California Institute of Technology Email: mikel,spalex,bruck @caltech.edu Abstract In the multicast network
More informationait: WORST-CASE EXECUTION TIME PREDICTION BY STATIC PROGRAM ANALYSIS
ait: WORST-CASE EXECUTION TIME PREDICTION BY STATIC PROGRAM ANALYSIS Christian Ferdinand and Reinhold Heckmann AbsInt Angewandte Informatik GmbH, Stuhlsatzenhausweg 69, D-66123 Saarbrucken, Germany info@absint.com
More informationRTC: Language Support for Real-Time Concurrency
RTC: Language Support for Real-Time Concurrency Insup Lee, Susan Davidson, and Victor Wolfe 1 Introduction The RTC (Real-Time Concurrency) programming concepts and language constructs for expressing timing
More informationTest Data Generation based on Binary Search for Class-level Testing
Test Data Generation based on Binary Search for Class-level Testing Sami Beydeda, Volker Gruhn University of Leipzig Faculty of Mathematics and Computer Science Department of Computer Science Applied Telematics
More informationAnalyzing Real-Time Systems
Analyzing Real-Time Systems Reference: Burns and Wellings, Real-Time Systems and Programming Languages 17-654/17-754: Analysis of Software Artifacts Jonathan Aldrich Real-Time Systems Definition Any system
More informationDirect Functions in Dyalog APL
Direct Functions in Dyalog APL John Scholes Dyalog Ltd. john@dyalog.com A Direct Function (dfn) is a new function definition style, which bridges the gap between named function expressions such as and
More informationThe PCAT Programming Language Reference Manual
The PCAT Programming Language Reference Manual Andrew Tolmach and Jingke Li Dept. of Computer Science Portland State University September 27, 1995 (revised October 15, 2002) 1 Introduction The PCAT language
More informationBuilding a Runnable Program and Code Improvement. Dario Marasco, Greg Klepic, Tess DiStefano
Building a Runnable Program and Code Improvement Dario Marasco, Greg Klepic, Tess DiStefano Building a Runnable Program Review Front end code Source code analysis Syntax tree Back end code Target code
More informationCIS 890: Safety Critical Systems
CIS 890: Safety Critical Systems Lecture: SPARK -- Analysis Tools Copyright 2007, John Hatcliff. The syllabus and all lectures for this course are copyrighted materials and may not be used in other course
More information2386 IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 52, NO. 6, JUNE 2006
2386 IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 52, NO. 6, JUNE 2006 The Encoding Complexity of Network Coding Michael Langberg, Member, IEEE, Alexander Sprintson, Member, IEEE, and Jehoshua Bruck,
More informationTUBOUND A CONCEPTUALLY NEW TOOL FOR WORST-CASE EXECUTION TIME ANALYSIS 1 Adrian Prantl, 2 Markus Schordan 2 and Jens Knoop 2
TUBOUND A CONCEPTUALLY NEW TOOL FOR WORST-CASE EXECUTION TIME ANALYSIS 1 Adrian Prantl, 2 Markus Schordan 2 and Jens Knoop 2 Abstract TUBOUND is a conceptually new tool for the worst-case execution time
More informationChapter 1. Fundamentals of Higher Order Programming
Chapter 1 Fundamentals of Higher Order Programming 1 The Elements of Programming Any powerful language features: so does Scheme primitive data procedures combinations abstraction We will see that Scheme
More informationEMBEDDED SYSTEMS PROGRAMMING Language Basics
EMBEDDED SYSTEMS PROGRAMMING 2015-16 Language Basics "The tower of Babel" by Pieter Bruegel the Elder Kunsthistorisches Museum, Vienna (PROGRAMMING) LANGUAGES ABOUT THE LANGUAGES C (1972) Designed to replace
More informationLanguage Translation. Compilation vs. interpretation. Compilation diagram. Step 1: compile. Step 2: run. compiler. Compiled program. program.
Language Translation Compilation vs. interpretation Compilation diagram Step 1: compile program compiler Compiled program Step 2: run input Compiled program output Language Translation compilation is translation
More informationCOMP 161 Lecture Notes 16 Analyzing Search and Sort
COMP 161 Lecture Notes 16 Analyzing Search and Sort In these notes we analyze search and sort. Counting Operations When we analyze the complexity of procedures we re determine the order of the number of
More informationAllowing Cycle-Stealing Direct Memory Access I/O. Concurrent with Hard-Real-Time Programs
To appear in: Int. Conf. on Parallel and Distributed Systems, ICPADS'96, June 3-6, 1996, Tokyo Allowing Cycle-Stealing Direct Memory Access I/O Concurrent with Hard-Real-Time Programs Tai-Yi Huang, Jane
More informationWhat are Embedded Systems? Lecture 1 Introduction to Embedded Systems & Software
What are Embedded Systems? 1 Lecture 1 Introduction to Embedded Systems & Software Roopa Rangaswami October 9, 2002 Embedded systems are computer systems that monitor, respond to, or control an external
More informationHistory-based Schemes and Implicit Path Enumeration
History-based Schemes and Implicit Path Enumeration Claire Burguière and Christine Rochange Institut de Recherche en Informatique de Toulouse Université Paul Sabatier 6 Toulouse cedex 9, France {burguier,rochange}@irit.fr
More information142
Scope Rules Thus, storage duration does not affect the scope of an identifier. The only identifiers with function-prototype scope are those used in the parameter list of a function prototype. As mentioned
More informationIntermediate Code Generation
Intermediate Code Generation In the analysis-synthesis model of a compiler, the front end analyzes a source program and creates an intermediate representation, from which the back end generates target
More informationBisection Debugging. 1 Introduction. Thomas Gross. Carnegie Mellon University. Preliminary version
Bisection Debugging Thomas Gross School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 Institut für Computer Systeme ETH Zürich CH 8092 Zürich Preliminary version Abstract This paper
More informationAlgorithm Design And Analysis Asst. Prof. Ali Kadhum Idrees The Sum-of-Subsets Problem Department of Computer Science College of Science for Women
The Sum-of-Subsets Problem In this problem, there is a set of items the thief can steal, and each item has its own weight and profit. The thief's knapsack will break if the total weight of the items in
More informationHigh Performance Computer Architecture Prof. Ajit Pal Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur
High Performance Computer Architecture Prof. Ajit Pal Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 18 Dynamic Instruction Scheduling with Branch Prediction
More informationBYZANTINE AGREEMENT CH / $ IEEE. by H. R. Strong and D. Dolev. IBM Research Laboratory, K55/281 San Jose, CA 95193
BYZANTINE AGREEMENT by H. R. Strong and D. Dolev IBM Research Laboratory, K55/281 San Jose, CA 95193 ABSTRACT Byzantine Agreement is a paradigm for problems of reliable consistency and synchronization
More informationCHAPTER 5 GENERATING TEST SCENARIOS AND TEST CASES FROM AN EVENT-FLOW MODEL
CHAPTER 5 GENERATING TEST SCENARIOS AND TEST CASES FROM AN EVENT-FLOW MODEL 5.1 INTRODUCTION The survey presented in Chapter 1 has shown that Model based testing approach for automatic generation of test
More informationA CAN-Based Architecture for Highly Reliable Communication Systems
A CAN-Based Architecture for Highly Reliable Communication Systems H. Hilmer Prof. Dr.-Ing. H.-D. Kochs Gerhard-Mercator-Universität Duisburg, Germany E. Dittmar ABB Network Control and Protection, Ladenburg,
More informationis easing the creation of new ontologies by promoting the reuse of existing ones and automating, as much as possible, the entire ontology
Preface The idea of improving software quality through reuse is not new. After all, if software works and is needed, just reuse it. What is new and evolving is the idea of relative validation through testing
More informationA Single-Path Chip-Multiprocessor System
A Single-Path Chip-Multiprocessor System Martin Schoeberl, Peter Puschner, and Raimund Kirner Institute of Computer Engineering Vienna University of Technology, Austria mschoebe@mail.tuwien.ac.at, {peter,raimund}@vmars.tuwien.ac.at
More informationUNIT 3
UNIT 3 Presentation Outline Sequence control with expressions Conditional Statements, Loops Exception Handling Subprogram definition and activation Simple and Recursive Subprogram Subprogram Environment
More informationUnit 3. Operators. School of Science and Technology INTRODUCTION
INTRODUCTION Operators Unit 3 In the previous units (unit 1 and 2) you have learned about the basics of computer programming, different data types, constants, keywords and basic structure of a C program.
More informationControl Structures. Code can be purely arithmetic assignments. At some point we will need some kind of control or decision making process to occur
Control Structures Code can be purely arithmetic assignments At some point we will need some kind of control or decision making process to occur C uses the if keyword as part of it s control structure
More informationLoops. Lather, Rinse, Repeat. CS4410: Spring 2013
Loops or Lather, Rinse, Repeat CS4410: Spring 2013 Program Loops Reading: Appel Ch. 18 Loop = a computation repeatedly executed until a terminating condition is reached High-level loop constructs: While
More informationExamples of Code Roaches. First Draft List Cem Kaner September 11, 2005
Examples of Code Roaches First Draft List Cem Kaner September 11, 2005 Why a Potential-Bug List? Given a potential error, you can develop a method to test for it Foundation for Code inspections Glass box
More informationProgramming Languages Third Edition. Chapter 9 Control I Expressions and Statements
Programming Languages Third Edition Chapter 9 Control I Expressions and Statements Objectives Understand expressions Understand conditional statements and guards Understand loops and variation on WHILE
More informationTyping Data. Chapter Recursive Types Declaring Recursive Types
Chapter 27 Typing Data 27.1 Recursive Types 27.1.1 Declaring Recursive Types We saw in the previous lecture how rec was necessary to write recursive programs. But what about defining recursive types? Recursive
More informationLittle Man Computer (LMC)
Little Man Computer (LMC) A-level Computing Independent Study Project Part Two The Little Man Computer (LMC) is a simulator which models the basic features of a modern computer. It features a central processing
More information