Qu'est-ce que la mémoire transactionnelle?

Dans les logiciels, le schéma de la mémoire transactionnelle est une ligne de conduite pour la programmation multithread qui utilise des transactions très similaires à celles utilisées par une base de données. Lorsque deux threads ou plus tentent d'accéder aux mêmes données en même temps, de nombreuses situations indésirables peuvent apparaître dans les cas où le résultat d'un programme dépend de l'ordre d'accès aux threads. En règle générale, une seule commande est souhaitée et, dans le multithreading, les verrous constituent le moyen le plus simple et le plus simple de garantir qu'un seul thread ait accès à une ressource spécifique à la fois.

Cette approche de la mémoire transactionnelle contient de nombreux problèmes en ce qui concerne les verrous en multithreading. Un verrou peut devenir permanent si une erreur imprévue se produit, ce qui peut entraîner des problèmes imprévisibles liés à la simultanéité, tels que des interblocages ou des inversions de priorité. Les verrous étant très fins, un autre problème concerne le code, qui finit par passer la majorité du temps entre le verrouillage, le changement de contexte et le déverrouillage. Il s'agit d'un problème crucial, car le code peut consacrer plus de temps à ces actions qu'à d'autres tâches importantes du programme. En revanche, les verrous à grain grossier peuvent entraîner une diminution des performances de traitement et une diminution de la simultanéité.

Les problèmes de la mémoire transactionnelle sont résolus par des verrous avancés, notamment le «verrou de verrouillage» à partir de C #, les verrous en lecture-écriture, les barrières en écriture, etc. . Il est généralement admis qu'une structure de données partagée est libre de verrous si une exclusion mutuelle n'est pas requise par ses opérations. Les structures de données partagées et dépourvues de verrous évitent les problèmes généralement associés aux techniques de verrouillage standard si elles se trouvent dans des systèmes hautement concurrents.

Le modèle de cohérence et de cohérence de la mémoire transactionnelle (CCT) est un nouveau modèle proposé sur la mémoire partagée. Selon le modèle, les transactions atomiques sont invariablement des unités de base parmi les suivantes: travail parallèle, cohérence de la mémoire, communication et cohérence de la référence de la mémoire. Le modèle TCC simplifie également les logiciels parallèles en éliminant la synchronisation utilisant des verrous ou des sémaphores standard. Par le biais du matériel, TCC combine également chaque écriture de chaque région d'occurrence de transaction dans un paquet pour diffuser le paquet de manière atomique dans un état de mémoire qui est partagé en permanence. En plus du matériel à cohérence simplifiée, cela signifie une réduction du nombre de messages à faible dormance requis et une élimination complète de certains protocoles de cohérence standard.

DANS D'AUTRES LANGUES

Cet article vous a‑t‑il été utile ? Merci pour les commentaires Merci pour les commentaires

Comment pouvons nous aider? Comment pouvons nous aider?