Skip to main content

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

Dans les logiciels, le schéma de mémoire transactionnelle est un plan d'action pour la programmation multithread qui utilise des transactions qui ressemblent beaucoup à celles qu'une base de données utilise.Lorsque deux threads ou plus tentent d'accéder aux mêmes données en même temps, de nombreuses situations indésirables différentes peuvent entraîner des cas où le résultat d'un programme dépend de l'ordre d'accès au fil.Habituellement, un ordre est souhaité et dans le multithreading, les verrous sont le moyen prédominant et le plus simple de s'assurer qu'un seul thread a accès à une ressource spécifique à la fois.

Cette approche de la mémoire transactionnelle contient plusieurs problèmes en ce qui concerne les verrouillage dans le multithreading multithre.Une serrure peut devenir permanente si une sorte d'erreur imprévue se produit et que les serrures peuvent entraîner des problèmes imprévisibles avec une concurrence, comme une impasse ou une inversion prioritaire.En raison de la façon dont les verrous sont très fins, un autre problème comprend le code finalement finir par passer la majorité de temps entre le verrouillage, la commutation de contexte et le déverrouillage.Il s'agit d'un problème crucial car il peut entraîner que le code passe plus de temps à ces actions que de faire d'autres travaux importants dans le programme.En revanche, les serrures à grains grossiers peuvent entraîner une diminution des performances de traitement et une concurrence diminuée.

Les problèmes de mémoire transactionnelle sont traités par des serrures avancées, y compris le «bloc de verrouillage» de C #, des verrous en lecture, des barrières d'écriture, etc.Les principales priorités en ce qui concerne la mémoire transactionnelle est de ne pas avoir de verrous et pas de temps de traitement de verrouillage inutile.Il est généralement convenu qu'une structure de données partagée est exempte de verrous si l'exclusion mutuelle n'est pas requise par ses opérations.Les structures de données partagées et exemptes de verrous évitent les problèmes couramment associés aux techniques de verrouillage standard si elles sont dans des systèmes très concurrents.

Le modèle de cohérence et de cohérence de la mémoire transactionnelle (TCC) 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 des éléments suivants: 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 qui utilise des verrous ou des sémaphores de normes.Grâce au matériel, TCC combine également chaque écriture de chaque région de l'occurrence des transactions en un paquet pour diffuser atomiquement le paquet à un état de mémoire partagé en permanence.En plus du matériel de cohérence simplifié, cela signifie qu'il y a une réduction des messages à faible dormance nécessaire et une élimination complète de certains protocoles de cohérence standard.