wscad2005
topo

Mini-Cursos

Sistemas de Computação Baseados em Máquinas Virtuais

Lauro Whately e Cláudio Amorim
COPPE-UFRJ

Resumo:
Será apresentado o estado-da-arte em tecnologia de virtualização de recursos e como a virtualização através do monitor de máquina virtual tem sido usada para solucionar importantes problemas em sistemas de computação.
A primeira parte do curso - "Arquitetura de Máquinas Virtuais" - apresenta os conceitos básicos de virtualização de recursos e a tecnologia de virtualização encontrada em monitores de máquina virtual. A seguir, "Técnicas de Virtualização e outras Tecnologias" compara o uso de monitor de máquina virtual com outras técnicas de gerenciamento de recursos, como particionamento físico e lógico do sistema, cápsula de processos e "Resource Containers". Na terceira parte - "Construindo Sistemas com Máquinas Virtuais" - já teremos todo o conhecimento necessário para apresentar e discutir como os serviços oferecidos por um monitor de máquina virtual pode prover funcionalidades que são úteis na solução de problemas em áreas como compartilhamento de recursos, proteção em computação remota, análise de intrusão, tolerância a falhas, computação móvel, administração de sistemas e computação distribuída.
O foco é no público de nível de graduação avançado e de início de pós-graduação, buscando trazer novas questões e incentivar o interesse no tema para os iniciantes na área de arquitetura de computadores e sistemas operacionais.

Apresentador:
Lauro L. A. Whately.

Otimização de Desempenho de Software: Conceitos, Técnicas, Métodos e Exemplos

Carlos A.P. da S. Martins, João B.T. Corrêa, Hugo F.B. Tadeu, Leia F de assis e Joel G.P. Júnior
PUC-Minas

Resumo:
Neste mini-curso apresentaremos os principais tópicos teóricos e práticos relacionados com a otimização de desempenho de software, considerando as características das cargas de trabalho e das arquiteturas dos sistemas computacionais. Inicialmente, analisaremos o contexto e os problemas motivadores relacionados com a otimização de desempenho de software. Posteriormente, apresentaremos os principais conceitos de otimização de desempenho de software e em quais etapas do processo de desenvolvimento de software é interessante considerar os aspectos relacionados com a otimização de desempenho. Mostraremos que desde o início do processo de desenvolvimento de software devemos nos preocupar com a definição da arquitetura a ser utilizada e considerar a otimização de desempenho. Apresentaremos e analisaremos as principais técnicas e métodos de otimização, em diferentes níveis de abstração, entre as quais destacamos as que são baseadas na adequação das características das cargas de trabalho às características arquiteturais dos sistemas computacionais. Serão apresentadas e analisadas técnicas e métodos relacionados com a otimização nos códigos-fonte, nos códigos executáveis e no processo de compilação. Finalmente, apresentaremos alguns exemplos reais e práticos de otimização de aplicações em diversas áreas do conhecimento, com diferentes demandas computacionais. Apresentaremos exemplos práticos reais, de otimização de desempenho de software, considerando aplicações com baixa e alta demanda computacional. Entre os exemplos destacamos a otimização de um código fonte e de um código executável utilizando ferramental da Intel. Para verificarmos o nível de melhoria de desempenho alcançado com os métodos e técnicas de otimização abordadas, realizaremos a medição dos tempos de execução antes e após as otimizações, em aplicações de processamento digital de imagens.

Apresentador:
Carlos A.P. da S. Martins

Construção de Modelos de Processadores Usando uma Linguagem de Descrição de Arquiteturas

Sandro Rigo, Rodolfo Azevedo, Guido Araújo e Paulo Centoducate
UNICAMP

Resumo:
O objetivo deste curso é apresentar uma metodologia para construção de modelos de processadores baseados em uma linguagem de descrição de arquiteturas. Para tal, utilizaremos a linguagem ArchC, uma linguagem publicada em domínio público (www.archc.org), capaz de gerar automaticamente simuladores escritos em SystemC. SystemC é uma linguagem para descrição de hardware baseada em C++, que vem se firmando nos últimos anos como um padrão para projetos em nível de sistema, recebendo uma grande atenção tanto na academia quanto na indústria
Este mini-curso apresentará as etapas de construção de um modelo de processador RISC baseado no MIPS-I. Iniciaremos com a definição do conjunto de instruções, mostrando a especificação de formatos, sintaxe assembly, informações de decodificação, até a escrita dos métodos de comportamento. Mostraremos características da linguagem que facilitam a descrição de comportamentos e apresentaremos as diferenças entre modelagem funcional e com precisão de ciclos. Na seqüência, os principais aspectos na especificação da estrutura do processador serão discutidos através de alguns exemplos envolvendo declaração de cache, hierarquia de memória e pipeline.
A parte final do mini-curso ilustraremos a fase de verificação de um modelo. Nesse processo, utilizaremos as ferramentas de simulação, geração de montadores e depuração que estão disponíveis no pacote oferecido pela linguagem ArchC. Finalizando, teremos uma breve demonstração do funcionamento de modelos de arquiteturas altamente conhecidas, como SPARC ou PowerPC, executando aplicações de multi-mídia como codificador de JPEG e ADPCM.

Apresentador:
Sandro Rigo