lundi 25 novembre 2013

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

Dans le logiciel, le système de mémoire transactionnelle est un plan d'action pour la programmation multithread qui utilise des transactions qui sont très semblables à celles que base de données utilise. Lorsque deux ou plusieurs threads tentent d'accéder aux mêmes données en même temps, de nombreuses situations indésirables risquent de survenir dans les cas où les résultats d'un programme dépend de l'ordre d'accès de fil. Habituellement, un ordre est souhaitée et en multithreading , serrures sont le moyen prédominant et plus simple pour 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 serrures multithreading. Un verrou peut devenir permanent si une sorte d'erreur inattendue se produit, et les serrures peut apporter sur les questions imprévisibles avec la concurrence, comme l'impasse ou l'inversion de priorité. À la suite de serrures étant très fine, une autre question inclut le code se retrouver éventuellement 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 il peut en résulter dans le code passer plus de temps sur ces actions que sur le faire de l'autre, un travail important dans le programme. En revanche, les verrous à grain grossier peuvent provoquer une diminution des performances de traitement et une diminution de la concurrence.

 Les problèmes de mémoire transactionnelle sont traitées par des verrous avancées, y compris "bloc de verrouillage" de C #, lecture-écriture serrures, écrire des obstacles, etc L'une des principales priorités en matière de mémoire transactionnelle est de n'avoir aucune serrures et pas de verrou temps de traitement nécessaire . Il est généralement convenu que la structure de données qui est partagée est libre de serrures si l'exclusion mutuelle n'est pas exigée par ses opérations. Les structures de données qui sont partagées et libres de verrous évitent généralement associés avec des problèmes techniques de verrouillage standard si elles sont dans les systèmes qui sont très concurrente.
 
La cohérence (TCC) modèle transactionnel mémoire est un nouveau modèle proposé sur la mémoire partagée . Selon le modèle, les opérations atomiques sont des unités de base invariablement des éléments suivants: le travail en parallèle, la cohérence de la mémoire, de la communication, et la cohérence de référence de mémoire. Le modèle TCC fait également un logiciel parallèle simple en éliminant synchronisation qui utilise les normes serrures ou les sémaphores. Grâce à du matériel, la STC combine également chaque écriture de chaque région de la transaction survenue dans un paquet de diffuser atomique le paquet à un état de la mémoire qui est partagée de façon permanente. En plus du matériel de cohérence simplifiée, cela signifie qu'il ya une réduction de messages à faible dormance nécessaires et une élimination complète de certains protocoles de cohérence, standard.