Design and application of distributed containers in a CPS software control library

Non-blocking synchronisation is known to alleviate the hazards of deadlock, livelock, and priority inversion. We present the design and portable implementation of a lock-free dynamically resizable array. Our lock-free implementation of a shared vector outperforms its lock-based STL counterpart and the implementation provided by Intel by a factor of 10 or more. The ABA problem is fundamental to all CAS-based designs. We offer a solution, called the λδ approach that is practical and efficient and offers speeds comparable to the direct application of the architecture-specific CAS2 instruction used for version counting. Our lock-free vector demonstrated high scalability when compared to the application of non-blocking transactions. We demonstrate the use of our non-blocking synchronisation methodology and our shared vector for the engineering of a framework for verification and semantics parallelisation of the mission data system’s (MDS) goal networks which provide for testing and development of autonomous real-time flight applications.

[1]  Maged M. Michael,et al.  High performance dynamic lock-free hash tables and list-based sets , 2002, SPAA '02.

[2]  Mark Moir,et al.  Lock-free reference counting , 2002 .

[3]  Maged M. Michael CAS-Based Lock-Free Algorithm for Shared Deques , 2003, Euro-Par.

[4]  J. Schumann,et al.  Autonomy Software: V& V Challenges and Characteristics , 2006, 2006 IEEE Aerospace Conference.

[5]  Maurice Herlihy,et al.  Obstruction-free synchronization: double-ended queues as an example , 2003, 23rd International Conference on Distributed Computing Systems, 2003. Proceedings..

[6]  Marina Papatriantafilou,et al.  Allocating Memory in a Lock-Free Manner , 2005, ESA.

[7]  P. R. Gluck,et al.  Using SPIN model checking for verification of flight software , 2002 .

[8]  Barry W. Boehm,et al.  Using empirical testbeds to accelerate technology maturity and transition: the SCRover experience , 2004, Proceedings. 2004 International Symposium on Empirical Software Engineering, 2004. ISESE '04..

[9]  Michael F. Spear,et al.  Alert-on-update: a communication aid for shared memory multiprocessors , 2007, PPOPP.

[10]  Marinus J. Plasmeijer,et al.  Uniqueness Typing Simplified , 2008, IFL.

[11]  Michael R. Lowry,et al.  Experimental Evaluation of Verification and Validation Tools on Martian Rover Software , 2013, Formal Methods Syst. Des..

[12]  Nir Shavit,et al.  Understanding Tradeoffs in Software Transactional Memory , 2007, International Symposium on Code Generation and Optimization (CGO'07).

[13]  Keir Fraser,et al.  A Practical Multi-word Compare-and-Swap Operation , 2002, DISC.

[14]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[15]  Edward A. Lee,et al.  Concurrent models of computation for embedded software , 2005 .

[16]  Keir Fraser,et al.  Concurrent programming without locks , 2007, TOCS.

[17]  Michael R. Lowry,et al.  Software Construction and Analysis Tools for Future Space Missions , 2013, TACAS.

[18]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[19]  Greg Barnes,et al.  A method for implementing lock-free shared-data structures , 1993, SPAA '93.

[20]  Nir Shavit,et al.  A scalable lock-free stack algorithm , 2010, J. Parallel Distributed Comput..

[21]  Bjarne Stroustrup,et al.  Lock-Free Dynamically Resizable Arrays , 2006, OPODIS.

[22]  Anthony Barrett,et al.  Mission planning and execution within the Mission Data System , 2004 .

[23]  D. Dvořák,et al.  Challenging encapsulation in the design of high-risk control systems , 2002 .

[24]  Maurice Herlihy,et al.  Nonblocking memory management support for dynamic-sized data structures , 2005, TOCS.

[25]  Richard Volpe Rover technology development and mission infusion , 2005 .

[26]  Daniel L. Dvorak,et al.  Project Golden Gate: towards real-time Java in space missions , 2004, Seventh IEEE International Symposium onObject-Oriented Real-Time Distributed Computing, 2004. Proceedings..

[27]  Maged M. Michael,et al.  Correction of a Memory Management Method for Lock-Free Data Structures , 1995 .

[28]  Soumya Edamana Mana,et al.  Split-Ordered Lists : Lock-Free Extensible Hash Tables , 2011 .

[29]  Wayne H. Wolf,et al.  TGFF: task graphs for free , 1998, Proceedings of the Sixth International Workshop on Hardware/Software Codesign. (CODES/CASHE'98).

[30]  Keir Fraser,et al.  Practical lock-freedom , 2003 .

[31]  Maged M. Michael Scalable lock-free dynamic memory allocation , 2004, PLDI '04.

[32]  Timothy L. Harris,et al.  A Pragmatic Implementation of Non-blocking Linked-Lists , 2001, DISC.

[33]  Philippas Tsigas,et al.  Lock-Free and Practical Doubly Linked List-Based Deques Using Single-Word Compare-and-Swap , 2004, OPODIS.

[34]  Maged M. Michael Hazard pointers: safe memory reclamation for lock-free objects , 2004, IEEE Transactions on Parallel and Distributed Systems.

[35]  D. Dvorak,et al.  State knowledge representation in the Mission Data System , 2002, Proceedings, IEEE Aerospace Conference.

[36]  Xin-She Yang,et al.  Introduction to Algorithms , 2021, Nature-Inspired Optimization Algorithms.

[37]  Bjarne Stroustrup,et al.  Verification and semantic parallelization of goal-driven autonomous software , 2008, Autonomics 2008.

[38]  Michel D. Ingham,et al.  Goal-Based Operations: An Overview , 2007, J. Aerosp. Comput. Inf. Commun..

[39]  D. Dvorak,et al.  Achieving control and interoperability through unified model-based systems and software engineering , 2005 .

[40]  David A. Wagner Data management in the mission data system , 2005, 2005 IEEE International Conference on Systems, Man and Cybernetics.

[41]  Bjarne Stroustrup,et al.  Specifying C++ concepts , 2006, POPL '06.

[42]  David K. Gifford,et al.  Case study: IBM's system/360-370 architecture , 1987, CACM.

[43]  Maurice Herlihy,et al.  The art of multiprocessor programming , 2020, PODC '06.

[44]  Tara Estlin,et al.  The CLARAty architecture for robotic autonomy , 2001, 2001 IEEE Aerospace Conference Proceedings (Cat. No.01TH8542).

[45]  Leslie Lamport,et al.  How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs , 2016, IEEE Transactions on Computers.

[46]  Michael F. Spear,et al.  Nonblocking transactions without indirection using alert-on-update , 2007, SPAA '07.

[47]  Ewen Denney,et al.  Software Certification and Software Certificate Management Systems , 2005 .