Trabalhos


Nesta página você encontra alguns trabalhos acadêmicos por  mim desenvolvidos durante a graduação, o mestrado e o doutorado. A maioria está em ps, compactado.
 
Projetos       Doutorado: Técnicas para Implementação de Memória Compartilhada Distribuída Baseadas em Informações Estruturais e Comportamentais

Sistemas de memória virtual compartilhada, ou Shared Virtual Memory (SVM), em inglês, representam o estado-da-arte na implementação do modelo de memória compartilhada em sistemas distribuídos de computadores. Entretanto, o uso do mecanismo de proteção de memória virtual pelos sistemas SVMs introduz overheads significativos na execução das aplicações, degradando seu desempenho, a saber: (a) a ocorrência de falso compartilhamento e fragmentação devido ao tamanho da página virtual utilizada como unidade de coerência, e (b) o alto custo imposto pelo sistema operacional para o tratamento de falhas de páginas. Neste projeto estudamos uma alternativa a sistemas SVMs que utiliza novas técnicas baseadas em informações estruturais e comportamentais das aplicações, que permitem eliminar o uso do mecanismo de proteção da memória virtual e ainda implementar eficientemente a abstração de memória compartilhada em sistemas distribuídos de computadores. Mais concretamente, desenvolvemos técnicas que permitem: (a) a detecção de escritas na memória compartilhada, (b) a criação dinâmica de diffs, e (c) o uso de unidade de coerência de granularidade fina. Para avaliar a viabilidade desta alternativa, estamos desenvolvendo um ambiente experimental chamado CoJVM (Cooperative Java Virtual Machine), um novo ambiente Java para computação de alto desempenho em clusters baseado nas técnicas propostas.

Mestrado: R-RIO: Um Ambiente para Suporte à Construção e à Evolução de Sistemas

Um dos grandes problemas apresentados durante a fase de implementação do ciclo de vida de desenvolvimento do software é a dificuldade em se separar o que o sistema deve fazer (definido pelos chamados requisitos funcionais) daquilo que ele deve atender (definido pelos requisitos operacionais). Este problema na separação de interesses da aplicação acarreta em dificuldade na manutenção dos sistemas e na reutilização de suas partes em outras aplicações.

A abordagem R-RIO (Reflective, Reconfigurable Interconnectable Objects) procura contribuir para a solução do problema da separação de interesses. A abordagem estende o conceito de configuração para permitir tanto a descrição da arquitetura das aplicações quanto de seus aspectos operacionais relevantes. 

Com base nos conceitos da abordagem é implementado um protótipo na linguagem Java, o que o torna portável entre distintas plataformas de hardware e sistemas operacionais. Neste protótipo são oferecidas primitivas para sincronização que permitem ao programador de aplicações um nível mais alto de abstração, quanto do tratamento de aspectos de sincronização. Mecanismos para suporte à distribuição e comunicação também foram implementados.

Foi também desenvolvida neste trabalho a idéia de conectores genéricos, que permitem, a princípio, ligar quaisquer pares de portas de módulos, independente de suas assinaturas. Permite-se, assim, que uma vez implementado um conector com uma determinada funcionalidade, não seja necessário adaptar sua interface a cada vez que se conecte dois pares de módulos ou a cada vez que ocorra mudança na interface dos módulo sendo conectados.

Para saber mais, de uma olhada na lista de publicações ou visite a página do projeto.


 
Publicações Implementação de uma Aplicação Distribuída Orientada a Objetos Usando Remote Procedure Call
Com Paulo Henrique Neiva 
Anais do VI Seminário de Iniciação Científica e Prêmio UFF Vasconcelos Torres de Ciência e Tecnologia, Niterói, 1996. 

Utilização de Reflexão na Adição Transparente de Requisitos Operacionais a Aplicações CORBA 
Com Paulo Henrique Neiva (Autor Principal)
Anais do VI Seminário de Iniciação Científica e Prêmio UFF Vasconcelos Torres de Ciência e Tecnologia, Niterói, 1996.

Adição Transparente de Requisitos Operacionais a Aplicações CORBA
Projeto de Fim de Curso 
Departamento de Computação, Universidade Federal Fluminense 
Niterói, 1996. 

Configuração, Reflexão e CORBA: Algumas Considerações 
Com Orlando Loques (Autor Principal), Julius Leite e Rodrigo Botafogo 
Anais do III Workshop do Projeto ASAP, Fortaleza, 1996. 

Uma Plataforma para Suporte à Evolução de Sistemas Distribuídos
Com Alexandre Sztajnberg e Orlando Loques 
Anais do II Workshop em Sistemas Distribuídos, Curitiba, 1998. 

Configuração de Sistemas Distribuídos Baseada em Java
Com Alexandre Sztajnberg e Orlando Loques 
Anais do I Simpósio de Sistemas de Simulação e de Controle, Rio de Janeiro, 1998. 

Separação de Interesses em Sistemas Distribuídos
Com Alexandre Sztajnberg (Autor Principal) e Orlando Loques 
Anais do I Simpósio de Sistemas de Simulação e de Controle, Rio de Janeiro, 1998. 

Configuration as an Approach to Support Reflection in Distributed Systems
Com Orlando Loques (Autor Principal) e Alexandre Sztajnberg
Tecnical Report, Pós-graduação em Computação Aplicada e Automação, Niterói, 1998. 

A Abordagem R-RIO para Concepção de Aplicações Distribuída
Com Alexandre Sztajnberg (Autor Principal) e Orlando Loques 
Anais do XVII Simpósio Brasileiro de Redes de Computadores, Salvador, 1999. 

Towards Integrating Meta-Level Programming and Configuration Programming
Com Orlando Loques (Autor Principal), Julius Leite e Alexandre Sztajnberg 
Anais do XIII Simpósio Brasileiro de Engenharia de Software, Florianópolis, 1999. 

Configurando Protocolos de Interação na Abordagem R-RIO
Com Alexandre Sztajnberg (Autor Principal) e Orlando Loques 
Anais do XIII Simpósio Brasileiro de Engenharia de Software,
Florianópolis, 1999. 

R-RIO: Um Ambiente para Suporte à Construção e à Evolução de Sistemas
Com Orlando Loques e Alexandre Sztajnberg 
Anais do Caderno de Ferramentas do XIII Simpósio Brasileiro de Engenharia de Software, Florianópolis, 1999. 

R-RIO: Um Ambiente para Suporte à Construção e à Evolução de Aplicações
Dissertação de Mestrado. 
Pós-Graduação em Computação Aplicada e Automação, Universidade Federal Fluminense, Niterói, 1999. 

Integrating Meta-Level Programming and Configuration Programming
Com Orlando Loques (Autor Principal), Julius Leite e Alexandre Sztajnberg 
OOPSLA'99 Workshop on Object Oriented Reflection and Software Engineering, Denver, 1999. 

On the Integration of Configuration and Meta-Level Programming Approaches
Com Orlando Loques (Autor Principal), Julius Leite e Alexandre Sztajnberg 
Tecnical Report, Pós-graduação em Computação Aplicada e Automação, Niterói, 2000.

TCP/IP versus VIA on Network of Workstations
Com Anderson F. Silva, Vitor S. Costa e Cláudio L. de Amorim
13th Symposium on Computer Architecture and High Performance Computing. (PowerPoint Slides)
Pirenópolis, 2001.

A Java Environment for High-Performance Computing
Com Cláudio L. de Amorim e Orlando Loques
13th Symposium on Computer Architecture and High Performance Computing. (PowerPoint Slides)
Pirenópolis, 2001

Java for High-Performance Network-Based Computing: a Survey
Com Cláudio L. de Amorim e Orlando Loques
Este é um preprint de um artigo publicado em Concurrency and Computation: Practice and Experience 2002;14:1-31 Copyright (c) 2002 John Wiley & Sons, Ltd.

Performance Evaluation of Fast Ethernet, Giganet, and Myrinet on a Cluster
Com Vítor Santos Costa e Cáldio L. de Amorim
Este é um preprint de um artigo publicado em Lecture Notes in Computer Science 2329: Proceedings of the International Conference on Computational Science, Amsterdam, The Netherlands April 21-24, 2002 p. 296-305 Copyright (c) Springer-Verlag Heidelberg.


 
Outros 
Trabalhos   
Redação de Textos Científicos.
Trabalho desenvolvido para a cadeira Fundamentos Matemáticos (Mestrado).
Niterói, março de 1997.

A Linguagem de Programação Java.
Apresentação desenvolvida para a cadeira Sistemas de Computação (Mestrado). Em PowerPoint 97.
Niterói, março de 1998.

2K: Um Sistema Operacional Reflexivo, Baseado em Componentes, para Ambientes em Rápida Evolução
Trabalho desenvolvido para a cadeira Sistemas Operacionais (Doutorado).
Rio de Janeiro, setembro de 1999.

Java para Computação de Alto Desempenho Baseada em Redes
Com Cláudio Amorim e Orlando Loques.
Transparências em formato PowerPoint 2000 do minicurso ministrado no II WSCAD - II Workshop em Sistemas Computacionais de Alto Desempenho. O minicurso foi baseado neste paper
Pirenópolis, setembro de 2001.


Home Page | Curriculum Vitae | Nova Friburgo
Sites Favoritos | Trabalhos | Música


 


lobosco@cos.ufrj.br
 
 
 

Última atualização em 19/09/2002. Qualquer comentário, crítica ou sugestão sobre esta página, por favor envie mensagem para Marcelo Lobosco.