Design and application of distributed containers in a CPS software control library
Damian Dechev, Pierre LaBorde · International Journal of Software Engineering Technology and Applications · 2015
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.