Arquitetura de Computadores

Objetivos

Conhecimentos

  • Organização geral do hardware de um sistema computacional.
  • Representação no hardware de dados e instruções.
  • Processo de tradução entre os programas em C, o assembly, e a linguagem máquina.
  • Interface de baixo nível para os dispositivos de entradas/saídas.
  • Características das unidades de memória.

Aptidões e competências

  • Programação em C, assembly, e a tradução entre ambos.
  • Compreensão profunda dos vários componentes da arquitetura de Von Neumann 

Caracterização geral

Código

11152

Créditos

9.0

Professor responsável

Pedro Abílio Duarte de Medeiros

Horas

Semanais - 5

Totais - 70

Idioma de ensino

Português

Pré-requisitos

Conhecimentos de Introdução à Programação e de Sistemas Lógicos.

Bibliografia

Dive Into Systems, S. Matthews et al., 2022   https://diveintosystems.org/

Operating Systems: Three Easy Pieces (2018) , R. e A. Arpaci-Dusseau,  https://pages.cs.wisc.edu/~remzi/OSTEP/

How to Think Like a Computer Scientist - C VersionT. Scheffler e A. B. Downey,   2019,  https://github.com/tscheffl/ThinkC/

Método de ensino

Nas aulas teóricas explicar-se-ão e discutir-se-ão os sucessivos tópicos do programa da cadeira. 

Nas aulas práticas serão desenvolvidos diversos trabalhos práticos de programação, cujo objectivo é aplicar e consolidar os conceitos que foram aprendidos nas aulas teóricas. 

Método de avaliação

A avaliação tem dois componentes: componente teórica e componente práticaAs questões de plágio e fraude serão tratadas de acordo com o indicado no regulamento de avaliação da FCT. As notas intermédias são arredondadas à centésima e a nota final à unidade. Durante a realização dos testes não é permitida a utilização de qualquer tipo de dispositivo eletrónico, incluindo máquinas de calcular de qualquer espécie.

Componente teórica

A nota desta componente (NT) é obtida em dois testes teórico / práticos presenciais sem consulta sobre a matéria das aulas teóricas, ou exame de recurso (também presencial).

NT = (nota teste 1 + nota teste2 ) / 2   ou

NT = nota exane de recurso

Para ter sucesso na unidade curricular, um estudante tem de ter pelo menos 9,5 valores nesta componente.

Componente laboratorial

A nota desta componente (NL) é obtida em quatro trabalhos práticos de média dimensão (EP1, EP2, EP3, EP4)  elaborados em grupos de até 2 estudantes. A utilização de ferramentas como o Copilot e o ChatGPT é possível mas deve ser reportada através de comentários incluídos no código IGNOREe entregue; relembra-se que estas anotações são muito relevantes se o código entregue for submetido a software de deteção de plágio.

Para ter sucesso na unidade curricular, um estudante tem de ter pelo menos 6,0 valores nesta componente. A obtenção de uma nota NL maior ou igual a 6,0 permite obter frequência à UC no corrente ano letivo.

Os trabalhos têm notas NEP1, NEP2, NEP3, NEP4.  

NL = (NEP1 + NEP2 + NEP3 + NEP4) / 4.

A nota NEPi é obtida através de duas componentes:

  • Avaliação do grupo, NGi, relacionada com a funcionalidade e correção do código entregue. 
  • Avaliação individual de cada membro do grupo NTPi, que é obtida através das respostas a perguntas sobre os trabalhos práticos nos dois testes (sobre o EP1 e EP2 no 1º teste, sobre o EP3 e EP4 no 2º teste). Essas perguntas não contribuem para a nota do teste. As perguntas sobre o EPi são classificadas com uma nota NTPi entre 0 e 100 e a nota final  NEPi será dada pelas regras seguintes:

             se NTPi >= 50,  NEPi = minimo( 20 , NGi )
             senão se NTPi >= 20,  NEPi = mínimo( 12, NGi )
             senão NEPi=0

               Se um estudante faltar com justificação ao teste em que é obtido NTPi, será submetido a uma prova oral; de acordo com o desempenho nessa prova, NEPi poderá ser um valor entre 0 e NGi. Cabe à equipa docente avaliar se a justificação da falta é ou não considerada.

Nota final (NF)  

NF = 0,70*NT + 0,30*NL

Frequência de anos anteriores

Os estudantes que obtiveram frequência nos dois anos anterioers conservam a nota obtida. Podem obter uma nova nota NL em 2023/24, devendo nesse caso inscrever-se num turno prático, entregar os trabalhos nas datas especificadas e responder às perguntas sobre os exercícios nos testes. Estes estudantes não precisam de indicar se pretender optar pela nota laboratorial obtida em anos anteriores ou pela nota obtida em 2023/24, uma vez que

NL = Máximo( NL obtida em anos anteriors, NL obtida em 2023/24)

Conteúdo

1. Organização por níveis de um sistema computacional. Arquitetura de Von Neumann. O nível do sistema operativo. Funções do sistema operativo. Noção de ficheiro. Interpretador de comandos.

2. O componente CPU: organização geral, representação dos dados, tipos de instruções máquina, formato das instruções, suporte pelas instruções máquina dos conceitos presentes em linguagens de alto nível

3. O componente memória central (RAM): Níveis da hierarquia de memória. Caches. Endereçamento físico e virtual. Páginas. Compilação, ligação e carregamento.

4. O componente Dispositivos de Entrada / Saída: tipos de periféricos, suporte dos periféricos pelo sistema operativo.

Cursos

Cursos onde a unidade curricular é leccionada: