next up previous
Next: Appels récursif de méthodes. Up: Problématique Previous: Multi-threading.

Mémoire dynamique.

Dans un langage orienté objet, la structure de la mémoire (ensemble des liens entre les objets) change dynamiquement au cours de l'exécution d'un programme et la taille de la mémoire peut croître arbitrairement. En outre, la gestion de la mémoire est une tâche délicate, à l'origine de très nombreuses erreurs d'implémentation, dues à une manipulation hasardeuse des opérations d'allocation et de libération, dont leur détection est extrêmement difficile par des techniques de débogage et/ou de test.

Par ailleurs, les techniques de gestion automatique de la mémoire dynamique (glanage de cellules ou GC) auraient un impact considérable sur le processus de développement, analyse, validation et maintenance de logiciels embarqués. Toutefois, la gestion automatique de la mémoire dynamique pose plusieurs problèmes dans les logiciels embarqués temps réel. En particulier, il est très difficile de prédire de manière précise le temps nécessaire pour allouer un nouvel objet. Ceci est dû à un certain nombre de facteurs, par exemple la gestion de la copie d'objets, la fragmentation mémoire, les contraintes de synchronisation entre le GC et les autres tâches, et la préemption lors des différentes phases du GC.



Radu Iosif 2003-09-20