previous up next top index
Précédent : Mémoire partagée persistante : Larchant Remonter : Mémoire partagée persistante : Larchant Suivant : Environnement de programmation pour Larchant


Spécification, preuve détaillée, mise en oeuvre, et mesures de surcoût du ramasse-miettes

 

Participants : Paulo Ferreira, Marc Shapiro, Fabio Riccardi, Xavier Blondel

Cette activité s'intéresse au problème de ramassage de miettes dans une mémoire répartie, partagée et persistante. Les deux grands principes de conception sont : éviter tout surcoût de communication et ne pas interférer avec le protocole de cohérence mémoire.

Nous avons établi que le ramasse-miettes peut se contenter d'une vue non cohérente de la mémoire, et peut donc travailler localement, sans causer d'activité de cohérence, ni interférer avec les applications. En 1994, nous avions défini un algorithme de ramasse-miettes par morceaux, respectant l'autonomie des machines, et n'imposant ni entrées-sorties, ni trafic réseau, ni prise de verrous.       L'algorithme se prête donc aisément à l'utilisation sur systèmes de grande échelle et/ou fortement parallèles.

En 1995 et 1996, l'accent a été mis sur la preuve formelle de la correction de cet algorithme et la mesure des surcoûts [1, 5]. L'algorithme satisfait les propriétés d'innocuité («safety») et de vivacité («liveness»). Nous décrivons un modèle formel de comportement du réseau support, de la mémoire répartie, du ramasse-miettes réparti ainsi que des applications. Nous commençons par prouver par récurrence sur le nombre de pointeurs que l'algorithme est correct en l'absence de réplication des données. Nous étendons ensuite la preuve au cas où les données peuvent être répliquées sur plusieurs sites par récurrence sur le nombre de réplicats.

    La théorie que nous avons développée établit des conditions suffisantes de correction du ramasse-miettes en présence de mémoire répliquée, même non cohérente. Les conditions portent sur l'ordre des actions du ramasse-miette (RM), sur l'ordre des livraisons des messages (causal), sur les interactions cohérence-RM, et sur la coopération inter-RM. Nous avons donc aussi complété le prototype Larchant-BMX, et mesuré le surcoût dû au ramasse-miettes, qui reste raisonnable bien que supérieur à nos prévisions.

Cette activité constitue l'essentiel de la thèse soutenue par Paulo Ferreira [1] en mai 1996.



previous up next top index Précédent : Mémoire partagée persistante : Larchant Suivant : Environnement de programmation pour Larchant Remonter : Mémoire partagée persistante : Larchant