The Joint Accelerator Conferences Website (JACoW) is an international collaboration that publishes the proceedings of accelerator conferences held around the world.
TY - CONF AU - Hoguin, F. AU - Deghaye, S. ED - Corvetti, Lou ED - Riches, Kathleen ED - Schaa, Volker RW TI - Solving the Synchronization Problem in Multi-Core Embedded Real-Time Systems J2 - Proc. of ICALEPCS2015, Melbourne, Australia, 17-23 October 2015 C1 - Melbourne, Australia T2 - International Conference on Accelerator and Large Experimental Physics Control Systems T3 - 15 LA - english AB - Multi-core CPUs have become the standard in embedded real-time systems. In such systems, where several tasks run simultaneously, developers can no longer rely on high priority tasks blocking low priority tasks. In typical control systems, low priority tasks are dedicated to receiving settings from the control room, and high priority real-time tasks, triggered by external events, control the underlying hardware based on these settings. Settings' correctness is of paramount importance and they must be modified atomically from a real-time task point of view. This is not feasible in multi-core environments using classic double-buffer approaches, mainly because real-time tasks can overlap, preventing buffer swaps. Other common synchronization solutions involving locking critical sections introduce unpredictable jitter on real-time tasks, which is not acceptable in CERN's control system. A lock-free, wait-free solution to this problem based on a triple buffer, guaranteeing atomicity no matter the number of concurrent tasks, is presented. The only drawback is potential synchronization delay on contention. This solution has been implemented and tested in CERN's real-time C++ framework. PB - JACoW CP - Geneva, Switzerland SP - 942 EP - 946 KW - real-time KW - operation KW - controls KW - embedded KW - hardware DA - 2015/12 PY - 2015 SN - 978-3-95450-148-9 DO - 10.18429/JACoW-ICALEPCS2015-WEPGF102 UR - http://jacow.org/icalepcs2015/papers/wepgf102.pdf ER -