previous up next top index
Précédent : Détection de propriétés Remonter : Problèmes fondamentaux Suivant : Points de contrôle et retour


Cohérence de mémoires réparties d'objets

 

Un grand nombre d'applications parallèles utilisent un modèle de programmation fondé sur le partage d'objets entre processus. Afin d'exécuter celles-ci sur des machines parallèles à mémoire répartie, il est nécessaire de donner aux processeurs un unique espace abstrait pour l'adressage des objets. Pour améliorer les performances par augmentation du degré de parallélisme des accès et limitation des transferts entre processus, les objets sont dupliqués. Le problème à résoudre alors est le maintien de la cohérence entre toutes les copies de chaque objet. Cela impose d'une part une définition de la cohérence des objets partagés et d'autre part des protocoles qui la garantissent (problèmes de synchronisation). Dans ce contexte, de nombreux critères de cohérence ont été étudiés et analysés [31, 38, 39, 41] : cohérence atomique, cohérence séquentielle, cohérence causale, cohérence PRAM, cohérence faible, cohérence release et cohérence entry.

Deux critères de cohérence ont été particulièrement étudiés : la cohérence séquentielle et la cohérence causale et leurs équivalents dans le modèle transactionnel : la sérialisabilité et la cohérence causale. La sérialisabilité est le critère de cohérence usuel ; son principal inconvénient réside dans les fortes contraintes de synchronisation qu'elle exige entre les processus ; pour simplifier, une opération dite forte (en général les opérations d'écriture) nécessite un protocole d'agrément entre tous les processus, c'est-à-dire, un algorithme à trois phases. La cohérence causale assure l'ordre causal, une contrainte suffisante pour un certain nombre d'applications avec une de synchronisation peu élevée ; l'ordre causal peut être assuré par un simple estampillage des messages, c'est-à-dire pas de synchronisation entre les processus autre que l'ordonnancement des messages délivrés, fondé sur les estampilles. Toutefois, un inconvénient majeur de la cohérence causale est la possibilité d'écritures concurrentes sur un même objet. Nous avons proposé un nouveau critère intermédiaire entre la sérialisabilité et la cohérence causale : la sérialisabilité causale. Construite au dessus de la cohérence causale, elle garantit un ordre total sur les écritures concernant un même objet [14, 34]. La sérialisabilité causale est ainsi moins contraignante que la sérialisabilité (et donc moins coûteuse en terme de synchronisation) tout en éliminant l'inconvénient majeur de la cohérence causale, à savoir la possibilité d'écritures concurrentes concernant un même objet. Les applications actuellement à l'étude sont dans le domaine du travail coopératif, et plus particulièrement le cas de l'édition coopérative de documents.



previous up next top index Précédent : Détection de propriétés Suivant : Points de contrôle et retour Remonter : Problèmes fondamentaux