Hierarquia de Memória
Nota: essas notas normalmente são complementadas por outros materiais, como problemas do texto que podem ser trabalhados em sala de aula. É provável que você queira personalizar esse material para que se ajuste às necessidades dos seus alunos. Essas notas foram prepararadas com base em uma turma de alunos que já aprendeu sobre desenvolvimento com lógica e freqüentou um laboratório prático de programação de linguagem assembly que não segue um formato de aula comum.
1
Capítulo 1
2
Introdução
• O objetivo deste curso é mostrar como os computadores funcionam
• Mas o que queremos dizer com a palavra “computador”?
• Diferentes tipos: desktop, servidores, dispositivos embutidos
– Diferentes usos: automóveis, design gráfico, finanças, genética...
– Diferentes fabricantes: Intel, Apple, IBM, Microsoft, Sun...
– Diferentes tecnologias subjacentes e diferentes custos!
• Analogia: Pense em um curso sobre “veículos automotivos”
– Muitas semelhanças de um veículo para outro (por exemplo, volantes)
– Grandes diferenças de um veículo para outro (por exemplo, gasolina, álcool)
• Melhor maneira de aprender:
– Concentrar em um exemplo específico e aprender como ele funciona
– Abordar princípios gerais e perspectivas históricas
3
Por que aprender esse assunto?
• Você deseja se tornar um “cientista da computação”
• Você deseja desenvolver softwares utilizáveis (precisam de desempenho)
• Você precisa tomar uma decisão em relação a uma compra ou oferecer conselhos de “especialista”
• Tanto o hardware quanto o software afetam o desempenho:
– O algoritmo determina o número de instruções na origem
– Linguagem/compilador/arquitetura determinam as instruções da máquina
(Capítulos 2 e 3)
– Processador/memória determinam a velocidade com que as instruções são executadas (Capítulos 5, 6 e 7)
• Avaliando e entendendo o desempenho no Capítulo 4
4
O que é um computador?
• Componentes:
– entrada (mouse,