• Nenhum resultado encontrado

Corretude do Algoritmo om Vários Mutadores

Esta seção analisa a orretude do algoritmo para um oletor e vários mutadores, apre-

sentadona Seção5.3e implementadona máquinavirtual Java JikesRVM, omo des ritona

Seção5.6.

O algoritmo para vários mutadores da Seção 5.3 é baseado no algoritmo om la de

atualizaçõesdaSeção4.3.2, uja orretudeéanalisada naSeção6.5. A questãodasegurança

é similar ao aso do algoritmo om apenas um mutador. A diferença é que o oletor reúne

todas as informações nas las de atualização de ada mutador no iní io do i lo de oleta,

e pre isa integrar essas informações para atualizar os ontadores de referên ias de todos os

objetosqueapare em naslasde atualização.

Umaquestãoimportantenaintegraçãoentreos onteúdosdaslasdeatualizaçãoégaran-

tir que apenas um registro de atualização esteja presente para ada objeto ujas referên ias

paraeleforamatualizadas no i lode oleta atual. Assim,o ontador dereferên iasde ada

objetoé atualizado apenas uma vez em ada i lo. Isso é garantido na rotina Update (Al-

goritmo 5.1) através do uso do ag updated. Em Update, o ag updated de ada objeto é

veri adoantesdainserçãodeumregistronaladeatualizações; seoobjetojáfoiatualizado

no i lo atual,um registro não é inserido. Isso garanteque sóhá umregistro paraumdado

objetoem ada i lo.

Segurança No oletor, o pro edimento UpdateReferen eCounters (Algoritmo 4.10)

aumobjetofoiremovido, UpdateReferen eCounter s hama Re Del(Algoritmo 4.5),

querealizaaremoção re ursivade referên ias. Assim omo noalgoritmo paraummutadore

um oletor,Re Delgarante queapenasobjetosquenãoestãomaisvivosserão efetivamente

removidospara oespaço livre. Issogarantea propriedadeda segurança.

Viva idade Como men ionado, UpdateReferen eCounters hamaRe Del para on-

tabilizar a remoção de referên ias a um objeto. Por sua vez, Re Del dete ta quando a

remoção da referên ia ao objetotivero poten ial de isolarum i loveri ando seo onta-

dordereferên iatemvalormaiorqueum;nesse aso,oobjetoéadi ionadoaostatusanalyser,

que faráa veri ação de i los assim omo nas versões anteriores do algoritmo. O pro esso

todode varredura de i los lo ais não é diferente dos algoritmos previamenteexaminados, e

Con lusões e

Considerações Finais

E

stetrabalhoapresentouumestudorealizadosobrealgoritmosde ontagemdereferên ias

í li asadequadosparausoemsistemasmultipro essados,detalhando osalgoritmosem

si, implementações dos mesmos foram realizadas em plataformas de testes, e resultados de

testesde desempenho realizados.

Doisnovosalgoritmos foram propostos: umalgoritmo para umaarquitetura baseada em

um mutador e um oletor, baseado no on eito de la de atualizações (Seção 4.3.2), e um

algoritmoadequadoparaarquiteturas omvários mutadores e um oletor, usandotambém o

on eito de la de atualizações (Capítulo 5). Esses novos algoritmos foram implementados

e testados em onjuntos de programas de ben hmarking para análises de desempenho. Os

resultadosmostrados sãopromissores: ambososalgoritmostêm desempenho ompetitivo em

relaçãoàs alternativas disponíveis e, no aso do algoritmo para vários mutadores, apresenta

temposde pausamuito menoresdoque asalternativas.

OsnovosalgoritmosapresentadosnosCapítulos4e5respondempositivamenteàsQuestões

de Pesquisa 1 e 2 apresentadas naSeção 1.3.1. Em espe ial, om relaçãoà Questão 2,o uso

da lade atualizações não sóreduz a ne essidade de sin ronização entre oletor e mutador,

omo tambémreduz o número de atualizações ne essárias nos ontadores de referên ias dos

objetos,resultandoemuma melhora onsiderávelno desempenho do algoritmo.

iados omo o Common Language Runtime (CLR) da plataforma .NET da Mi rosoft. Em

relaçãoa algoritmos de oleta de lixo usados nessas plataformas, o algoritmo do Capítulo 5

tem desempenho menos de 10% pior em todos os testes realizados, mas tem a grande van-

tagem de impor tempos de pausa menores ao programa exe utado; de fato, os tempos de

pausano algoritmode ontagemde referên ias í li assãoordensde magnitudemenoresque

osdosalgoritmos on orrentes. Issoéumaevidên ia da respostapositivadada àQuestãode

Pesquisa 1 da Seção1.3.1. Ostestes realizados omosprogramas do onjunto DaCapo, que

são baseados em apli ações reais es ritas em Java, respondem à Questão de Pesquisa 3 de

maneirasatisfatória.

Também foi feito um onjunto de testes preliminares para determinar o omportamento

doalgoritmo propostopara vários mutadores omrelação ao res imento donúmero de pro-

essadores disponíveis, omo pode ser visto na Seção 5.7.5. Os testes realizados om um

omputador om pro essador de 4 nú leos mostram que o algoritmo proposto para vários

mutadores ontinuatendobomdesempenhotantoemthroughput omoemrelaçãoàlatên ia.

Issoresponde par ialmenteà QuestãodePesquisa4,masmaisinvestigação éne essáriapara

observar tendên iasqueapareçamquandoonúmerodepro essadores res eaindamais. Essa

ideia eoutras rela ionadaspodemser exploradas em trabalhosfuturos, omoserá detalhado

adiante.

Esta ara terísti adoalgoritmopropostonoCapítulo 5podeserusada omvantagemem

situaçõesemquea latên iae o tempo derespostado programa sãotão oumais importantes

queodesempenho, por exemplo:

Sistemasdetemporeal,nosquaisoprogramadeveresponderàssoli itaçõesdentrode prazos xos. Algoritmos de oleta de lixoque impõempausas maiores podemtornar

imprevisível o tempo de resposta do sistema, pois um i lo de oleta pode omeçar

enquanto existe umaou maissoli itaçõespendentes.

Sistemas de interfa e om o usuário nal. Usuários tendem a preferir sistemas que respondamaosseus omandos, mesmoqueo tempo total pararealizar ada omando

sejaumpou o maior.

Servidores ou Serviços Web que devem responder às soli itações dentro de prazos estipuladospor algum ontrato deserviço.

7.1 Sugestões para Trabalhos Futuros

O trabalho de investigação relatado aqui sus ita umagrande possibilidade de outros es-

tudosrela ionadosquepodemserrealizados. Alguns exemplossãosugeridosa seguir:

Aslas usadaspelos algoritmosbaseados emlasdeatualização têmumimpa toim- portante nodesempenho resultante. Existeumferramental teóri obaseado emteoria

das las que poderia ser usado para analisar matemati amente algumas ara terísti-

as do desempenho dessas las, e as informações dessa análise poderiam ser usadas

paradeterminar a relaçãoentrealguns parâmetros asso iados (porexemplo,tamanho

máximoda la) eo desempenho naldoalgoritmo.

O maior ponto de ontenção no algoritmo para vários mutadores do Capítulo 5 é o a esso à lista de espaço livre na memória: todos os threads a essam a mesma lista.

Uma possível alteração que poderia reduzir a ontenção e melhorar o desempenho

do algoritmo seria ter listas de espaço livre separadas para ada thread ou grupo de

threads. Seria ne essário estudar qual a melhor solução para asos omo um thread

usandotodooespaçodememórianasualistalivre,enquantoaslistasdeoutrosthreads

possuem espaço disponível. Seria ne essário testar se a alteração ompensa a maior

omplexidade om umamelhoria signi ativa nodesempenho do algoritmo.

O algoritmo para vários mutadores (Capítulo 5) suspende ada mutador por algum tempo enquanto opia sua la de atualizações. Uma possibilidade para reduzir as

pausas ainda maisseria usar uma estrutura diferente paraa lade atualização. Um

exemploéusarduaslaspara adathread,las

F1

e

F2

. Apenasumadaslasestaria ativa em ada momento. Ini ialmente, pode-se usar a la

F1

omo ativa. Durante o iní io do i lo de oleta, em que o oletor pre isa obter o onteúdo das las de

atualização de ada mutador, a la ativa para o mutador passa a ser

F2

, enquanto o onteúdo de

F1

é utilizado pelo oletor; registros de atualização seriam in luídos apenas na la ativa. Essasalterações, se não riarem problemas de sin ronização ou

interferên iaentre oletore mutadores,talvez reduzam oumesmoeliminem aspausas

impostas pelo oletor.

Os algoritmos testados neste trabalho usam apenas um pro esso ou thread oletor, o que é adequado para um omputador om pou os pro essadores. Entretanto, à

vantajoso ter vários oletores fun ionando em paralelo. Algumas possibilidades para

arquiteturas om mais de um oletor foram sugeridas no Capítulo 5, mas nenhum

algoritmoseguindoessaspossibilidadesfoiimplementado. Umasugestãodetrabalhoé

desenvolvereimplementarumalgoritmo omvários oletoresemalgumaplataformade

hardware omummaiornúmerodepro essadores,ouatravésdesimulação,e veri ar

odesempenho dassoluçõespropostas.

Os algoritmos propostos nos Capítulos 4 e 5 podem ser adaptados para uso om sis- temasdistribuídos de memória ompartilhada. Como não há a ne essidade de varrer

todo o espaço de memória ompartilhada, omo o orre nosalgoritmos de oleta por

ópiaou oletapor mar açãoevarredura, osalgoritmosqueusam ontagem derefer-

ên ia tendem a ter melhor desempenho em arquiteturas distribuídas. Embora a sin-

ronizaçãoenvolvida sejamais omplexa,os algoritmosfun ionam om relativamente

pou as operações de sin ronização explí ita. No algoritmo paravários mutadores do

Capítulo 5,as lasde atualização já sãoobtidas pelo oletorde uma forma similar a

[1℄ B. Alpern and et al., The jalapeño virtual ma hine, IBM Systems Journal, vol. 39,

no.1, pp.211215,Março 2000.

[2℄ G. M. Amdahl, Validity of thesingle pro essor approa h to a hieving large s ale om-

puting apabilities, in Pro . AFIPS Spring Joint Computer Conferen e, Atlanti City,

NJ, USA,Abril1967, pp.483485.

[3℄ G. R. Andrews, Con urrent Programming: Prin iples and Pra ti e. Addison-Wesley

Professional, Julho 1991.

[4℄ , Foundations of Multithreaded, Parallel, and Distributed Programming. Addison-

WesleyProfessional, Julho 1999.

[5℄ K. Arnold, J. Gosling, and D. Holmes,The Java Programming Language (4th Edition).

Addison-WesleyProfessional, Agosto 2005.

[6℄ ArsTe hni a, Multi ore, dual- ore, and the future of intel, 2004. [Online℄. Available:

http://arste hni a. om/arti les/paedia / pu/ int el-futur e.ars/1

[7℄ Azat hi, Hezi, Levanoni, Yossi, Paz, Harel, and Petrank, Erez, An on-the-y mark

and sweep garbage olle tor based on sliding views, in OOPSLA '03: Pro eedings of

the 18th annual ACM SIGPLAN onferen e on Obje t-oriented programing, systems,

languages, and appli ations. New York, NY, USA: ACM, 2003, pp.269281. [Online℄.

Available: http://dx.doi.org/10.1145/949305.94932 9

[8℄ J.W.Ba kus,R.J.Beeber,S.Best,R.Goldberg,L.M. Haibt,H.L.Herri k,R.A.Nel-

son,D.Sayre,P.B.Sheridan,H.Stern,I.Ziller,R.A.Hughes,andR.Nutt,Thefortran

automati odingsystem, inPaperspresentedattheFebruary26-28,1957,westernjoint

omputer onferen e: Te hniquesforreliability,ser.IRE-AIEE-ACM'57(Western). New

[9℄ D. F. Ba on, C. R. Attanasio, H. B. Lee, V. T. Rajan, and S. Smith, Java without

the oee breaks: a nonintrusive multipro essor garbage olle tor, in PLDI '01: Pro-

eedings of the ACM SIGPLAN 2001 onferen e on Programming language design and

implementation. NewYork,NY, USA:ACM,2001, pp.92103.

[10℄ N. Benton, Abstra ting allo ation: The new new thing, in Computer S ien e Logi

(CSL 2006),ser. Le ture Notes inComputer S ien e. Springer-Verlag,2006.

[11℄ S. M. Bla kburn, R. Garner, C. Homan, A. M. Khan, K. S. M Kinley, R. Bentzur,

A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. Hosking, M. Jump,

H. Lee, J. E. B. Moss, A. Phansalkar, D. Stefanovi¢, T. VanDrunen, D.von Din klage,

and B. Wiedermann, The DaCapo ben hmarks: Java ben hmarking development and

analysis, in OOPSLA '06: Pro eedings of the 21st annual ACM SIGPLAN onferen e

on Obje t-Oriented Programing, Systems,Languages, andAppli ations. NewYork,NY,

USA: ACMPress, O t.2006, pp.169190.

[12℄ S. M. Bla kburn, K. S. M Kinley, R. Garner, C. Homann, A. M. Khan, R. Bentzur,

A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. Hosking, M. Jump,

H. Lee, J. E. B. Moss,A. Phansalkar, D. Stefanovik, T. VanDrunen, D. von Din klage,

andB.Wiedermann,Wakeupandsmellthe oee: evaluationmethodologyforthe21st

entury, Commun. ACM,vol. 51,pp.8389,August 2008.

[13℄ S.Bla kburn, R.Garner, andD.Frampton, Mmtk: Thememory management toolkit,

JikesRVM, Te h. Rep., 2006. [Online℄. Available: http:// s.anu.edu.au/~Robin.Garner/

mmtk-guide.pdf

[14℄ S. Blazy and X. Leroy, Formal veri ation of a memory model for C-like imperative

languages, inInternationalConferen e on FormalEngineeringMethods(ICFEM2005),

ser. Le ture NotesinComputer S ien e,vol.3785. Springer-Verlag, 2005,pp.280299.

[15℄ H. Boehm, Destru tors, nalizers, and syn hronization, in POPL '03: Pro eedings of

the 30th ACM SIGPLAN-SIGACT symposium on Prin iples of programminglanguages,

vol. 38,no.1. New York,NY,USA:ACMPress, Janeiro 2003,pp. 262272.

[16℄ , The spa e ost of lazy referen e ounting, inPOPL '04: Pro eedings of the 31st

[17℄ H. Boehmand A.Demers, Garbage olle tioninan un ooperative environment, Soft-

ware Pra ti e & Experien e, vol. 9,no.18,pp.195244, 1988.

[18℄ E. Chailloux, P. Manoury,and B. Pagano, Développement d'appli ations ave Obje tive

Caml. O'Reilly,2000.

[19℄ C. J.Cheney,A nonre ursive list ompa ting algorithm, Commun. ACM, vol. 13, pp.

677678, November1970.

[20℄ J. Chirimar, C. A. Gunter, and J. G. Rie ke, Referen e ounting as a omputational

interpretation of linear logi , Journal of Fun tional Programming, vol. 6, no. 2, pp.

195244, 1996. [Online℄. Available: http:// iteseer.ist.psu.edu/ hirimar96refere n e.htm l

[21℄ W. F. Clo ksinand C. S.Mellish,Programming in Prolog, 5th edition. Springer, 2003.

[22℄ G. E. Collins, A method for overlapping and erasure of lists, Communi ations of the

ACM,vol. 3,no.12,pp.655657, Dezembro 1960.

[23℄ D. Coward, Java vm: Trying a new garbage olle tor for jvm 7, 2008. [Online℄.

Available: http://blogs.sun. om/theplanetarium/entry/java_vm_ trying_ a_ne w

[24℄ M. J. Crawley,The R Book. Wiley, 2007.

[25℄ D. L.Detlefs, C. Flood, S. Heller, and T. Printezis, Garbage-rst garbage olle tion,

pp.3748, 2004. [Online℄.Available: http://dx.doi.org/10.1145/1029873. 10298 79

[26℄ D. L.Detlefs, P. A. Martin, M. Moir, and G. L. Steele, Lo k-free referen e ounting,

Distributed Computing,vol. 15,no.4,pp.255271, Dezembro 2002.

[27℄ J.DeTreville,Experien ewith on urrentgarbage olle torsforModula-2+, DECSRC,

Te h. Rep.64,Agosto 1990.

[28℄ P.L.Deuts handD.G.Bobrow,Ane ient,in remental,automati garbage olle tor,

Commun. ACM,vol. 19,no.9,pp.522526, Setembro 1976.

[29℄ E. W. Dijkstra, L. Lamport, A. J. Martin, C. S.S holten, and E. F. M. Steens, On-

the-y garbage olle tion: an exer isein ooperation, Commun. ACM,vol. 21, no. 11,

[30℄ D.DoligezandG.Gonthier,Portable,unobtrusivegarbage olle tionformultipro essor

systems, inPro eedings of the21st ACM SIGPLAN-SIGACTSymposium on Prin iples

of Programming Languages,1994.

[31℄ D. Doligez and X. Leroy, A on urrent, generational garbage olle tor for a multi-

threaded implementation of ML, in Pro eedings of the 20th ACM SIGPLAN-SIGACT

Symposium on Prin iples of Programming Languages, 1993.

[32℄ R.K. Dybvig, The S heme Programming Language, 3rd. edition. MITPress,2003.

[33℄ R.R.Feni helandJ.C.Yo helson,Alispgarbage- olle torforvirtual-memory omputer

systems, Commun. ACM,vol. 12,pp.611612, November 1969.

[34℄ A. J.Fieldand P.Harrison,Fun tionalProgramming. Addison-Wesley, Julho1988.

[35℄ J.A.S.Filho,Algoritmospara ontagemdereferên ias í li as,Master'sthesis,Centro

de Informáti a,Universidade Federal dePernambu o, Fevereiro2002.

[36℄ D. Flanagan,JavaS ript: The Denitive Guide, 5th edition. O'Reilly,2006.

[37℄ C. Flood, D. Detlefs, N. Shavit, and C. Zhang, Parallel garbage olle tion for shared

memorymultipro essors, inUsenixJavaVirtualMa hineResear handTe hnologySym-

posium(JVM '01),Monterey,CA, 2001.

[38℄ W. Fokkink, Introdu tion to Pro ess Algebra. Springer, Fevereiro2000.

[39℄ A. Formigaand R.D. Lins,A NewAr hite ture for Con urrent Lazy Cy li Referen e

Counting onMulti-Pro essor Systems, Journal of Universal Computer S ien e, vol. 13,

no.6, 2007.

[40℄ ,E ientremovalofnoisybordersofmono hromati do uments,inImageAnalysis

and Re ognition, ser. Le ture Notes in Computer S ien e, M. Kamel and A.Campilho,

Eds. Springer Berlin/ Heidelberg, 2009,vol. 5627, pp.158167.

[41℄ E.FuentesandE.Eilebre ht,ThreadManagementintheCLR,MSDNMagazine,no.6,

2008. [Online℄. Available: http://msdn.mi rosoft. om/en-us/magazine /dd25 2943. aspx

[42℄ J.Y.Girard,Linearlogi : Itssyntaxandsemanti s, inAdvan esinLinearLogi (Pro .

[43℄ B. Goetz, Java theory and pra ti e: Garbage olle tion in the hotspot jvm, IBM

developerWorks, 2003. [Online℄. Available: http://www.ibm. om/developerworks/java/

library/j-jtp11253/index.html

[44℄ W. Gruener, Intel aims for 32 ores by 2010, TG Daily, 2006. [Online℄. Available:

http://www.tgdaily. om/2006/07/10 /intel_3 2_ or e_pro essor/

[45℄ S.P.Harbison, Modula-3. Prenti e-Hall, 1992.

[46℄ A. Hejlsberg, M. Torgensen, S. Wiltamuth, and P. Golde, The C# Programming Lan-

guage, 4thedition. Addison-Wesley Professional, 2010.

[47℄ A. Hejlsberg, S. Wiltamuth, and P.Golde, C# Programming Language, The (2nd Edi-

tion) (Mi rosoft .NetDevelopment Series). Addison-Wesley Professional, Junho 2006.

[48℄ M. P. Herlihy and J. E. B. Moss, Lo k-free garbage olle tion for multipro essors,

Parallel and Distributed Systems, IEEE Transa tions on, vol. 3, no. 3, pp. 304311,

1992. [Online℄. Available: http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1 39204

[49℄ M.P.HerlihyandN.Shavit,TheArtofMultipro essorProgramming. MorganKaufmann

Publishers, Dezembro 2008.

[50℄ J. E. Hop roft, R.Motwani, and J. D.Ullman, Introdu tion to Automata Theory, Lan-

guages, and Computation(2nd Edition). AddisonWesley,Novembro 2000.

[51℄ R.Jain,TheArtofComputerSystemsPerforman eAnalysis. JohnWiley&Sons,1991.

[52℄ K. Jensen, N. Wirth, A. B. Mi kel, and J. F. Miner, Pas al User Manual and Report:

ISO Pas al Standard. Springer, Setembro 1991.

[53℄ R.Jonesand R.Lins,Garbage Colle tion : Algorithms for Automati Dynami Memory

Management. John Wiley&Sons,Setembro 1996.

[54℄ S.P.Jones andJ. H.(editors),Te h. Rep.

[55℄ B. W. Kernighan and D. M. Rit hie, C A Linguagem de Programação, Padrão ANSI.

Campus, 1989.

[57℄ S. G. Ko han, Programming in Obje tive-C 2.0, 2nd edition. Addison-Wesley Profes-

sional, 2009.

[58℄ L.Lamport,Spe ifying Systems: The TLA+ LanguageandToolsfor Hardware andSoft-

ware Engineers. Addison-Wesley Professional, Julho2002.

[59℄ , Spe ifying Systems: The TLA+ Language and Tools for Hardware and Software

Engineers. Addison-Wesley, 2003.

[60℄ D. Leijen and E. Meijer, Parse : Dire t style monadi parser ombinators for thereal

world, 2001. [Online℄. Available: iteseer.ist.psu.edu/arti le/leijen01parse .html

[61℄ Y. Levanoni and E. Petrank, An on-the-y referen e- ounting garbage olle tor for

java, ACMTrans.Program.Lang.Syst.,vol. 28,no.1,pp.169,Janeiro 2006.[Online℄.

Available: http://dx.doi.org/10.1145/1111596.1111 597

[62℄ I. Limited, O am Programming Manual. Prenti e Hall,1984.

[63℄ T. Lindholm and F. Yellin, The Java Virtual Ma hine Spe i ation, 2nd. edition.

Prenti e-Hall, 1999.

[64℄ R. D. Lins, Lazy y li referen e ounting, Journal of Universal Computer S ien e,

vol. 9,no.8,pp.813828, Agosto 2003.

[65℄ R. Lins, B. Ávila, and A. Formiga, Bigbat h  an environment for pro essing

mono hromati do uments, in Image Analysis and Re ognition, ser. Le ture Notes in

ComputerS ien e,A.CampilhoandM.Kamel,Eds. SpringerBerlin/Heidelberg,2006,

vol. 4142, pp.886896.[Online℄. Available: http://dx.doi.org/10.1007/1186766 1_80

[66℄ R.D.Lins,Asharedmemoryar hite ture forparallel y li referen e ounting, Mi ro-

pro essing andMi roprogramming,vol. 34,pp.3135, Setembro 1991.

[67℄ , Cy li referen e ountingwith lazymark-s an, Inf.Pro ess. Lett., vol. 44,no.4,

pp.215220, Dezembro 1992.

[68℄ , Amulti-pro essor sharedmemory ar hite ture for parallel y li referen e ount-

ing, Mi ropro essing andMi roprogramming, vol. 35,pp.563568, 1992.

[70℄ , A new multi-pro essor ar hite ture for parallel lazy y li referen e ounting,

in SBAC-PAD '05: Pro eedings of the 17th International Symposium on Computer Ar-

hite ture on High Performan e Computing. Washington, DC, USA: IEEE Computer

So iety,2005,pp. 3543.

[71℄ ,Cy li referen e ounting, Inf.Pro ess.Lett.,vol.109,no.8,pp.7178,Dezembro

2008.

[72℄ A.D.Martínez, R.Wa hen hauzer, andR.D.Lins,Cy li referen e ountingwithlo al

mark-s an, Inf.Pro ess. Lett.,vol. 34,no.1, pp.3135, Fevereiro1990.