Vous êtes sur la page 1sur 5

International Journal of Engineering Research and Development e-ISSN: 2278-067X, p-ISSN: 2278-800X, www.ijerd.

com Volume 7, Issue 5 (June 2013), PP.99-103

Solution A La Gestion Des Objets Java Pour Des Systmes Embarqus


Laila Moussaid1, Mostafa Hanoune2
1,2

Laboratoire TIM, Facult des sciences Casablanca.

Rsum:- Le langage Java offre un avantage considrable en terme de facilit de lutilisation et la portabilit , ainsi la gestion transparente de la mmoire dans Java se fait de plusieurs faon mais on observe que deux grandes familles peuvent tre prsentes : la premire famille est bas sur les analyses statiques et la gestion de mmoire en rgions et la deuxime consiste en limplantation dun mcanisme de gestion de la mmoire bas sur lutilisation des Ramasse Miettes. Notre Travail se focalise sur la deuxime famille .en effet, les algorithmes du RM sont nombreux mais deux algorithmes qui sont implants dans plusieurs machines virtuelles java dans le systme embarqu ou une combinaison bas sur ces deux algorithmes : RM par comptage de rfrences et RM marquagebalayage. Cependant, ces deux mcanismes du RM ne sont pas efficaces sur certains types de programmes, pour lesquels elles engendrent des fuites de mmoire pouvant conduire la saturation de lespace mmoire et ne traitent pas le problme des structures cycliques. Aprs une tude des techniques de gestion de la mmoire dynamique dans les systmes embarqus et un ensemble dtudes de cas, nous prsentons notre solution ce problme, en utilisant notamment un nouveau algorithme du ramasse-miettes Mots-cls:- systme embarqu, ramasse-miettes, gestion de la mmoire, J2ME, KVM

I.

INTRODUCTION

L'expertise des dveloppeurs pour les environnements embarqus soriente, dans ces dernires annes vers des nouvelles technologies, qui ncessitent des environnements d'excution plus complexes. cet gard, Java constitue un excellent exemple oriente objet Conu pour pouvoir tre utilis partout, l'environnement Java s'est alourdi de nombreuses fonctionnalits et n'est pas utilisable dans les quipements embarqus,pour ceci,Sun a propos des versions dgrades et incompatibles comme J2ME [1] ou Java Card [2]. Mais dans ce dernier cas, la rgle d'or de Java Compile once, run everywhere n'est plus respecte ,mais dans J2me la rgle est valable, et la gestion des objets en mmoire est pilot par la technique ramasse miettes : RM (en anglais : garbage collector). En effet, RM dsigne lensemble des techniques permettant dautomatiser la dtection des zones mmoires inutilises (garbage) en vue de leur rutilisation [3] [4]. Le concept de RM provient des premires implantations du langage Lisp, dans les annes 60 [5]. Lobjectif dun RM est de dterminer, parmi lensemble des objets prsents en mmoire, lesquels sont encore vivants et lesquels sont devenus inaccessibles, de faon recycler lespace occup par les objets morts. Ainsi, lenvironnement dexcution se rapproprie automatiquement la mmoire lorsque le programme ne luti lise plus. Cette section prsente le principe gnral des deux techniques principales utilises cet effet : le marquage-balayage, et le comptage de rfrences. Il en existe bien sr dinnombrables variantes et amliorat ions, , mais tous les RM utilisent une combinaison de ces deux techniques [6]. La premire ramasse les objets morts ou inutiles priodiquement dans le tas, tout en prenant soin de conserver les objets vivants. La seconde cherche plutt dtecter des objets morts pour les recycler immdiatement.

II.

ETAT DE LART

Dans Java, la gestion dynamique de la mmoire se fait automatiquement .en effet,la rcupration des objets java inaccessibles ou morts dans la mmoire peut tre assure lexcution par des mcanismes de RM . Aprs une rapide prsentation des principaux algorithmes de RM, deux principales adaptations aux systmes embarqus seront prsentes : le marquage balayage et le comptage de rfrences. lalgorithme comptage de rfrences. Cette technique consiste associer chaque objet un compteur, reprsentant le nombre de rfrences existantes sur cet objet. Le compteur dun objet est incrment lors de lapparition dune nouvelle rfrence sur
A.

99

Solution A La Gestion Des Objets Java Pour Des Systmes Embarqus


cet objet ; il est dcrment lorsquune de ces rfrences disparat .une fois le compteur devient nul, lobjet nest plus rfrenc et la mmoire quil occupe peut tre rcupre. Cet algorithme prsente lavantage dtre trs simple mettre en oeuvre : il suffit pour cela dajouter un champ tous les objets, et de dtecter lapparition, la modification, ou la suppression dune rfrence (une barrire en criture est une portion de code sexcutant chaque criture de rfrence ; le surcot occasionn par ce genre de mcanisme peut gnralement tre trs rduit [7]). De plus, il peut permettre une allocation en temps prdictible, puisque la mmoire est rcupre ds la mort dun objet. En outre, la libration se faisant rcursivement, elle a un cot dexcution au pire cas proportionnel au nombre dobjets du tas. En revanche, cette technique prsente une limitation importante pour les structures cycliques. La fig 1 illustre cet inconvnient majeur de lalgorithme comptage de rfrences.

fig 1 : structure cyclique lalgorithme marquage balayage. Lalgorithme marquage-balayage consiste diffrencier lensemble des objets accessibles du reste du tas. Il seffectue partir dun tat initial dans lequel aucun lment nest marqu. Ces objets sont alors parcourus et marqus rcursivement partir des rfrences dites racines. Enfin, ceux qui nont pas t visits sont considrs comme inaccessibles, et la mmoire quils occupent est rcupre. Contrairement lalgorithme par comptage de rfrences, celui -ci ne ncessite pas de barrire en criture. Il permet de plus la rcupration des structures cycliques. Le surcot en taille mmoire ncessaire peut galement tre rduit, puisquun seul bit suffit stocker linformation de marquage dun objet. En revanche, le temps au pire cas de lallocation devient beaucoup plus important, dans la mesure o il ncessite au moins deux parcours de lensemble des objets. Ce genre de mcanisme peut alors occasionner des pauses de dures considrables pendant lexcution dun programme. Enfin, il nempche pas la fragmentation de la mmoire.
B.

III.

CONTIBUTION ET EXPERIENCES

Pour rsoudre le problme des structures cycliques et minimiser le nombre des compteurs des objets pour le RM par comptage de rfrences, une nouvelle approche est de dcouper la mmoire en des "pages" de 8 16ko. Cet algorithme repose sur l'ide que les pages les plus utilises dans un pass proche ont plus de chance dtre nouveau utilises dans le futur proche et par consquent le RM par marquage -balayage et compactage de la mmoire sera appliqu dans les pages les plus utilises dans un pass proche, et le RM par marquage-balayage sans compactage de la mmoire dans les pages les moins utilises dans le pass proche [8]. On associe donc un compteur dutilisation toutes les pages afin de distinguer les pages les plus utilises des pages moins utilises. Dans [8] nous avons conu cette approche sous forme ci-dessous (fig 2).

100

Solution A La Gestion Des Objets Java Pour Des Systmes Embarqus

Fig2: Opration de RM avec marquage balayage et dfragmentation Cette seconde phase du travail a consist analyser diffrents comportements des objets java et surtout optimisation de la mmoire avec lexploitation de notre approche dans la kilobyte machine virtuelle. Les Programmes qui ont t choisis pour cela sont, deux applications trs connues dans le monde du mathmatiques :-Fibonacci, -Factorielle. ces applications qui ont lavantage dutiliser les modles de programmation courants (structure cyclique, rcursivit, forte utilisation de la mmoire dynamique...) :cest pourquoi ils reprsentent bien le genr e de programmes Java que la solution proposer devrait pouvoir grer. Chacun de ces programmes a t dans un premier temps analys la main, cest --dire en examinant son code source en tenant compte des familles cres par lanalyse statique actuelle. Ce premier examen a permis de mettre en vidence le fonctionnement global de lapplication et ses parties potentiellement problmatiques par rapport la gestion en utilisant kvm de sun . Dans un second temps, les variations de son occupation mmoire lorsque celle-ci est gre par la nouvelle approche propose [9] et avec un RM classique de KVM de sun ont t compares. Ceci a permis de confirmer et prciser lefficacit de notre proposition . Comparaison de comportement temporelle du RM Suite des tests dun programme qui calcul la suite de Fibonacci (les 10 premiers termes), nous avons relev le temps dexcution du RM de la machine virtuelle KVM et Notre machine virtuelle propos (Fig4) de la mme faon pour le programme de Factorielle cas12 (Fig3)
A.

101

Solution A La Gestion Des Objets Java Pour Des Systmes Embarqus

Fig 3: Dure dexcution du RM pour Factorielle

Fig 4: Dure dexcution du RM pour Fibonacci

Nous remarquons que la dure dexcution de notre RM gale 8268s pour Fibonacci et 8336 s pour Factorielle sont infrieure celle du RM de la KVM classique avec les valeurs respectivement 10281s et 10299 s . Variations des nombre de pages En fonction du nombre de pages parcourir, le temps dexcution du RM est diffrent. Pour les mmes programmes de la section prcdente, nous avons relev les donnes pour illustrer les graphes Fig5 et Fig 6 ci-dessous.
B.

Fig 6 : temps dxcution du RM en fonction du nombre de pages pour Factorielle

Fig 6 : temps dxcution du RM en fonction du nombre de pages pour Factorielle

Effectivement,Nous observons que le nombre de pages adapts pour excuter les deux programmes participe dans loptimisation temporelle du RM . Ceci confirme notre approche qui propose au lieu de parcourir toutes les pages du Tas ,il suffit de parcourir les pages les plus utilises dans un pass proche [10].

IV.

CONCLUSIONS

Le rsultat obtenu concernant les deux programmes jugs compatibles avec notre approche [11],il est donc envisageable de traiter autres programmes plus complexes. Pour poursuivre, une perspective de ce travail serait lutilisation de notre solution dans divers machines virtuelles Java et de les embarque dans divers quipements : Jplayer, Robot ducatif.

102

Solution A La Gestion Des Objets Java Pour Des Systmes Embarqus REFERENCES
[1]. [2]. [3]. [4]. [5]. [6]. J2ME Building Blocks for Mobile Devices. Sun Microsystems, 2000. Java Card Virtual Machine Speci_cation. 2003. Richard E. Jones. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, 1996. [p. 35, 39, 40, 48] Paul R. Wilson. Uniprocessor garbage collection techniques. In Proceedings of the 1992 International Workshop on Memory Management (IWMM92), pages 142. Springer, 1992. [p. 39, 42] John McCarthy. Recursive functions of symbolic expressions and their computation by machine. Communications of the ACM, 3(4):184195, 1960. [p. 39] David F. Bacon, Perry Cheng, and V.T. Rajan. A unified theory of garbage collection. In Proceedings of the 19th ACM Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA04). ACM Press, 2004. [p. 39] Antony L. Hosking, J. Eliot B. Moss, and Darko Stefanovic. A comparative performance Evalu-ation of write barrier implementation. In OOPSLA 92 : conference proceedings on Object -oriented programming systems, languages, and applications, pages 92 109, NewYork, NY, USA, 1992. ACM Press. [8]. Laila MOUSSAID, Mostafa HANOUNE (2011, Mai) "Gestion du TAS: Application sur J2ME". International Journal of Mathematical Archive, Page: 716-719 [9,10,11]. Laila Moussaid,Mostafa Hanoune(2012,september) "new approach to manage objects in environment java embedded ". International Journal of Mathematical Archive, Page: 3410-3412

[7].

[8]. [9].

103