  A fundamental challenge in multi- and many-core systems is the correct
execution of concurrent access to shared data. A common drawback from existing
synchronization mechanisms is the loss of data locality as the shared data is
transferred between the accessing cores. In real-time systems, this is
especially important as knowledge about data access times is crucial to
establish bounds on execution times and guarantee the meeting of deadlines.We
propose in this paper a refinement of our previously sketched approach of
Migration-Based Synchronization (MBS) as well as its first practical
implementation. The core concept of MBS is the replacement of data migration
with control-flow migration to achieve synchronized memory accesses with
guaranteed data locality. This leads to both shorter and more predictable
execution times for critical sections. As MBS can be used as a substitute for
classical locks, it can be employed in legacy applications without code
alterations.We further examine how the gained data locality improves the
results of worst-case timing analyses and results in tighter bounds on
execution and response time. We reason about the similarity of MBS to existing
synchronization approaches and how it enables us to reuse existing analysis
techniques.Finally, we evaluate our prototype implementation, showing that MBS
can exploit data locality with similar overheads as traditional locking
mechanisms.
