“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 80 — #90
i
i
i
i
i
i
i
i
80
2
• La programmation déclarative
comme un « mandataire » (« proxy ») pour la ressource. Le mandataire garde une
référence à la structure de données Mozart aussi longtemps que la ressource en a
besoin. La ressource informe le mandataire quand elle n’a plus besoin de la structure
de données.
2.5.5 Le ramasse-miettes de Mozart
Le système Mozart fait de la gestion de mémoire automatique. Il a un ramasse-miettes
local et un ramasse-miettes réparti. Ce dernier est utilisé pour la programmation
répartie.
13 Le ramasse-miettes local utilise un algorithme de copie à double espace. Il
divise la mémoire en deux espaces égaux. À tout moment, le programme s’exécute
complètement dans un des deux espaces. Le ramassage de miettes est déclenché quand
il n’y a plus de mémoire libre dans cet espace. Il trouve toutes les structures de données
qui sont accessibles depuis une racine et les copie vers l’autre espace. Comme la copie
se fait vers un bloc contigu, cette opération fait le compactage en même temps.
L’avantage d’un ramassage de miettes à copie est que son temps d’exécution est
proportionnel à la taille de la mémoire active, pas à la taille de toute la mémoire
disponible. Des petits programmes feront leur ramassage rapidement, même s’ils
s’exécutent dans un grand espace mémoire. Les deux inconvénients d’un ramassage de
miettes à copie sont que la moitié de la mémoire est inutilisable et que les structures de
données à longue vie (comme les structures du système) doivent être copiées à chaque
ramassage. Nous pouvons corriger cela. La copie des données à longue vie peut être
évitée en utilisant un algorithme modifié qui s’appelle un ramassage de miettes à
générations. Cet algorithme partitionne la mémoire en générations. Les structures à
longue vie sont mises dans les générations plus anciennes, qui sont ramassées moins
souvent.
La division par deux de la mémoire utilisable ne sera significative que si la taille de
la mémoire active approche la taille maximale qui peut être adressée par l’architecture
du processeur. La technologie des ordinateurs personnels courants est actuellement
en transition d’un adressage 32 bits vers un adressage 64 bits. Dans un ordinateur
avec des adresses de 32 bits, la limite est typiquement atteinte quand la taille de la
mémoire active est de 2048 Mo ou plus. (La limite n’est généralement pas tout à fait
2
32 octets ou 4096 Mo, à cause des limitations du système d’exploitation.) La limite
est actuellement atteinte par de grands programmes dans les ordinateurs personnels
haut de gamme. Pour de tels programmes, nous recommandons un ordinateur avec des
adresses à 64 bits, qui n’a pas ce problème.
13. Voir chapitre 11 de [97].
Précédent

- 95/370

Suivant