Академический Документы
Профессиональный Документы
Культура Документы
Microsoft
Patrocinadores
TechDays 2005
Aprender, Partilhar, Experimentar
ACD01 - Reciclagem automtica de autom memria distribuda na mem distribu Plataforma .Net .Net
Paulo Pereira CCISEL palbp@cc.isel.ipl.pt
Agenda
Introduo O algoritmo de DGC Suporte AOP na Plataforma .Net DGC no CLR Trabalho em curso: DGC no Rotor
Introduo
Nota prvia
CLI - Common Language Infrastructure
Especificao normalizada (ECMA-335) de um ambiente virtual de execuo
.Net Remoting
Modelo de memria distribuda
Espao A
razes
Espao C
razes
.Net Remoting
Comunicao (1)
IMethodCallMessage
.Net Remoting
Comunicao (2)
Client Space
IMethodCallMessage
Server Space
client
TP
Real Proxy
Msg Sink
Msg Sink
SB Sink
server
client
TP
Real Proxy
channel
SB Sink
server
IMethodReturnMessage
IMethodReturnMessage
Stack based
Message based
Stack based
Stack based
Message based
Stack based
Motivao
O .Net Remoting fornece mecanismo configurvel de gesto de tempo de vida
Baseia-se em concesses renovveis Libertao da memria a cargo do programador Sofre dos problemas clssicos
Objectivos
Estender o .Net Remoting com algoritmo de DGC correcto e completo
Estendendo o modelo de programao original Minimizando o impacto nas aplicaes
Algoritmo de DGC
Descrio
Autoria de Lus Veiga e Paulo Ferreira [1] Baseia-se na extenso do GC local com algoritmo que lida com as referncias inter-espaos Composto por:
Detector de lixo acclico (reference listing) Detector de lixo cclico
O Algoritmo de DGC
Algoritmo de DGC
Detector de lixo acclico (1)
As referncias inter-espaos so representadas por pares Stub / Scion (cadeias de pares) Em cada espao so mantidas duas estruturas de dados:
External Reference Table (ERT)
Estimativa das referncias mantidas pelo espao
Algoritmo de DGC
Detector de lixo acclico (2)
Espao A
razes
Espao B
razes
Espao C
razes ODT ERT ODT ERT
Algoritmo de DGC
Detector de lixo cclico (1)
Algoritmo centralizado de identificao directa do lixo Cada espao envia imagem (reduzida) do grafo local para o espao detector
O espao detector designa-se Cycles Detector Process (CDP)
Algoritmo de DGC
Detector de lixo cclico (2)
Espao A
razes
Espao B
razes
Espao C
razes
Paradigma proposto por Gregor Kiczales e colegas [2] Baseia-se na classificao das propriedades do sistema a implementar em:
components, quando so propriedades directamente relacionadas com o domnio do problema aspects, caso contrrio
client
TP
Real Proxy
Msg Sink
Msg Sink
SB Sink
server
IMethodReturnMessage
Stack based
Message based
Stack based
Caller Context
channel
DGC no CLR
S.C. Sink
S.C. T. Sink
Obj. Sink
Obj. T. Sink
S.B. Sink
target
Called Context
DGC no CLR
Elementos da soluo
A cada espao foi acrescentado:
As estruturas de dados ERT e ODT Um patrocinador (ISponsor) local
Decide acerca da renovao da concesso consultando a ODT
DGC no CLR
Detector de lixo acclico (1)
Acontecimentos a detectar:
Exportao de referncias Importao de referncias
Chegada da referncia Criao do par de proxies
DGC no CLR
Detector de lixo acclico (2)
Tcnicas de deteco
Exportao e importao de referncias
Seriao e deseriao de Envoy Sink ProxyAttribute para deteco da criao do par de proxies
DGC no CLR
Detector de lixo cclico
Informao necessria:
Conjunto das razes locais relevantes para a deteco de ciclos URL do CDP
DGC no CLR
Anlise crtica
Defeitos
Realizao de polling para deteco de fim de ciclo de execuo do GC local Execuo de deteco de ciclos atravs de pedido explcito da aplicao
No pedido passado o conjunto das razes locais a considerar e o URL do CDP
DGC no CLR
Exemplo
System.Runtime.Remoting.DGC; using System.Runtime.Remoting; RemoteObject public class Sample : MarshalByRefObject { public void DoYourStuff() { ... } }
Virtudes?
DGC no Rotor
Trabalho em curso
A soluo distingue-se da usada no CLR atravs das tcnicas de deteco Detector de lixo acclico (realizado)
Falta estender GC local com gerao de evento de fim de ciclo
DGC no Rotor
Tcnicas de deteco
Exportao e importao de referncias
Alterao do tipo ObjRef
Estendendo-o com a informao necessria Alterando o processo de seriao e deseriao
Questes?
Referncias
[1] Paul R. Wilson, Uniprocessor garbage collection techniques, in Proc. Int. Workshop on Memory Managment, No. 637, September 1992 [2] L. Veiga and P. Ferreira, Complete distributed garbage collection: an experience with Rotor, in IEE ProceedingsSoftware, Vol. 150, No. 5,pp. 283-290, October 2003 [3] Gregor Kiczales, et al., Aspect-Oriented Programming, in ECOOP proceedings, June 1997
Bibliografia
David Stutz, Ted Neward & Geoff Shilling, Shared Source CLI Essentials, OReilly, March 2003 Don Box, Chris Sells, Essential .Net, Volume 1. The Common Language Runtime, Addison Wesley, October 2002 Dharma Shukla, Simon Fell & Chris Sells, Aspect Oriented Programming Enables Better Code Encapsulation and Reuse, in MSDN Magazine, March 2002 Ingo Rammer, Advanced .Net Remoting, Apress, April 2002 Richard Jones & Rafael Lins, Garbage Collection, Algorithms for Automatic Dynamic Memory Managment, Wiley, 1996
Recursos teis
Recursos para Comunidades Microsoft
http://www.microsoft.com/portugal/technet/comunidades
Subscries TechNet
http://www.microsoft.com/portugal/technet/subscricoes
Certificaes
http://www.microsoft.com/portugal/technet/certificacoes
Microsoft
Passatempo
Bnus Extra no TechDays 2005!!
Habilite-se a ganhar uma Habilite-
TechDays 2005
Aprender, Partilhar, Experimentar
Complete o questionrio de avaliao e devolva-o question avalia devolvano final do dia sada no balco da recepo. sa recep
Slides de backup
2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.
ref2 ref2
TP
RealProxy
target (t2)