Alberto José Proença
Lic. Matemática e Ciências da Computação, 2º ano
2001/02
Sumários
Semana: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
Nota: As referências nos sumários a textos de consulta estão abreviadas para NE (Notas de Estudo), MC (Material Complementar, normalmente de apoio às aulas teórico-práticas), HCW (revista electrónica com a série de referência "How Computers Work"), P&H (livro de Hennessy & Patterson), Sta (livro/resumo de Stallings) e Tan (livro de Tanenbaum); são normalmente seguidas do respectivo capítulo/secção, e quando existe em formato electrónico é indicado o respectivo link.
Semana 1
01-Out-01 (TP1+TP2)
Não houve aula (ainda não houve aula teórica de apresentação)
02-Out-01 (T)
Apresentação. Introdução ao funcionamento da disciplina: apresentação
da documentação a fornecer (em formato electrónico, e relativo ao ano em
curso, em gec.di.uminho.pt/mcc/ac/) e da metodologia de trabalho e de
avaliação.
02-Out-01 (TP3)
Não houve aula (para sincronizar com outras turmas)
03-Out-01 (T)
Organização
e arquitectura dum computador: Representação da
informação no computador: texto e respectivos alfabetos, números,
informação multimédia e comandos codificados para o processador; introdução à organização interna dum computador, e
em particular a ligação entre o processador central e a memória.
(NE (Cap1), Sta (Ch1.1
e 1.2),
HCW (H1) )
Semana 2
08-Out-01 (TP1+TP2)
Sistemas de numeração e conversão de bases. Representação binária
de valores positivos e negativos (sinal + magnitude, complemento para 1, complemento para
2, e representação por excesso).
(NE (Anexo A), Sta
(Ch
8.2, 8.3), P&H (Ch4.2), Tan (Annex A) )
09-Out-01 (T)
Introdução aos níveis de abstracção presentes num computador: o nível HLL,
o nível da linguagem assembly e o da linguagem máquina.
Estrutura
interna dum computador (o processador, a memória, módulos de I/O e o sistema
de interligação), com destaque para o processador (a unidade de controlo, o conjunto de registos e as unidades
funcionais) e para a organização da memória (noção de endereço e de
célula).
(NE (Cap1), Sta (Ch1.1
e 1.2),
P&H (Ch1.1, 1.2) )
09-Out-01 (TP3)
Sistemas de numeração e conversão de bases. Representação binária
de valores positivos e negativos (sinal + magnitude, complemento para 1, complemento para
2, e representação por excesso).
(NE (Anexo A), Sta
(Ch
8.2, 8.3), P&H (Ch4.2), Tan (Annex A) )
10-Out-01 (T)
Funcionamento básico dum computador: modelo de execução de instruções; introdução aos conceitos de registo de
instrução, registo apontador para a próxima instrução, e mecanismo de busca de
instruções à memória - utilizando os barramentos de endereços, controlo e de dados.
(NE (Cap1), Sta (Ch3.1)
)
Semana 3
15-Out-01 (TP1+TP2)
Resolução de exercícios com binários inteiros. Representação binária de valores
fraccionários e introdução à representação de valores
reais em vírgula flutuante (noção e vantagens duma normalização).
(NE (Anexo B),
ME (TP1, TP2),
Sta (Ch8.4), P&H
(Ch4.8), Tan (Annex B) )
16-Out-01 (T)
Funcionamento básico dum computador (cont.): mecanismo de busca de
instruções à memória, a descodificação das instruções e introdução à execução
de operações.
(NE (Cap1), Sta (Ch3.3)
)
16-Out-01 (TP3)
Resolução de exercícios com binários inteiros. Representação binária de valores
fraccionários e introdução à representação de valores
reais em vírgula flutuante (noção e vantagens duma normalização).
(NE (Anexo B),
ME (TP1, TP2),
Sta (Ch8.4), P&H
(Ch4.8), Tan (Annex B) )
17-Out-01 (T)
Funcionamento básico dum computador (cont.): interface genérico entre o CPU e
os módulos de I/O, e mecanismo detalhado de: busca de
instruções à memória e sua descodificação e execução
das operações especificadas na instrução.
(NE (Cap1), Sta (Ch3.1,
3.2, 3.3, 3.4) )
Semana 4
22-Out-01 (TP1+TP2)
Apresentação da norma IEEE 754 na representação de valores em vírgula
flutuante, com análise de exemplos.
Introdução à metodologia de análise/diálogo sobre terminologia e gíria informática
(tema da aula seguinte).
(NE (Anexo B),
ME (TP3), Sta (Ch8.4), P&H
(Ch4.8), Tan (Annex B); recomenda-se a ainda uma leitura sobre a história
do IEEE 754, bem como uma visita ao site
oficial da norma IEEE 754)
23-Out-01 (T)
Análise
do funcionamento dum processador e respectivo instruction set:
introdução às operações num processador - análise do n.º de operandos em cada
instrução, com introdução às operações aritméticas básicas, e localização de
operandos (escalares em registos, e estruturados em memória).
(NE (Cap2),
P&H (Ch3.1,
3.2, 3.3, 3.4, 3.5) )
23-Out-01 (TP3)
Apresentação da norma IEEE 754 na representação de valores em vírgula
flutuante, com análise de exemplos.
Introdução à metodologia de análise/diálogo sobre terminologia e gíria informática
(tema da aula seguinte).
(NE (Anexo B),
ME (TP3), Sta (Ch8.4), P&H
(Ch4.8), Tan (Annex B); recomenda-se a ainda uma leitura sobre a história
do IEEE 754, bem como uma visita ao site
oficial da norma IEEE 754)
24-Out-01 (T)
Análise
do funcionamento dum processador e respectivo instruction set:
introdução às operações de transferência de informação - com análise de formatos
de instruções (comprimento, campos numa instrução, variação de formatos e
pseudo-instruções).
(NE (Cap2),
P&H (Ch3.1,
3.2, 3.3, 3.4, 3.5) )
Semana 5
29-Out-01 (TP1+TP2)
Análise/diálogo/avaliação sobre terminologia e gíria informática em redor da temática
dos processadores e de memórias.
(
HCW (artigos em
discussão/diálogo: H1
e H2, 565KB)
30-Out-01 (T)
Análise
do funcionamento dum processador e respectivo instruction set:
continuação da análise das operações de transferência de informação;
modo e número de operandos a especificar em operações aritméticas e lógicas
(0-, 1-, 2- e 3-operandos) e análise de casos concretos
(NE (Cap4),
P&H (Ch3.1,
3.2, 3.3, 3.4, 3.5) )
30-Out-01 (TP3)
Análise/diálogo/avaliação sobre terminologia e gíria informática em redor da temática
dos processadores e de memórias.
(
HCW (artigos em
discussão/diálogo: H1
e H2, 565KB) )
31-Out-01 (T)
Modelo
de programação dum processador: registos visíveis ao programador em arquitecturas
RISC (para inteiros e para fp, e em detalhe no MIPS) e noutras arquitecturas; convenção
na utilização dos registos no MIPS; modos de acesso aos operandos, instruções de input/output,
e ordenação de bytes numa palavra (little-endian, big-endian);
apresentação de um instruction set típico.
(NE (Cap4),
P&H (Ch3.1,
3.2, 3.3, 3.4, 3.5) )
Semana 6
05-Nov-01 (TP1+TP2)
Análise/diálogo/avaliação sobre terminologia e gíria informática em redor da temática
dos processadores e de memórias.
(
HCW (artigos em
discussão/diálogo: H1
e H2, 565KB); exercício de FP em atraso: enunciado
e soluções
)
06-Nov-01 (T)
Metodologia
de construção de programas em assembly: análise detalhada da implementação
de instruções (para transferência de informação e operações
aritméticas/lógicas)
num processador genérico, e num em particular (MIPS), com exemplos de utilização; análise do formato
dessas instruções em binário (no MIPS).
(NE (Cap5),
P&H (Ch3.1, a 3.6, Annex
A1 e A10) )
06-Nov-01 (TP3)
Análise/diálogo/avaliação sobre terminologia e gíria informática em redor da temática
dos processadores e de memórias.
(
HCW (artigos em
discussão/diálogo: H1
e H2, 565KB); exercício de FP em atraso: enunciado
e soluções
)
07-Nov-01 (T)
Metodologia
de construção de programas em assembly: análise detalhada da implementação
de instruções para controlo do fluxo de execução (inc. invocação e retorno de rotinas/funções)
num processador genérico, e num em particular (MIPS), com exemplos de utilização; análise do formato
dessas instruções em binário (no MIPS).
(NE (Cap5),
P&H (Ch3.1, a 3.6, Annex A1 e A10) )
Semana 7
12-Nov-01 (TP1+TP2)
Mecanismos para execução de programas: edição de texto (de programas source),
tradução de programas source para níveis de abstracção mais baixos
- pré-compilador, compilador e assembler - e ligação de ficheiros
objecto num executável (linker); análise do formato dum ficheiro
objecto; o papel do loader
na execução de programas. Introdução ao ambiente laboratorial em Linux/IA32
(gcc, hexdump, as, gdb)
(NE (Cap3),
P&H (Annex
A1 a A4); o ambiente laboratorial é introduzido em Basic
concepts (Ch1 a 8) e nos manuais de comandos do Linux; enunciado do
trabalho de casa aqui,
para ser entregue, impreterivelmente, no lab. da disciplina até
às 11h00 de segunda 19-Nov-01, para avaliação)
13-Nov-01 (T)
Análise do nível ISA dum caso concreto: Intel IA-32 em Linux. Introdução da
arquitectura da família x86 da Intel, nomeadamente a estrutura de
registos visíveis ao programador/compilador, os formatos de instruções e os
tipos e localização de operandos.
(Tan (textos/figuras relativos ao Pentium no Ch5); alguns dos acetatos usados são
os da aula
5 do Prof. Bryant (CMU); material complementar disponibilizado em Machine-Level
Programs on Linux/IA32 (Ch1 a 3) )
13-Nov-01 (TP3)
Mecanismos para execução de programas: edição de texto (de programas source),
tradução de programas source para níveis de abstracção mais baixos -
pré-processador, compilador e assembler - e ligação de ficheiros
objecto num executável (linker); análise do formato dum ficheiro
objecto; o papel do loader na execução de programas. Introdução ao
ambiente laboratorial em Linux/IA32 (gcc, hexdump, as, gdb)
(NE (Cap3),
P&H (Annex
A1 a A4); o ambiente laboratorial é introduzido em Basic
concepts (Ch1 a 8) e nos manuais de comandos do Linux; enunciado do
trabalho de casa aqui,
para ser entregue, impreterivelmente, no lab. da disciplina até
às 11h00 de segunda 19-Nov-01, para avaliação)
14-Nov-01 (T)
Análise do nível ISA do IA-32 em Linux: análise das instruções mais comuns
para transferência de informação, e para execução de operações
aritméticas/lógicas.
(Alguns dos acetatos usados são os da aula
5 do Prof. Bryant (CMU); material complementar disponibilizado em Machine-Level
Programs on Linux/IA32 (Ch3 e 4) )
Semana 8
19-Nov-01 (TP1+TP2)
Resolução interactiva/participativa dos “Exercícios
de Programação 1” propostos para avaliação, com complemento da análise do
nível ISA do IA-32 em Linux.
(Alguns dos acetatos usados são os da aula
5 do Prof. Bryant (CMU); material complementar disponibilizado em Basic
concepts (Ch8 e 9 da Versão 2); enunciado do trabalho de casa aqui,
para ser entregue, impreterivelmente, no lab. da disciplina até
às 11h00 de segunda 26-Nov-01, para avaliação)
20-Nov-01 (T)
Análise do nível ISA do IA-32 em Linux: revisão
de técnicas na execução de operações aritméticas/lógicas e no controlo do
fluxo de execução de instruções (códigos de condição e codificação de jumps).
(Alguns dos acetatos usados são os da aula
5 do Prof. Bryant (CMU); material complementar
disponibilizado em Basic
concepts (Ch8 a 10 da Versão 2) e em Machine-Level
Programs on Linux/IA32 (Ch3 a 5) )
20-Nov-01 (TP3)
Resolução interactiva/participativa dos “Exercícios
de Programação 1” propostos para avaliação, com complemento da análise do
nível ISA do IA-32 em Linux.
(Alguns dos acetatos usados são os da aula
5 do Prof. Bryant (CMU); material complementar disponibilizado em Basic
concepts (Ch8 e 9 da Versão 2); enunciado do trabalho de casa aqui,
para ser entregue, impreterivelmente, no lab. da disciplina até
às 11h00 de segunda 26-Nov-01, para avaliação)
21-Nov-01 (T)
Análise do nível ISA do IA-32 em Linux: técnicas
de codificação de estruturas de controlo presentes em C, incluindo o controlo
de ciclos; introdução ao modelo de funcionamento das funções/procedimentos
em HLL (C em particular) e sua implementação ao nível da linguagem máquina
do IA-32.
(Alguns dos acetatos usados são os da aula
6 do Prof. Bryant (CMU); material complementar
disponibilizado em Basic
concepts (Ch10 e 11 da Versão 2) e em Machine-Level
Programs on Linux/IA32 (Ch5 e 6) )
Semana 9
26-Nov-01 (TP1+TP2)
Não houve aula; será compensada com uma sessão
extraordinária a 05-Dez-01.
(Enunciado do trabalho de casa aqui,
para ser entregue, impreterivelmente, no lab. da disciplina até
às 10h00 de terça 04-Dez-01, para avaliação)
27-Nov-01 (T)
Metodologia de construção de programas em assembly:
análise detalhada da estrutura de instruções para invocação/retorno de
rotinas e suporte à invocação de procedimentos/funções; análise
comparativa do modelo de implementação numa arquitectura RISC versus
IA-32.
(Alguns dos acetatos usados são os da aula
7 do Prof. Bryant (CMU); NE (Cap5),
P&H (Ch 3.10, Annex
A6 ), Machine-Level
Programs on Linux/IA32 (Ch6) )
27-Nov-01 (TP3)
Resolução interactiva/participativa dos “Exercícios
de Programação 2” propostos para avaliação, com complemento da análise do
nível ISA do IA-32 em Linux.
(Alguns dos acetatos usados são os da aula
6 do Prof. Bryant (CMU); material complementar disponibilizado em Basic
concepts (Ch10 e 11 da Versão 2); enunciado do trabalho de casa aqui,
para ser entregue, impreterivelmente, no lab. da disciplina até
às 10h00 de terça 04-Dez-01, para avaliação)
28-Nov-01 (T)
Metodologia de construção de programas em assembly:
análise de exemplos de funções com IA-32.
(Acetatos usados: da aula
7 do Prof. Bryant (CMU) )
Semana 10
03-Dez-01 (TP1+TP2)
Resolução interactiva/participativa dos “Exercícios
de Programação 2” propostos para avaliação, com complemento da análise do
nível ISA do IA-32 em Linux.
(Alguns dos acetatos usados são os da aula
6 do Prof. Bryant (CMU); material complementar disponibilizado em Basic
concepts (Ch10 e 11 da Versão 2); enunciado do trabalho de casa aqui,
para ser entregue, impreterivelmente, no lab. da disciplina até
às 11h00 de segunda 10-Dez-01, para avaliação)
04-Dez-01 (T)
Medição
de desempenho de computadores: identificação das características a medir num
computador - latência e throughput - e no tempo de execução de programas em
computador (inc. CPUtime).
(NE (Cap10),
P&H (Ch2.1) )
04-Dez-01 (TP3)
Resolução interactiva/participativa dos “Exercícios
de Programação 3” propostos para avaliação.
( Machine-Level
Programs on Linux/IA32 (Ch6); enunciado do trabalho de casa aqui,
para ser entregue, impreterivelmente, no lab. da disciplina até
às 11h00 de segunda 10-Dez-01, para avaliação )
05-Dez-01 (T)
Medição
de desempenho de computadores: noção de processo e de comutação de
processos, e sua influência na medição do desempenho; métricas na medição do desempenho do par
processador-memória, com dedução de equação para cálculo do CPUtime para um
dado programa; factores da arquitectura que influenciam o seu desempenho.
(NE (Cap10),
P&H (Ch2.2, e 2.3); alguns dos acetatos usados são os das aula
16 e aula
18 do Prof. Bryant (CMU), e referentes à Sec.2
do Ch.8 e ao Ch.9
do seu livro)
05-Dez-01 (TP1+TP2)
(Sessão extraordinária para compensação da falta à aula de 26-Nov-01)
Resolução interactiva/participativa dos “Exercícios
de Programação 3” propostos para avaliação.
( Machine-Level
Programs on Linux/IA32 (Ch6); enunciado do trabalho de casa aqui,
para ser entregue, impreterivelmente, no lab. da disciplina até
às 11h00 de segunda 10-Dez-01, para avaliação )
Semana 11
10-Dez-01 (TP1+TP2)
Resolução interactiva/participativa dos “Exercícios
de Programação 4” propostos para avaliação.
11-Dez-01 (T)
Medição
de desempenho de computadores: análise da equação para cálculo do CPUtime para um
dado programa e factores da arquitectura que influenciam o seu desempenho. Breve
introdução ao funcionamento dum processador em pipeline e respectivas
limitações.
(NE (Cap10),
P&H (Ch2.2, e 2.3); as introduções ao cap. 6 de P&H (e em 6.4 e 6.5),
complementadas com parte de NE (Cap13),
contêm informação relativa ao pipeline)
11-Dez-01 (TP3)
Resolução interactiva/participativa dos “Exercícios
de Programação 4” propostos para avaliação.
12-Dez-01 (T)
Medição de tempos de execução de programas: aplicação de conceitos à análise prática de
desempenho de sistemas baseados em IA-32 em ambiente Linux; referência à medição de tempos
com contadores intervalares (do Unix) e com contadores de ciclos de clock
(no IA-32);
(Acetatos usados são os das aula
16 e aula
18 do Prof. Bryant (CMU), e referentes à Sec.2
do Ch.8 e ao Ch.9
do seu livro
Semana 12
17-Dez-01 (TP1+TP2)
Análise da resolução de exercícios pendentes.
Realização
dos inquéritos de avaliação da disciplina. Comentários finais ao funcionamento da
disciplina.
18-Dez-01 (T)
Organização
hierárquica da memória: introdução aos princípios da localidade - espacial e
temporal - com uso de metáfora, às alternativas de implementação (cache,
memória virtual e disco), e propriedades - inclusão e consistência. Conceitos
associados a cada nível da hierarquia: bloco (linha/página), hit, hit rate,
miss,
page fault, miss rate, miss penalt.
(NE (Cap11),
P&H (Ch7.1, 7.2, e 7.4))
18-Dez-01 (TP3)
Análise da resolução de exercícios pendentes.
Realização
dos inquéritos de avaliação da disciplina. Comentários finais ao funcionamento da
disciplina.
19-Dez-01 (T)
Organização
hierárquica da memória: caracterização quantitativa de níveis da hierarquia
e sua influência no desempenho.
Análise de implementação de memória cache: colocação e modo de acesso às
linhas, estratégias de substituição de linhas e estratégias de escrita.
Impacto da hierarquia de memória no desempenho dum computador.
(NE (Cap11),
P&H (Ch7.1, 7.2, e 7.4))