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
|