Applications of Non-Blocking Data Structures to Real-Time Systems
Licentiate thesis, 2002
This thesis is a major part of the results within a project called "Applications of wait/lock-free protocols to real-time systems". This project is funded by the national Swedish Real-Time Systems research initiative ARTES (www.artes.uu.se) supported by the Swedish Foundation for Strategic Research. The project started in March 1999 and has been running in major with one active Ph.D. student. The aim of the project was to study non-blocking algorithms and apply them to real-time systems. The applications should focus on commercial real-time operating systems, with Enea OSE as the major target.
We started with evaluating wait-free snapshot algorithms suitable for real-time systems. As snapshots are very useful in distributed embedded systems, we focused on experiment models using the CAN-bus.
We have studied how using timing information available in real-time systems can be used to improve and simplify wait-free algorithms for shared data structures. The results from experiments and analytical evaluations show significant improvements and high applicability within real-time systems.
We have been doing studies and implementation work with known lock- and wait-free data structures. Some algorithms have been corrected and refined for implementation. Several of these data structures as well as those presented in this thesis have been put together into a library. The functionality of the library is designed in a way to be easily accessible for non-experts in non-blocking protocols. Experiments on multi-processor platforms show significant improvements.