next up previous
Next: La notion de groupes Up: Conception du système DOSMOS Previous: Gestion de tableaux distribués

Sémantiques et protocoles de cohérence

 

La plupart des systèmes de MDP (spécifiquement les systèmes fondés sur la gestion de pages) implémentent des protocoles de cohérence forte qui séquentialisent l'ensemble des accès à une même donnée partagée. A l'inverse, les sémantiques de cohérence faible autorisent la duplication des objets partagés permettant ainsi d'effectuer des lectures en parallèle. En contrepartie, elles induisent un surcoût important au niveau des protocoles de maintien de la cohérence entre les différentes copies d'une même donnée.

DOSMOS implémente un modèle de cohérence faible (la release consistency [GLL tex2html_wrap_inline279 90]). Ce modèle de cohérence est basé sur l'utilisation de deux primitives de synchronisation ``acquire'' et ``release'' [Mos93]. La première permet à un processus d'acquérir un droit accès en écriture exclusif (sur une variable) en définissant non pas une section critique au sens propre du terme, c'est-à-dire durant laquelle un seul processus pourrait accéder à cette variable, mais une section à accès restreint (SAR) durant laquelle le processus pourra manipuler sans restriction une copie de la variable, sans qu'il soit cependant interdit aux autres processus d'accéder à leur propre copiegif. A l'instar des sections critiques, sur une même variable, une seule section à accès restreint peut être active à un instant donné. L'opérateur ``release'' termine une section à accès restreint en relâchant la variable qui redevient accessible aux autres processus. Cette opération conduit à invalider ou à mettre à jour les autres copies de l'objet. L'approche implémentée dans DOSMOS est adaptative en fonction de la taille de la variable. Dans le cas d'une variable de petite taille, DOSMOS effectue une mise à jour dans la mesure où son coût est alors sensiblement le même que celui d'une d'invalidation (messages de tailles comparables). A l'inverse, les objets de taille importante sont seulement invalidés.

On peut donc distinguer 4 types d'accès à une variable:

Les opérateurs acquire et release, outre la release consistency, permettent d'implémenter très simplement deux sémantiques de cohérence fortes : la cohérence séquentielle et la cohérence stricte [GLL tex2html_wrap_inline279 90]. En effet, il suffit d'effectuer toutes les écritures dans des sections à accès restreint pour garantir une exécution séquentiellement cohérente. En imposant en outre que l'ensemble des lectures soient réalisées dans des sections à accès restreint, on débouche de facto sur une cohérence d'exécution stricte puisque tous les accès se font alors en section critique.


next up previous
Next: La notion de groupes Up: Conception du système DOSMOS Previous: Gestion de tableaux distribués

Laurent Lefevre
Fri Jan 31 19:11:08 MET 1997