Deadlock and WCET analysis of barrier-synchronized concurrent programs

Kronecker algebra until now has been applied to concurrent programs that use semaphores and protected objects for synchronization. Like many other programming languages, Ada uses barriers, too. In this paper, we present a new synchronization construct for barriers. By applying this, we are able to statically analyze Ada multi-tasking programs that employ barriers for synchronization issues. It turns out that we can use our existing Kronecker algebra implementation completely unmodified for concurrent program graphs using such barrier synchronization primitives. In addition, we extend a static WCET technique such that our barrier synchronization primitive is supported.

[1]  Johann Blieberger,et al.  Static Detection of Livelocks in Ada Multitasking Programs , 2007, Ada-Europe.

[2]  David Gay,et al.  Barrier inference , 1998, POPL '98.

[3]  Christine Rochange,et al.  The Split-Phase Synchronisation Technique: Reducing the Pessimism in the WCET Analysis of Parallelised Hard Real-Time Programs , 2012, 2012 IEEE International Conference on Embedded and Real-Time Computing Systems and Applications.

[4]  Ronald L. Graham,et al.  Concrete mathematics - a foundation for computer science , 1991 .

[5]  Pascal Sainrat,et al.  Automatic WCET Analysis of Real-Time Parallel Applications , 2013, WCET.

[6]  Peter Buchholz,et al.  Efficient Computation and Representation of Large Reachability Sets for Composed Automata , 2002, Discret. Event Dyn. Syst..

[7]  G. Ramalingam Data flow frequency analysis , 1996, PLDI '96.

[8]  Katherine A. Yelick,et al.  Concurrency Analysis for Parallel Programs with Textually Aligned Barriers , 2005, LCPC.

[9]  Allen B. Downey,et al.  The Little Book of Semaphores , 2009 .

[10]  Ronald L. Graham,et al.  Concrete Mathematics, a Foundation for Computer Science , 1991, The Mathematical Gazette.

[11]  Peter Marwedel,et al.  A Unified WCET Analysis Framework for Multi-core Platforms , 2012, IEEE Real-Time and Embedded Technology and Applications Symposium.

[12]  Brigitte Plateau,et al.  On the stochastic structure of parallelism and synchronization models for distributed algorithms , 1985, SIGMETRICS '85.

[13]  Johann Blieberger,et al.  Data-Flow Frameworks for Worst-Case Execution Time Analysis , 2002, Real-Time Systems.

[14]  William Stallings,et al.  Operating Systems: Internals and Design Principles , 1991 .

[15]  Johann Blieberger,et al.  A Framework for CFG-Based Static Program Analysis of Ada Programs , 2008, Ada-Europe.

[16]  William Stallings,et al.  Operating Systems - Internals and Design Principles (7th ed.) , 2001 .

[17]  Johann Blieberger,et al.  Kronecker Algebra for Static Analysis of Ada Programs with Protected Objects , 2014, Ada-Europe.

[18]  Johann Blieberger,et al.  A symbolic analysis framework for static analysis of imperative programming languages , 2012, J. Syst. Softw..

[19]  Wei-Ngan Chin,et al.  Verification of Static and Dynamic Barrier Synchronization Using Bounded Permissions , 2013, ICFEM.

[20]  Johann Blieberger,et al.  Kronecker Algebra for Static Analysis of Barriers in Ada , 2016, Ada-Europe.

[21]  Westley Weimer,et al.  The road not taken: Estimating path execution frequency statically , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[22]  G. Ramalingam,et al.  Context-sensitive synchronization-sensitive analysis is undecidable , 2000, TOPL.

[23]  Edmond Schonberg,et al.  Ada 2012 Reference Manual. Language and Standard Libraries , 2013, Lecture Notes in Computer Science.

[24]  Andreas Schöbel,et al.  Kronecker Algebra-based Deadlock Analysis for Railway Systems , 2012 .

[25]  Yun Liang,et al.  Timing analysis of concurrent programs running on shared cache multi-cores , 2009, 2009 30th IEEE Real-Time Systems Symposium.

[27]  Guang R. Gao,et al.  A new framework for elimination-based data flow analysis using DJ graphs , 1998, TOPL.

[28]  Yun Liang,et al.  Timing Analysis of Concurrent Programs Running on Shared Cache Multi-Cores , 2009, RTSS.

[29]  David B. Skillicorn,et al.  Practical barrier synchronisation , 1998, Proceedings of the Sixth Euromicro Workshop on Parallel and Distributed Processing - PDP '98 -.

[30]  Jakob Engblom,et al.  The worst-case execution-time problem—overview of methods and survey of tools , 2008, TECS.

[31]  Yuan Zhang,et al.  Barrier matching for programs with textually unaligned barriers , 2007, PPoPP.

[32]  Johann Blieberger,et al.  A Generic Graph Model for WCET Analysis of Multi-Core Concurrent Applications , 2016 .

[33]  Anindya Banerjee,et al.  Verification of software barriers , 2012, PPoPP '12.

[34]  Wei Zhang,et al.  WCET Analysis for Multi-Core Processors with Shared L2 Instruction Caches , 2008, 2008 IEEE Real-Time and Embedded Technology and Applications Symposium.

[35]  Robert E. Tarjan,et al.  Depth-First Search and Linear Graph Algorithms , 1972, SIAM J. Comput..

[36]  Patrick Meumeu Yomsi,et al.  Methodologies for the WCET Analysis of Parallel Applications on Many-Core Architectures , 2015, 2015 Euromicro Conference on Digital System Design.

[37]  Yuan Zhang,et al.  Concurrency Analysis for Shared Memory Programs with Textually Unaligned Barriers , 2007, LCPC.

[38]  Javier Fernández González Java 7 concurrency cookbook : over 60 simple but incredibly effective recipes for mastering multithreaded application development with Java 7 , 2012 .