Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Andreas Engelbredt Dalsgaard is active.

Publication


Featured researches published by Andreas Engelbredt Dalsgaard.


worst case execution time analysis | 2010

METAMOC: Modular Execution Time Analysis using Model Checking

Andreas Engelbredt Dalsgaard; Mads Chr. Olesen; Martin Toft; René Rydhof Hansen; Kim Guldstrand Larsen

Safe and tight worst-case execution times (WCETs) are important when scheduling hard realtime systems. This paper presents METAMOC, a modular method, based on model checking and static analysis, that determines safe and tight WCETs for programs running on platforms featuring caching and pipelining. The method works by constructing a UPPAAL model of the program being analysed and annotating the model with information from an inter-procedural value analysis. The program model is then combined with a model of the hardware platform and model checked for the WCET. Through support for the platforms ARM7, ARM9 and ATMEL AVR 8-bit, the modularity and retargetability of the method are demonstrated, as only the pipeline needs to be remodelled. Hardware modelling is performed in a state-of-the-art graphical modelling environment. Experiments on the Malardalen WCET benchmark programs show that taking caching into account yields much tighter WCETs than without modelling caches, and that METAMOC is a suciently fast and versatile approach for WCET analysis.


computer aided verification | 2013

Multi-core emptiness checking of timed Büchi automata using inclusion abstraction

Alfons Laarman; Mads Chr. Olesen; Andreas Engelbredt Dalsgaard; Kim Guldstrand Larsen; Jaco van de Pol

This paper contributes to the multi-core model checking of timed automata (TA) with respect to liveness properties, by investigating checking of TA Buchi emptiness under the very coarse inclusion abstraction or zone subsumption, an open problem in this field. We show that in general Buchi emptiness is not preserved under this abstraction, but some other structural properties are preserved. Based on those, we propose a variation of the classical nested depth-first search (ndfs) algorithm that exploits subsumption. In addition, we extend the multi-core cndfs algorithm with subsumption, providing the first parallel LTL model checking algorithm for timed automata. The algorithms are implemented in LTSmin, and experimental evaluations show the effectiveness and scalability of both contributions: subsumption halves the number of states in the real-world FDDI case study, and the multi-core algorithm yields speedups of up to 40 using 48 cores.


formal modeling and analysis of timed systems | 2012

Multi-core reachability for timed automata

Andreas Engelbredt Dalsgaard; Alfons Laarman; Kim Guldstrand Larsen; Mads Chr. Olesen; Jaco van de Pol

Model checking of timed automata is a widely used technique. But in order to take advantage of modern hardware, the algorithms need to be parallelized. We present a multi-core reachability algorithm for the more general class of well-structured transition systems, and an implementation for timed automata. Our implementation extends the opaal tool to generate a timed automaton successor generator in c++, that is efficient enough to compete with the uppaal model checker, and can be used by the discrete model checker LTSmin, whose parallel reachability algorithms are now extended to handle subsumption of semi-symbolic states. The reuse of efficient lockless data structures guarantees high scalability and efficient memory use. With experiments we show that opaal+LTSmin can outperform the current state-of-the-art, uppaal. The added parallelism is shown to reduce verification times from minutes to mere seconds with speedups of up to 40 on a 48-core machine. Finally, strict BFS and (surprisingly) parallel DFS search order are shown to reduce the state count, and improve speedups.


nasa formal methods | 2011

opaal: a lattice model checker

Andreas Engelbredt Dalsgaard; René Rydhof Hansen; Kenneth Yrke Jørgensen; Kim Guldstrand Larsen; Mads Chr. Olesen; Petur Olsen; Jiri Srba

We present a new open source model checker, opaal, for automatic verification of models using lattice automata. Lattice automata allow the users to incorporate abstractions of a model into the model itself. This provides an efficient verification procedure, while giving the user fine-grained control of the level of abstraction by using a method similar to Counter-Example Guided Abstraction Refinement. The opaal engine supports a subset of the UPPAAL timed automata language extended with lattice features. We report on the status of the first public release of opaal, and demonstrate how opaal can be used for efficient verification on examples from domains such as database programs, lossy communication protocols and cache analysis.


java technologies for real-time and embedded systems | 2012

Private memory allocation analysis for safety-critical Java

Andreas Engelbredt Dalsgaard; René Rydhof Hansen; Martin Schoeberl

Safety-critical Java (SCJ) avoids garbage collection and uses a scope based memory model. This memory model is based on a restricted version of RTSJ [2] style scopes. The scopes form a clear hierarchy with different lifetimes. Therefore, references between objects in different scopes are only allowed from objects allocated in scopes with a shorter lifetime to objects allocated in scopes with a longer lifetime. To ensure memory safety, programmers are required to either manually annotate the application with complex annotations, rely on a runtime test of each reference assignment, or statically analyze all reference assignments and avoid runtime checks when all assignments are proven to be correct. A violation of the assignment rule at runtime leads to an unchecked exception. For safety-critical code that needs to be certified, runtime exceptions must be avoided and the absence of illegal reference assignments needs to be proven. In this paper we present a static program analysis tool that automates the proof that no illegal assignments occur.


java technologies for real-time and embedded systems | 2013

Worst-case memory consumption analysis for SCJ

Jeppe Lunde Andersen; Mikkel Todberg; Andreas Engelbredt Dalsgaard; René Rydhof Hansen

Safety-Critical Java is designed to be used for safety-critical and hard real-time systems. To ensure predictable behaviour garbage collection has been replaced by a scope based memory model. This model currently requires bounds on memory usage of scopes to be specified by developers. These bounds have to be strict worst-case memory bounds to ensure correct behaviour of these systems. Currently, common methods are measurement based or by careful inspection of the applications Java bytecode. Not only is this a cumbersome approach it is also potentially unsafe. In this paper we present a worst-case memory consumption tool for Safety-Critical Java and evaluate it on existing usecases and a new usecase building on the Cubesat Space Protocol.


applications and theory of petri nets | 2017

Extended dependency graphs and efficient distributed fixed-point computation

Andreas Engelbredt Dalsgaard; Søren Enevoldsen; Peter Fogh; Lasse S. Jensen; Tobias S. Jepsen; Isabella Kaufmann; Kim Guldstrand Larsen; Søren M. Nielsen; Mads Chr. Olesen; Samuel Pastva; Jiri Srba

Equivalence and model checking problems can be encoded into computing fixed points on dependency graphs. Dependency graphs represent causal dependencies among the nodes of the graph by means of hyper-edges. We suggest to extend the model of dependency graphs with so-called negation edges in order to increase their applicability. The graphs (as well as the verification problems) suffer from the state space explosion problem. To combat this issue, we design an on-the-fly algorithm for efficiently computing fixed points on extended dependency graphs. Our algorithm supplements previous approaches with the possibility to back-propagate, in certain scenarios, the domain value 0, in addition to the standard back-propagation of the value 1. Finally, we design a distributed version of the algorithm, implement it in an open-source tool, and demonstrate the efficiency of our general approach on the benchmark of Petri net models and CTL queries from the Model Checking Contest 2016.


2nd International Symposium on Dependable Software Engineering: Theories, Tools and Applications, SETTA 2016 | 2016

Distributed Computation of Fixed Points on Dependency Graphs

Andreas Engelbredt Dalsgaard; Søren Enevoldsen; Kim Guldstrand Larsen; Jiří Srba

Dependency graph is an abstract mathematical structure for representing complex causal dependencies among its vertices. Several equivalence and model checking questions, boolean equation systems and other problems can be reduced to fixed-point computations on dependency graphs. We develop a novel distributed algorithm for computing such fixed points, prove its correctness and provide an efficient, open-source implementation of the algorithm. The algorithm works in an on-the-fly manner, eliminating the need to generate a priori the entire dependency graph. We evaluate the applicability of our approach by a number of experiments that verify weak simulation/bisimulation equivalences between CCS processes and we compare the performance with the well-known CWB tool. Even though the fixed-point computation, being a P-complete problem, is difficult to parallelize in theory, we achieve significant speed-ups in the performance as demonstrated on a Linux cluster with several hundreds of cores.


Concurrency and Computation: Practice and Experience | 2017

Safety-critical Java for embedded systems

Martin Schoeberl; Andreas Engelbredt Dalsgaard; René Rydhof Hansen; Stephan Erbs Korsholm; Anders Peter Ravn; Juan Ricardo Rios Rivas; Tórur Biskopstø Strøm; Andy J. Wellings; Shuai Zhao

This paper presents the motivation for and outcomes of an engineering research project on certifiable Java for embedded systems. The project supports the upcoming standard for safety‐critical Java, which defines a subset of Java and libraries aiming for development of high criticality systems. The outcome of this project include prototype safety‐critical Java implementations, a time‐predictable Java processor, analysis tools for memory safety, and example applications to explore the usability of safety‐critical Java for this application area. The text summarizes developments and key contributions and concludes with the lessons learned. Copyright


java technologies for real-time and embedded systems | 2014

Certifiable Java for Embedded Systems

Martin Schoeberl; Andreas Engelbredt Dalsgaard; René Rydhof Hansen; Stephan Erbs Korsholm; Anders Peter Ravn; Juan Ricardo Rios Rivas; Tórur Biskopstø Strøm

The Certifiable Java for Embedded Systems (CJ4ES) project aimed to develop a prototype development environment and platform for safety-critical software for embedded applications. There are three core constituents: A profile of the Java programming language that is tailored for safety-critical applications, a predictable Java processor built with FPGA technology, and an Eclipse based application development environment that binds the profile and the platform together and provides analyses that help to provide evidence that can be used as part of a safety case. This paper summarizes key contributions within these areas during the three-year project period. In the conclusion the overall result of the project is assessed.

Collaboration


Dive into the Andreas Engelbredt Dalsgaard's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Martin Schoeberl

Technical University of Denmark

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge