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 Version, T. 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ática. As 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áquias 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. Para ter sucesso na unidade curricular, um estudante tem também 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 o aluno será submetido a uma prova oral; de acordo com o desempenho nessa prova, NEPi estará entre mínimo( 10, NGi ) e 0
Se um estudante faltar 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
Nota final (NF)
NF = 0,75*NT + 0,25*NL
Frequência de anos anteriores
Todos os estudantes que obtiveram frequência em 2021/22 já têm a nota NL definida que entrará com o peso 0,25. Os estudantes podem optar por obter uma nova nota NL em 2022/23, devendo nesse caso inscrever-se num turno prático e entregar os trabalhos nas datas especificadas e responder às perguntas sobre os exercícios nos testes. Caso se inscrevam em turnos práticos mas desistam da avaliação, ficam na mesma situação que estavam se tivessem logo optado pela frequência anterior.
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.