Departamento de Informática (UM)

Página de Unidade Curricular

DesignaçãoCódigoCursoRegimeRegente

Sistemas de Computação

14268 [J302N1]

Licenciatura em Engenharia Informática [ENGINF]

S2

João Miguel Lobo Fernandes

Objetivos

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.

Programa

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

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.

Resultados da 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.

Método de avaliação

1. Participação dos alunos na preparação e execução das práticas experimentais
2. Prova(s) escrita(s) individual
3. Exame de recurso.

Funcionamento

Turno: T 1; Docente: João Miguel Lobo Fernandes; Dep.: DI; Horas: 30.
Turno: T 2; Docente: João Miguel Lobo Fernandes; Dep.: DI; Horas: 30.
Turno: PL 1; Docente: André Martins Pereira; Dep.: DI; Horas: 30.
Turno: PL 2; Docente: André Martins Pereira; Dep.: DI; Horas: 30.
Turno: PL 3; Docente: André Martins Pereira; Dep.: DI; Horas: 30.
Turno: PL 4; Docente: Paulo Rafael Costa Sousa; Dep.: DI; Horas: 30.
Turno: PL 5; Docente: André Leite Ferreira; Dep.: DI; Horas: 30.
Turno: PL 6; Docente: André Leite Ferreira; Dep.: DI; Horas: 30.
Turno: PL 7; Docente: Paulo Rafael Costa Sousa; Dep.: DI; Horas: 30.
Turno: PL 8; Docente: Paulo Rafael Costa Sousa; Dep.: DI; Horas: 30.
Turno: PL 9; Docente: Manuel José Domingues Alves; Dep.: DI; Horas: 30.
Turno: PL 10; Docente: Manuel José Domingues Alves; Dep.: DI; Horas: 30.

[ Outras UCs do Departamento ]