previous up next top index
Précédent : Axes de recherche Remonter : Axes de recherche Suivant : Gestion des références dans les


Ramassage de miettes en mémoire répartie persistante et partagée

Mots-clés : mémoire répartie, mémoire virtuelle partagée, ramasse-miettes

      L'écriture de programmes répartis reste une tâche difficile. Le paradigme de communication par messages asynchrones, qui est à la base de la répartition, est trop complexe à programmer. Le paradigme de l'appel de procédure distante (RPC pour Remote Procedure Call ) est légèrement plus simple mais se révèle coûteux. De plus, il ne fait que faciliter la communication, sans résoudre les problèmes plus profonds de la répartition : parallélisme, réplication, cohérence, défaillances, coûts, etc.

Le paradigme de la mémoire partagée est plus facile d'utilisation. Une mise en oeuvre de mémoire partagée au-dessus d'un système réparti, dite mémoire répartie virtuellement partagée (ou MRVP) est capable de masquer les problèmes notés ci-dessus (le parallélisme n'est pas masqué car il est vu comme un avantage, le traitement parallèle permettant d'améliorer les performances). Les MRVP constituent un domaine de recherche extrêmement actif dans le monde. Les MRVP sur réseau de stations de travail ont été utilisées jusqu'ici pour le calcul scientifique haute performance, en remplacement des multiprocesseurs massivement parallèles, trop chers.

Une MRVP facilite le partage des données entre programmes parallèles. Toutefois, il n'y a pas de données «persistantes» conservées en vue d'une utilisation ultérieure. La persistance est pourtant indispensable, aussi bien pour les tâches quotidiennes comme le traitement de texte, que pour les applications émergentes comme le travail coopératif. Les programmeurs gèrent aujourd'hui la persistance manuellement, par l'intermédiaire de fichiers ou de bases de données.

C'est pour résoudre ces problèmes que nous proposons une MRVP persistante, appelée Larchant. Dans Larchant, les données des différents programmes sont allouées dans une mémoire commune et partagées, comme en programmation centralisée, par accès par référence. Toute donnée devient persistante si nécessaire. Larchant permet de répartir et de rendre persistants, de façon presque transparente, des programmes ou des structures de données existantes, même écrits dans des langages primitifs comme C ou C++.

Un problème majeur d'une telle mémoire est le ramassage de miettes. Pour ce problème non résolu auparavant, nous proposons une solution satisfaisante, décrite ci-après (cf. §3.1 )

Le système Larchant a été développé dans le projet SOR depuis 1992, notamment dans le cadre de la thèse de Paulo Ferreira [1]. En 1996, ce travail a porté principalement sur la finition et l'amélioration du prototype, les mesures de performances sur le prototype Larchant-BMX (cf. 3.1 ), ainsi que sur la valorisation de ces recherches (projet PerDiS, cf. 3.1.4, 5.2.2 ).



previous up next top index Précédent : Axes de recherche Suivant : Gestion des références dans les Remonter : Axes de recherche