Sistemas de Computação
Objetivos
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
- 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). - 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. - Avaliação do desempenho de computadores
Metodologia de avaliação de desempenho. Fatores da arquitetura dum computador no seu desempenho
Bibliografia
- 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