Sistemas de Computação
Informação geral
Código: 14268
Área científica predominante: Informática
Regime: Semestral
ECTS: 5
Tipo de ensino: Presencial
Carga Horária
Trabalho autónomo: 80 horas
Aulas:
30 horas - Práticas Laboratoriais
30 horas - Teóricas
Objetivos de ensino
Esta UC é lecionada em diversos ciclos de estudos de licenciatura.
A caraterização apresentada é feita a um nível de abstração que possibilite que, em diferentes licenciaturas, alguns aspetos possam ser objeto de maior ou menor aprofundamento.
Resultados de aprendizagem
Ao completar com sucesso a UC cada estudante deverá demonstrar que adquiriu os seguintes conhecimentos, capacidades e aptidões:
- reconhecer a organização e estrutura funcional dum computador;
- adquirir capacidades para acompanhar a evolução da estrutura dos sistemas de computação;
- reconhecer as principais características da arquitetura de um instruction set;
- analisar a funcionalidade de programas imperativos (tipo C), com recurso ao assembly e a linguagem máquina;
- aplicar técnicas com impacto no desempenho na execução de código;
- analisar código compilado para linguagem máquina;
- aptidões transversais, nomeadamente a ter desenvolvido a capacidade de raciocínio na resolução de problemas, e a capacidade de comunicação escrita e oral
Programa sucinto
1. Organização e estrutura de um computador
A informação num computador: representação da informação (texto, números, imagens e comandos para o processador); representação binária de inteiros e de valores reais (inc. norma IEEE 754).
Estrutura interna dum computador; execução de instruções; níveis de abstração; execução de programas num ambiente laboratorial (x86 em Linux).
2. Arquitetura do instruction set
Estrutura dum instruction set: operações/operandos, acesso a dados, tipos e formatos de instruções, modelo de programação dum processador.
O nível ISA do x86 em Linux: operações aritméticas e acesso a operandos, estruturas de controlo em C, funções/procedimentos.
Análise comparativa do instruction set de outras arquiteturas com a do IA-32.
3. Avaliação do desempenho de computadores
Metodologia de avaliação de desempenho.
Fatores da arquitetura dum computador no seu desempenho.
Bibliografia essencial
- Computer Systems: A Programmer’s Perspective (CS:APP), Randal Bryant and David O’Hallaron, Pearson, 3rd Ed., 2015.
- Computer Organization and Design: the hardware/software interface, D.Patterson, J.Henessy, Morgan Kaufmann Publishers, 4th Ed., 2011.
Métodos de ensino
Aulas teóricas: exposição/discussão de conceitos e exemplificação da sua aplicação, com divulgação dos slides usados nas atividades letivas.
Resolução em casa de problemas de aplicação de conceitos e preparação prévia dos trabalhos experimentais, de acordo com guiões previamente disponibilizados.
Práticas laboratoriais: discussão coletiva dos resultados dos trabalhos de casa e aplicação de técnicas de interpretação de código em ambiente laboratorial controlado, usando um servidor remoto acessível a todos os alunos, quer durante as aulas quer fora delas.
Métodos de avaliação
- Participação dos alunos na preparação e execução das práticas experimentais
- Prova(s) escrita(s) individual
- Exame de recurso