Non-Blocking Synchronization Between Real-Time and Non-Real-Time Applications

Abstract: Real-time systems where applications with timing requirements coexist with applications without timing constraints are increasingly common. Furthermore, the processors used in desktops, smart phones or embedded devices are mostly multi-core, allowing the execution of applications in parallel. This article presents a set of non-blocking synchronization mechanisms to share data between real-time and non-real-time applications executing in different cores of a shared memory multi-core system. Four typical producer/consumer scenarios have been explored; a) shared data object with real-time reader, b) shared data object with real-time writer, c) shared queue with real-time writer, and d) shared queue with real-time reader. For these scenarios we have developed different non-blocking protocols where the execution of the real-time application is always prioritized over the execution of the non-real-time part. In this way, the real-time applications never have to repeat their operations and, consequently, their execution times are bounded. Furthermore, to reduce the overhead caused by the copies of the information used in the non-blocking algorithms, we have imposed the limitation of a single real-time reader or a single real-time writerinthealgorithmsdeveloped.Finally,we have evaluated the response times of the developed protocols on a multi-core device with the Android operating system.

Otras publicaciones de la misma revista o congreso con autores/as de la Universidad de Cantabria

 Fuente: IEEE Access, vol. 8

Editorial: Institute of Electrical and Electronics Engineers Inc.

 Fecha de publicación: 10/08/2020

Nº de páginas: 17

Tipo de publicación: Artículo de Revista

DOI: 10.1109/ACCESS.2020.3015385.

ISSN: 2169-3536

Proyecto español: TIN2017-86520-C3-3-R