![]() |
Sistemas de Computação |
Semana: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15
Última Modificação:25 Mai 2016
departamento de informática | |
Nota 1: Os sumários das aulas que já ocorreram estão a preto, enquanto as propostas de sumário para as sessões seguintes estão a cinzento. Sempre que haja documentação a disponibilizar pertinente para uma sessão que ainda não decorreu, essa indicação deixa de estar a cinzento.
Nota 2: As referências nos sumários a textos de consulta estão abreviadas para Sta (livro/resumo de Stallings, sugerido como complementar em anos anteriores), Bry (livro/resumo de Bryant), e P&H (livro de Patterson & Hennessy ); são normalmente seguidas do respectivo capítulo/secção, e quando existe em formato electrónico é indicado o respectivo link.
Semana
1
08-fev-16 (PL1, PL10)
Não houve aulas ainda.
09-fev-16 (T)
(transferida para 12-fev-16)
Metodologia de funcionamento da disciplina: princípios básicos, modo de funcionamento,
elementos e modelos de avaliação (informação complementar em formato electrónico, e relativo ao ano em
curso, em
http://gec.di.uminho.pt/miei/sc/).
Introdução aos conceitos de "computador" e de "informação" no contexto
de um computador.
Introdução à representação da informação no
computador utilizando números binários (bits):
texto e respectivos alfabetos (referência aos códigos Baudot, Braille, ASCII 7/8 bits e UNICODE), números (referência a
inteiros e reais), imagens e
codificação dos comandos de controlo de um processador.
(Notas de estudo: cópia dos slides
ISC_1
e
texto
ISC
(Cap.1) ).
09-fev-16 (PL3, PL6, PL7, PL9)
Não houve aulas ainda.
10-fev-16 (PL2, PL5)
Não houve aulas ainda.
11-fev-16 (PL4, PL8)
Não houve aulas ainda.
Semana 2
15-fev-16 (PL1, PL10)
Sistemas de numeração e conversão
de bases. Introdução à representação binária
de valores positivos e negativos: sinal e amplitude.
(Notas de estudo: notas sobre
representação binária de números;
enunciado do TPC1, para ser entregue, impreterivelmente, até à hora de início da sessão
PL
seguinte).
16-fev-16 (T)
Estrutura interna dum computador:
estrutura e funções do processador (a unidade de controlo, o conjunto
de registos e as unidades funcionais), a organização da memória (noção
de endereço e de célula) e o sistema de interligação (conjunto de
sinais em cada módulo, CPU, memória, I/O).
Interligação de componentes
num computador: interacções entre componentes, análise de ligações - do
CPU, da memória primária e dos módulos de I/O - e caracterização das estruturas
de ligação, com destaque para a arquitectura típica de
um PC.
(Notas de estudo:
slides completos de
ISC_1
(a versão da semana anterior é uma versão reduzida) e slides
ISC_2 e texto
ISC
(Cap.2); complementar: Sta
Ch1.1
e 1.2 e
Ch
3.1, 3.2).
16-fev-16 (PL3, PL6, PL7, PL9)
Sistemas de numeração e conversão
de bases. Introdução à representação binária
de valores positivos e negativos: sinal e amplitude.
(Notas de estudo: notas sobre
representação binária de números;
enunciado do TPC1, para ser entregue, impreterivelmente, até à hora de início da sessão
PL
seguinte).
17-fev-16 (PL2,
PL5)
Sistemas de numeração e conversão
de bases. Introdução à representação binária
de valores positivos e negativos: sinal e amplitude.
(Notas de estudo: notas sobre
representação binária de números;
enunciado do
TPC1, para ser entregue, impreterivelmente, até à hora de início da sessão
PL
seguinte).
18-fev-16 (PL4, PL8)
Sistemas de numeração e conversão
de bases. Introdução à representação binária
de valores positivos e negativos: sinal e amplitude.
(Notas de estudo: notas sobre
representação binária de números;
enunciado do
TPC1, para ser entregue, impreterivelmente, até à hora de início da sessão
PL
seguinte).
Semana 3
22-fev-16 (PL1, PL10)
Continuação da representação binária de valores
positivos e negativos: complemento para 1, complemento para 2, por excesso. Resolução de exercícios com binários inteiros.
(Notas de estudo: mesmas notas sobre representação binária de números; enunciado
do TPC2, para ser entregue, impreterivelmente, até à hora de início da sessão
PL seguinte; ficheiro TPC1r com os resultados
dos exercícios propostos em TPC1).
23-fev-16 (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) e respectivos mecanismos de conversão
(compilação, assembly (montagem) e interpretação); análise detalhada dos
mecanismos na execução de um programa em C numa arquitectura IA-32. Breve
introdução ao modelo de computador von Neumann.
Análise detalhada da execução de uma instrução em linguagem máquina: a
busca de uma instrução à memória, caracterizando os barramentos de endereços,
controlo e de dados, a atualização do apontador para a próxima instrução (IP),
a descodificação duma instrução e a sua execução (incluindo a eventual busca de
operando(s) à memória).
(Notas de estudo: texto ISC (Cap. 3, 4.1 e 4.2) e slides
ISC_3
; complementar: Sta (Ch 3.2) )
23-fev-16 (PL3, PL6, PL7, PL9)
Continuação da representação binária de valores
positivos e negativos: complemento para 1, complemento para 2, por excesso. Resolução de exercícios com binários inteiros.
(Notas de estudo: mesmas notas sobre representação binária de números; enunciado
do TPC2, para ser entregue, impreterivelmente, até à hora de início da sessão
PL seguinte; ficheiro TPC1r com os resultados
dos exercícios propostos em TPC1).
24-fev-16 (PL2, PL5)
Continuação da representação binária de valores
positivos e negativos: complemento para 1, complemento para 2, por excesso. Resolução de exercícios com binários inteiros.
(Notas de estudo: mesmas notas sobre representação binária de números; enunciado
do TPC2, para ser entregue, impreterivelmente, até à hora de início da sessão
PL seguinte; ficheiro TPC1r com os resultados
dos exercícios propostos em TPC1).
25-fev-16 (PL4, PL8)
Continuação da representação binária de valores
positivos e negativos: complemento para 1, complemento para 2, por excesso. Resolução de exercícios com binários inteiros.
(Notas de estudo: mesmas notas sobre representação binária de números; enunciado
do TPC2, para ser entregue, impreterivelmente, até à hora de início da sessão
PL seguinte; ficheiro TPC1r com os resultados
dos exercícios propostos em TPC1).
Semana 4
29-fev-16 (PL1, PL10)
Resolução de exercícios com binários inteiros.
Representação binária de valores reais em vírgula flutuante (noção e vantagens
duma normalização) e apresentação da norma IEEE 754 na representação de valores
em vírgula flutuante.
Exemplos
de exercícios com valores em vírgula flutuante.
(Notas de estudo:
mesmas notas sobre representação binária de números; complementar: Sta (Ch8.4);
enunciado do
TPC3, cuja resolução
deverá ser entregue no início da sessão PL seguinte;
ficheiro
TPC2r
com os resultados dos exercícios propostos em TPC2).
01-mar-16 (T)
Análise
do processador ao nível da arquitectura do instruction set (ISA):
(i) introdução às operações num processador, com análise do n.º de operandos em
cada instrução e à localização de operandos (escalares em registos, e
estruturados em memória), (ii)
registos visíveis ao programador (em arquitecturas RISC e no IA-32),
(iii) modos de acesso aos operandos (em arquitecturas RISC e no IA-32), (iv)tipos de instruções presentes num processador (para
transferência de informação, operações aritméticas e lógicas, para
controlo do fluxo de execução), (v) análise de formatos de instruções (em
processadores RISC e no IA-32), (vi) instruções de input/output, (vii)
ordenação em memória dos
bytes presentes num número constituído por vários bytes (little-endian, big-endian).
(Notas de estudo: ISC
(Cap. 4.3 a 4.5, 5,1 a 5.3 e 5.7), Bry (Ch.1.5 e 1.6); slides
ISC_4
; recomenda-se
ainda a leitura dos slides
ISC_5, relativo a comunicação de dados e
redes, elaborados essencialmente com base no livro "Introdução às
Tecnologias de Informação. Bloco II", de Artur A. Azul, Porto Editora, 2005
(Cap. 6.1))
01-mar-16 (PL3, PL6, PL7, PL9)
Resolução de exercícios com binários inteiros.
Representação binária de valores reais em vírgula flutuante (noção e vantagens
duma normalização) e apresentação da norma IEEE 754 na representação de valores
em vírgula flutuante.
Exemplos
de exercícios com valores em vírgula flutuante.
(Notas de estudo:
mesmas notas sobre representação binária de números; complementar: Sta (Ch8.4);
enunciado do
TPC3, cuja resolução
deverá ser entregue no início da sessão PL seguinte;
ficheiro
TPC2r
com os resultados dos exercícios propostos em TPC2).
02-mar-16 (PL2,
PL5)
Resolução de exercícios com binários inteiros.
Representação binária de valores reais em vírgula flutuante (noção e vantagens
duma normalização) e apresentação da norma IEEE 754 na representação de valores
em vírgula flutuante.
Exemplos
de exercícios com valores em vírgula flutuante.
(Notas de estudo:
mesmas notas sobre representação binária de números; complementar: Sta (Ch8.4);
enunciado do
TPC3, cuja resolução
deverá ser entregue no início da sessão PL seguinte;
ficheiro
TPC2r
com os resultados dos exercícios propostos em TPC2).
03-mar-16 (PL4,
PL8)
Resolução de exercícios com binários inteiros.
Representação binária de valores reais em vírgula flutuante (noção e vantagens
duma normalização) e apresentação da norma IEEE 754 na representação de valores
em vírgula flutuante.
Exemplos
de exercícios com valores em vírgula flutuante.
(Notas de estudo:
mesmas notas sobre representação binária de números; complementar: Sta (Ch8.4);
enunciado do
TPC3, cuja resolução
deverá ser entregue no início da sessão PL seguinte;
ficheiro
TPC2r
com os resultados dos exercícios propostos em TPC2).
07-mar-16 (PL1, PL10)
Análise crítica da resolução
de exercícios com valores em vírgula flutuante.
Análise de exemplo de execução duma instrução num par processador-memória, como
introdução ao guião teatral da sessão experimental da semana seguinte, baseada numa representação teatral.
(Notas de estudo: texto do
enunciado do
TPC4 (e respectivo guião teatral), cuja resolução
deverá ser entregue no início da sessão PL seguinte; ficheiro
TPC3r
com os resultados dos exercícios propostos em TPC3).
08-mar-16 (T)
Análise do nível ISA do IA-32
em Linux: modelo da arquitectura ISA do IA-32 no desenvolvimento de programas; modos de especificação de operandos
e de modos de os aceder nas instruções mais comuns de transferência de
informação e em operações aritméticas/lógicas.
(Notas de estudo: a
bibliografia de base desta e das próximas aulas sobre o nível ISA segue
quase exclusivamente o livro CSAPP, com destaque para o Ch.3;
as noções apresentadas
e analisadas nos dois primeiros capítulos do livro foi sendo coberta
pelo texto entretanto disponibilizado (ISC), enquanto esta aula e a
seguinte seguem essencialmente as secções 3.4 e 3.5 do livro; o
ficheiro electrónico com a versão preliminar dos três primeiros
capítulos do livro encontra-se disponível, para estudo,
aqui,
1.51MB; slides
ISA_1 e
ISA_2 )
08-mar-16 (PL3, PL6, PL7, PL9)
Análise crítica da resolução
de exercícios com valores em vírgula flutuante.
Análise de exemplo de execução duma instrução num par processador-memória, como
introdução ao guião teatral da sessão experimental da semana seguinte, baseada numa representação teatral.
(Notas de estudo: texto do
enunciado do
TPC4 (e respectivo guião teatral), cuja resolução
deverá ser entregue no início da sessão PL seguinte; ficheiro
TPC3r
com os resultados dos exercícios propostos em TPC3).
09-mar-16 (PL2,
PL5)
Análise crítica da resolução
de exercícios com valores em vírgula flutuante.
Análise de exemplo de execução duma instrução num par processador-memória, como
introdução ao guião teatral da sessão experimental da semana seguinte, baseada numa representação teatral.
(Notas de estudo: texto do
enunciado do
TPC4 (e respectivo guião teatral), cuja resolução
deverá ser entregue no início da sessão PL seguinte; ficheiro
TPC3r
com os resultados dos exercícios propostos em TPC3).
10-mar-16 (PL4,
PL8)
Análise crítica da resolução
de exercícios com valores em vírgula flutuante.
Análise de exemplo de execução duma instrução num par processador-memória, como
introdução ao guião teatral da sessão experimental da semana seguinte, baseada numa representação teatral.
(Notas de estudo: texto do
enunciado do
TPC4 (e respectivo guião teatral), cuja resolução
deverá ser entregue no início da sessão PL seguinte; ficheiro
TPC3r
com os resultados dos exercícios propostos em TPC3).
14-mar-16 (PL1, PL10)
Análise crítica da
resolução de exercícios de codificação binária de instruções do ISA-32 e da
análise de tráfego nos barramentos entre o CPU e a memória na execução de
instruções.
Treino das capacidades de visualização de
conceitos sobre sistemas de computação, através de um exercício experimental com
estudantes-atores: 8 atores representaram a execução de instruções em
linguagem máquina (corpo de uma função em C compilada para IA-16).
(Notas de estudo: texto do
guião teatral foi divulgado com o TPC4;
ficheiro
TPC4r
com os resultados dos exercícios propostos)
15-mar-16 (T)
Análise do nível ISA do IA-32 em Linux:
instruções específicas para manuseamento de apontadores e
para controlo do fluxo de execução de instruções (conceito de códigos
de condição e estrutura da codificação de jumps);
técnicas de codificação de
estruturas de controlo presentes em C: if-else (generalização), do-while,
while,
for, switch.
(Notas de estudo: Bry (Ch 3.6), e slides
ISA_3 )
15-mar-16 (PL3, PL6, PL7, PL9)
Análise crítica da
resolução de exercícios de codificação binária de instruções do ISA-32 e da
análise de tráfego nos barramentos entre o CPU e a memória na execução de
instruções.
Treino das capacidades de visualização de
conceitos sobre sistemas de computação, através de um exercício experimental com
estudantes-atores: 8 atores representaram a execução de instruções em
linguagem máquina (corpo de uma função em C compilada para IA-16).
(Notas de estudo: texto do
guião teatral foi divulgado com o TPC4;
ficheiro
TPC4r
com os resultados dos exercícios propostos)
16-mar-16 (PL2,
PL5)
Análise crítica da
resolução de exercícios de codificação binária de instruções do ISA-32 e da
análise de tráfego nos barramentos entre o CPU e a memória na execução de
instruções.
Treino das capacidades de visualização de
conceitos sobre sistemas de computação, através de um exercício experimental com
estudantes-atores: 8 atores representaram a execução de instruções em
linguagem máquina (corpo de uma função em C compilada para IA-16).
(Notas de estudo: texto do
guião teatral foi divulgado com o TPC4;
ficheiro
TPC4r
com os resultados dos exercícios propostos)
17-mar-16 (PL4,
PL8)
Análise crítica da resolução
de exercícios de codificação binária de instruções do ISA-32 e da análise de
tráfego nos barramentos entre o CPU e a memória na execução de instruções.
Treino das capacidades de visualização de
conceitos sobre sistemas de computação, através de um exercício experimental com
estudantes-atores: 8 atores representaram a execução de instruções em
linguagem máquina (corpo de uma função em C compilada para IA-16).
(Notas de estudo: texto do
guião teatral foi divulgado com o TPC4;
ficheiro
TPC4r
com os resultados dos exercícios propostos)
Semana 7
28-mar-16 (PL1, PL10)
Não houve aulas (Férias da Páscoa).
29-mar-16 (T)
Análise do nível ISA do IA-32 em Linux:
introdução às propriedades das funções em C para análise do suporte
requerido ao nível do ISA;
exemplo com análise detalhada da estrutura do código e dos contextos
para suporte à invocação e regresso de procedimentos/funções em HLL (C em particular); análise da
stack no caso de funções aninhadas e recursivas.
(Notas de estudo: Bry (Ch 3.7), slides
ISA_4 e um subconjunto desses slides, com
animações,
em PowerPoint)
29-mar-16 (PL3, PL6, PL7, PL9)
Continuação do exercício experimental da semana anterior.
(Notas de estudo: o enunciado do
TPC5, contendo um guião laboratorial, e
cuja resolução dos exercícios propostos deverá
ser entregue até à hora de início da sessão PL da semana seguinte; ficheiro
TPC4r
reformulado com o resultado do guião teatral; notas
adicionais para este trabalho laboratorial: (i) as sessões
laboratoriais da próxima semana serão num dos Lab. Informática do GAE no CP2
(Piso 2), (ii) a plataforma computacional a usar
sempre será um servidor Unix (Linux) com as ferramentas GCC adequadas para SC,
acessível remotamente (ler o guião para saber como),e (iii) disponibiliza-se
aqui uma
introdução ao ambiente Unix.)
30-mar-16 (PL2,
PL5)
Continuação do exercício experimental da semana anterior.
(Notas de estudo: o enunciado do
TPC5, contendo um guião laboratorial, e
cuja resolução dos exercícios propostos deverá
ser entregue até à hora de início da sessão PLda semana seguinte; ficheiro
TPC4r
reformulado com o resultado do guião teatral; notas
adicionais para este trabalho laboratorial: (i) as sessões
laboratoriais da próxima semana serão num dos Lab. Informática do GAE no CP2
(Piso 2), (ii) a plataforma computacional a usar
sempre será um servidor Unix (Linux) com as ferramentas GCC adequadas para SC,
acessível remotamente (ler o guião para saber como),e (iii) disponibiliza-se
aqui uma
introdução ao ambiente Unix.)
31-mar-16 (PL4,
PL8)
Continuação do exercício experimental da semana anterior.
(Notas de estudo: o enunciado do
TPC5,
contém um guião laboratorial, e a resolução dos exercícios propostos deverá
ser entregue até à hora de início da sessão PL da semana seguinte; ficheiro
TPC4r
reformulado com o resultado do guião teatral;
notas
adicionais para este trabalho laboratorial: (i) as sessões
laboratoriais da próxima semana serão num dos Lab. Informática do GAE no CP2
(Piso 2), (ii) a plataforma computacional a usar
sempre será um servidor Unix (Linux) com as ferramentas GCC adequadas para SC,
acessível remotamente (ler o guião para saber como),e (iii) disponibiliza-se
aqui uma
introdução ao ambiente Unix.)
Semana 8
04-abr-16 (PL1, PL10)
Continuação do exercício experimental da semana anterior.
(Notas de estudo: o enunciado do
TPC5, contendo um guião laboratorial, e
cuja resolução dos exercícios propostos deverá
ser entregue até à hora de início da sessão PL da semana seguinte; ficheiro
TPC4r
reformulado com o resultado do guião teatral; notas
adicionais para este trabalho laboratorial: (i) as sessões
laboratoriais da próxima semana serão num dos Lab. Informática do GAE no CP2
(Piso 2), (ii) a plataforma computacional a usar
sempre será um servidor Unix (Linux) com as ferramentas GCC adequadas para SC,
acessível remotamente (ler o guião para saber como),e (iii) disponibiliza-se
aqui uma
introdução ao ambiente Unix.)
05-abr-16
(T)
Evolução das tecnologias
e eficiência: caracterização das arquitecturas RISC; oportunidades para melhorar o desempenho de sistemas de computação: com
introdução de paralelismo ao nível da instrução (paralelismo desfasado, pipeline; ao nível dos dados,
computação vetorial; paralelismo
"real", VLIW e super-escalaridade) e no acesso à memória e sua hierarquização (interleaving,
data-width, cache).
Evolução da arquitectura IA-32 nos processadores da Intel, do i8086 ao Haswell,
passando pelas evoluções para 64-bits (Intel 64) e do cálculo vetorial, e pelo
aumento significativo no nº de cores na arquitetura Many Integrated Core, MIC,
da Intel (Xeon Phi).
(Notas de estudo: novo conjunto de
slides da série ISC,
ISC_6,
que poderão ser complementados com vários sites na Web a pesquisar a partir do Wikipedia)
05-abr-16
(PL3, PL6, PL7, PL9)
Introdução aos níveis de
abstracção dum computador, em ambiente laboratorial em Linux/IA-32, e
respectivos mecanismos de conversão e análise
(gcc,
objdump,
gdb).
(Notas de estudo: o texto do guião laboratorial foi divulgado com o enunciado do
TPC5, na semana anterior, estando aqui a sua resolução; Bry (Ch. 3.2) tem informação que complementa o material coberto nesta
sessão laboratorial; enunciado do
TPC6,
cuja resolução deverá ser entregue no início da sessão
PL seguinte, que decorrerá como normalmente numa sala de aula e não no
laboratório)
06-abr-16 (PL2, PL5)
Introdução aos níveis de
abstracção dum computador, em ambiente laboratorial em Linux/IA-32, e
respectivos mecanismos de conversão e análise
(gcc,
objdump,
gdb).
(Notas de estudo: o texto do guião laboratorial foi divulgado com o enunciado do
TPC5, na semana anterior, estando aqui a sua resolução; Bry (Ch. 3.2) tem informação que complementa o material coberto nesta
sessão laboratorial; enunciado do
TPC6,
cuja resolução deverá ser entregue no início da sessão
PL seguinte, que decorrerá como normalmente numa sala de aula e não no
laboratório)
07-abr-16 (PL4, PL8)
Introdução aos níveis de
abstracção dum computador, em ambiente laboratorial em Linux/IA-32, e
respectivos mecanismos de conversão e análise
(gcc,
objdump,
gdb).
(Notas de estudo: o texto do guião laboratorial foi divulgado com o enunciado do
TPC5, na semana anterior, estando aqui a sua resolução;
Bry (Ch. 3.2) tem informação que complementa o material coberto nesta
sessão laboratorial; enunciado do
TPC6,
cuja resolução deverá ser entregue no início da sessão
PL seguinte, que decorrerá como normalmente numa sala de aula e não no
laboratório)
Semana 9
11-abr-16 (PL1, PL10)
Introdução aos níveis de
abstracção dum computador, em ambiente laboratorial em Linux/IA-32, e
respectivos mecanismos de conversão e análise
(gcc,
objdump,
gdb).
(Notas de estudo: o texto do guião laboratorial foi divulgado com o enunciado do
TPC5, na semana anterior, estando aqui a sua resolução;
Bry (Ch. 3.2) tem informação que complementa o material coberto nesta
sessão laboratorial; enunciado do
TPC6,
cuja resolução deverá ser entregue no início da sessão
PL seguinte, que decorrerá como normalmente numa sala de aula e não no
laboratório)
12-abr-16
(T)
Análise do nível ISA do IA-32 em Linux:
revisão dos modelos
Intel 64 e RISC versus CISC;
análise comparativa do modelo de implementação de funções numa
arquitectura Intel 64 e numa RISC (MIPS)
versus IA-32; .
(Notas de estudo: slides
ISA_5
)
12-abr-16
(PL3, PL6, PL7, PL9)
Resolução de alguns exercícios do TPC6 (operações e
acessos a operandos, e instruções de salto, do IA-32 em Linux).
(Notas de estudo:
enunciado do
TPC7,
com guião laboratorial incluído, cuja resolução deverá ser entregue no início da sessão
laboratorial; a próxima sessão PL será no mesmo laboratório que a última sessão
experimental;
exercícios resolvidos do TPC6r )
13-abr-16 (PL2, PL5)
Resolução de alguns exercícios do TPC6 (operações e
acessos a operandos, e instruções de salto, do IA-32 em Linux).
(Notas de estudo:
enunciado do
TPC7,
com guião laboratorial incluído, cuja resolução deverá ser entregue no início da sessão
laboratorial; a próxima sessão PL será no mesmo laboratório que a última sessão
experimental;
exercícios resolvidos do TPC6r )
14-abr-16 (PL4, PL8)
Resolução de alguns exercícios do TPC6 (operações e
acessos a operandos, e instruções de salto, do IA-32 em Linux).
(Notas de estudo:
enunciado do
TPC7,
com guião laboratorial incluído, cuja resolução deverá ser entregue no início da sessão
laboratorial; a próxima sessão PL será no mesmo laboratório que a última sessão
experimental;
exercícios resolvidos do TPC6r )
Semana 10
18-abr-16 (PL1, PL10)
Resolução de alguns exercícios do TPC6 (operações e
acessos a operandos, e instruções de salto, do IA-32 em Linux).
(Notas de estudo:
enunciado do
TPC7,
com guião laboratorial incluído, cuja resolução deverá ser entregue no início da sessão
laboratorial; a próxima sessão PL será no mesmo laboratório que a última sessão
experimental;
exercícios resolvidos do TPC6r )
19-abr-16
(T)
Análise do nível ISA do IA-32 em Linux:
impacto da estruturação da
informação numa HLL na execução desse código, organização em memória e métodos de acesso e manipulação de
dados estruturados em C, com respectiva análise da codificação para assembly
(arrays uni-dimensionais, vulgo vetores,
arrays
multi-dimensionais,
structures, union).
(Notas de estudo: Bry (Ch
3.8 e 3.9); slides
ISA_6 )
19-abr-16
(PL3, PL6, PL7, PL9)
Análise laboratorial de código
C compilado por ferramentas da GNU em Linux para o IA32, contendo
acesso a uma função e uma estrutura de controlo
while (com utilização do depurador
gdb).
(Notas de estudo: o texto do guião laboratorial foi divulgado com o enunciado do
TPC7, na semana anterior; o manual de
utilização do depurador disponibilizado pela GNU está em
Debugging
with DBG
, mas existe
uma cópia local duma versão mais antiga em PDF
aqui (2.04MB); exercícios resolvidos do
TPC7r;
enunciado do
TPC8,
com guião laboratorial incluído, cuja resolução deverá ser entregue até
à hora de início da sessão PL seguinte (novamente em laboratório))
20-abr-16 (PL2, PL5)
Análise laboratorial de código
C compilado por ferramentas da GNU em Linux para o IA32, contendo
acesso a uma função e uma estrutura de controlo
while (com utilização do depurador
gdb).
(Notas de estudo: o texto do guião laboratorial foi divulgado com o enunciado do
TPC7, na semana anterior; o manual de
utilização do depurador disponibilizado pela GNU está em
Debugging
with DBG
, mas existe
uma cópia local duma versão mais antiga em PDF
aqui (2.04MB); exercícios resolvidos do
TPC7r; enunciado do
TPC8,
com guião laboratorial incluído, cuja resolução deverá ser entregue até
à hora de início da sessão PL seguinte (novamente em laboratório))
21-abr-16 (PL4, PL8)
Análise laboratorial de código
C compilado por ferramentas da GNU em Linux para o IA32, contendo
acesso a uma função e uma estrutura de controlo
while (com utilização do depurador
gdb).
(Notas de estudo: o texto do guião laboratorial foi divulgado com o enunciado do
TPC7, na semana anterior; o manual de
utilização do depurador disponibilizado pela GNU está em
Debugging
with DBG
, mas existe
uma cópia local duma versão mais antiga em PDF
aqui (2.04MB); exercícios resolvidos do
TPC7r;
enunciado do
TPC8,
com guião laboratorial incluído, cuja resolução deverá ser entregue até
à hora de início da sessão PL seguinte (novamente em laboratório))
Semana 11
25-abr-16 (PL1, PL10) (transferida para
27-abr-16)
Feriado
26-abr-16
(T)
Avaliação de desempenho na
execução de programas: objetivos e
metodologias na avaliação de desempenho na
execução de programas; potencialidades e limitações dos compiladores; análise de
técnicas de otimização de código independentes da arquitetura do processador
(code motion,
strength
reduction, partilha de sub-expressões), e de medição (escalas temporais,
utilização de contadores de ciclos, métrica de avaliação de desempenho de
aplicações de processamento numérico de arrays, nomeadamente as componentes para o cálculo dos Ciclos
Por
Elemento, CPE).
(Notas de estudo: Bry (Ch.
3.15, Ch. 5.1 a 5.6, Ch. 9.0 e 9.3); sugere-se a leitura de P&H (Ch2.2, e 2.3);
e slides
AvDes_1 )
26-abr-16
(PL3, PL6, PL7, PL9)
Não houve aula
para compensar os feriados de segunda e quinta.
Nota: as aulas de 29-mar para as turmas PL6 e PL7 foram lecionadas neste dia,
embora estejam sumariadas a 29-mar.
27-abr-16 (PL2, PL5)
Não houve aula para compensar os feriados de segunda e
quinta.
27-abr-16 (PL1, PL10)
(transferida de 25-abr-16)
Análise laboratorial de código
C compilado por ferramentas da GNU em Linux para o IA32, contendo
acesso a uma função e uma estrutura de controlo
while (com utilização do depurador
gdb).
(Notas de estudo: o texto do guião laboratorial foi divulgado com o enunciado do
TPC6, na semana anterior; o manual de
utilização do depurador disponibilizado pela GNU está em
Debugging
with DBG
, mas existe
uma cópia local duma versão mais antiga em PDF
aqui (2.04MB); exercícios resolvidos do
TPC7r;
enunciado do
TPC8,
com guião laboratorial incluído, cuja resolução deverá ser entregue até
à hora de início da sessão PL seguinte (novamente em laboratório))
28-abr-16 (PL4,
PL8)
Análise laboratorial do código
C compilado por ferramentas da GNU em Linux para o IA32, contendo
acesso a função e a estrutura de controlo
for, com
utilização do depurador
gdb.
(Notas
de estudo: enunciado do
TPC9, com guião laboratorial incluído,
cuja resolução deverá ser entregue até à hora de início da sessão PL
seguinte;
exercícios
resolvidos do
TPC8r
)
Semana 12
02-mai-16
(PL1, PL10)
Análise laboratorial do código
C compilado por ferramentas da GNU em Linux para o IA32, contendo
acesso a função e a estrutura de controlo
for, com
utilização do depurador
gdb.
(Notas
de estudo: enunciado do
TPC9, com guião laboratorial incluído,
cuja resolução deverá ser entregue até à hora de início da sessão PL
seguinte;
exercícios
resolvidos do
TPC8r
)
03-mai-16 (T)
Avaliação de desempenho na execução de programas: introdução aos fatores da
arquitetura que maior impacto têm no desempenho, indispensável à compreensão
das técnicas de otimização dependentes da máquina: pipeline, superescalaridade,
hierarquia de memória; organização hierárquica da memória: o princípio da
localidade, conceitos associados à cache e seu
desempenho, regras de codificação orientada ao desempenho; introdução à evolução
das arquiteturas para modelos manycore; introdução ao modelo de representação de um par processador-memória (no Intel P6), com
destaque para os modelos de representação do pipeline e da superescalaridade.
(Notas de estudo: Bry (Ch. 5.7); slides
AvDes_2
)
03-mai-16
(PL3, PL6, PL7, PL9)
Análise laboratorial do código
C compilado por ferramentas da GNU em Linux para o IA32, contendo
acesso a função e a estrutura de controlo
for, com
utilização do depurador
gdb.
(Notas
de estudo: enunciado do
TPC9, com guião laboratorial incluído,
cuja resolução deverá ser entregue até à hora de início da sessão PL
seguinte;
exercícios
resolvidos do
TPC8r
)
04-mai-16 (PL2,
PL5)
Análise laboratorial do código
C compilado por ferramentas da GNU em Linux para o IA32, contendo
acesso a função e a estrutura de controlo
for, com
utilização do depurador
gdb.
(Notas
de estudo: enunciado do
TPC9, com guião laboratorial incluído,
cuja resolução deverá ser entregue até à hora de início da sessão PL
seguinte;
exercícios
resolvidos do
TPC8r
)
5-mai-16 (PL1,
PL10)
Execução de funções com deficiências (no IA-32 em Linux), e respectiva
análise do código gerado pelo compilador (em ambiente laboratorial).
(Notas de estudo: enunciado do
TPC10, com guião laboratorial incluído,
cuja resolução deverá ser entregue até à hora de início da sessão PL
seguinte;
exercícios
resolvidos do
TPC9r )
Semana 13 (Semana do Enterro da Gata)
09-mai-16 (PL1,
PL10)
Não houve aula (de acordo com o calendário escolar da EEUM).
10-mai-16 (T)
Não houve aula (de acordo com o calendário escolar da EEUM).
10-mai-16 (PL3,
PL6, PL7, PL9)
Não houve aula (de acordo com o calendário escolar da EEUM).
11-mai-16 (PL2,
PL5)
Não houve aula (de acordo com o calendário escolar da EEUM).
12-mai-16 (PL1,
PL10)
Não houve aula (de acordo com o calendário escolar da EEUM).
Semana 14
16-mai-16 (PL1,
PL10)
Execução de funções com deficiências (no IA-32 em Linux), e respectiva
análise do código gerado pelo compilador (em ambiente laboratorial).
(Notas de estudo: enunciado do
TPC10, com guião laboratorial incluído,
cuja resolução deverá ser entregue até à hora de início da sessão PL
seguinte;
exercícios
resolvidos do
TPC9r )
17-mai-16 (T)
Avaliação de desempenho na execução de
programas: análise de técnicas de otimização dependentes da máquina, nomeadamente a
análise do comportamento dum Intel P6 em operações iterativas e respetivas
consequências - loop
unroll e com a introdução de paralelismo e de hierarquia de
memória.
Outras
técnicas de otimização de desempenho na execução de programas: breve introdução
a técnicas usadas pelo gcc e análise da lei de Amdahl.
(Notas de estudo: Bry (Ch. 5.8, 5.10, 5.11, 5.14, 5.15); slides
AvDes_3 )
17-mai-16 (PL3,
PL6, PL7, PL9)
Execução de funções com deficiências (no IA-32 em Linux), e respectiva
análise do código gerado pelo compilador (em ambiente laboratorial).
(Notas de estudo: enunciado do
TPC10, com guião laboratorial incluído,
cuja resolução deverá ser entregue até à hora de início da sessão PL
seguinte;
exercícios
resolvidos do
TPC9r )
18-mai-16 (PL2,
PL5)
Execução de funções com deficiências (no IA-32 em Linux), e respectiva
análise do código gerado pelo compilador (em ambiente laboratorial).
(Notas de estudo: enunciado do
TPC10, com guião laboratorial incluído,
cuja resolução deverá ser entregue até à hora de início da sessão PL
seguinte;
exercícios
resolvidos do
TPC9r )
19-mai-16 (PL1,
PL10)
Execução de uma desafio
de recuperação de um ficheiro extraviado, com utilização do depurador para
correção de eventuais falhas na reconstrução.
(Notas de estudo: exercícios
resolvidos do
TPC10r )
Semana 15
23-mai-16 (PL1,
PL10)
Execução de uma desafio
de recuperação de um ficheiro extraviado, com utilização do depurador para
correção de eventuais falhas na reconstrução.
(Notas de estudo: exercícios
resolvidos do
TPC10r )
24-mai-16 (T)
Outras
técnicas de otimização de desempenho na execução de programas: técnicas já
exploradas pelo gcc; papel dos profilers na análise de componentes de
código e sua aplicação na caracterização das partes críticas de desempenho de
código. Técnicas de medição de tempos de execução de código, usando contadores
intervalares e contadores de ciclos de clock.
Debate sobre o funcionamento da UC.
(Notas de estudo: Bry (Ch. 6.4 e 6.5; Ch. 9); slides
AvDes_4 )
24-mai-16 (PL3,
PL6, PL7, PL9)
Execução de uma desafio de
recuperação de um ficheiro extraviado, com utilização do depurador para correção
de eventuais falhas na reconstrução.
(Notas de estudo: exercícios
resolvidos do
TPC10r )
25-mai-16 (PL2,
PL5)
Execução de uma desafio de
recuperação de um ficheiro extraviado, com utilização do depurador para correção
de eventuais falhas na reconstrução.
(Notas de estudo: exercícios
resolvidos do
TPC10r )