Non-Blocking Synchronization Between Real-Time and Non-Real-Time Applications
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 a...
Main Authors: | , , |
---|---|
Format: | Article |
Language: | English |
Published: |
IEEE
2020-01-01
|
Series: | IEEE Access |
Subjects: | |
Online Access: | https://ieeexplore.ieee.org/document/9162643/ |
id |
doaj-1a918a3fd38647f7a8c9511bae27a94f |
---|---|
record_format |
Article |
spelling |
doaj-1a918a3fd38647f7a8c9511bae27a94f2021-03-30T01:56:58ZengIEEEIEEE Access2169-35362020-01-01814761814763410.1109/ACCESS.2020.30153859162643Non-Blocking Synchronization Between Real-Time and Non-Real-Time ApplicationsAlejandro Perez Ruiz0https://orcid.org/0000-0002-3306-3345Mario Aldea Rivas1https://orcid.org/0000-0002-0430-5472Michael Gonzalez Harbour2https://orcid.org/0000-0003-1198-9275Software Engineering and Real-Time Group, University of Cantabria, Santander, SpainSoftware Engineering and Real-Time Group, University of Cantabria, Santander, SpainSoftware Engineering and Real-Time Group, University of Cantabria, Santander, SpainReal-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 writer in the algorithms developed. Finally, we have evaluated the response times of the developed protocols on a multi-core device with the Android operating system.https://ieeexplore.ieee.org/document/9162643/Androidmulti-corenon-blocking synchronizationreal-timewait-free |
collection |
DOAJ |
language |
English |
format |
Article |
sources |
DOAJ |
author |
Alejandro Perez Ruiz Mario Aldea Rivas Michael Gonzalez Harbour |
spellingShingle |
Alejandro Perez Ruiz Mario Aldea Rivas Michael Gonzalez Harbour Non-Blocking Synchronization Between Real-Time and Non-Real-Time Applications IEEE Access Android multi-core non-blocking synchronization real-time wait-free |
author_facet |
Alejandro Perez Ruiz Mario Aldea Rivas Michael Gonzalez Harbour |
author_sort |
Alejandro Perez Ruiz |
title |
Non-Blocking Synchronization Between Real-Time and Non-Real-Time Applications |
title_short |
Non-Blocking Synchronization Between Real-Time and Non-Real-Time Applications |
title_full |
Non-Blocking Synchronization Between Real-Time and Non-Real-Time Applications |
title_fullStr |
Non-Blocking Synchronization Between Real-Time and Non-Real-Time Applications |
title_full_unstemmed |
Non-Blocking Synchronization Between Real-Time and Non-Real-Time Applications |
title_sort |
non-blocking synchronization between real-time and non-real-time applications |
publisher |
IEEE |
series |
IEEE Access |
issn |
2169-3536 |
publishDate |
2020-01-01 |
description |
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 writer in the algorithms developed. Finally, we have evaluated the response times of the developed protocols on a multi-core device with the Android operating system. |
topic |
Android multi-core non-blocking synchronization real-time wait-free |
url |
https://ieeexplore.ieee.org/document/9162643/ |
work_keys_str_mv |
AT alejandroperezruiz nonblockingsynchronizationbetweenrealtimeandnonrealtimeapplications AT marioaldearivas nonblockingsynchronizationbetweenrealtimeandnonrealtimeapplications AT michaelgonzalezharbour nonblockingsynchronizationbetweenrealtimeandnonrealtimeapplications |
_version_ |
1724186078615699456 |