Sistemas Computacionais
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Informática |
Ocorrência: 2024/2025 - 2S 
Ciclos de Estudo/Cursos
Sigla |
Nº de Estudantes |
Plano de Estudos |
Anos Curriculares |
Créditos UCN |
Créditos ECTS |
Horas de Contacto |
Horas Totais |
L.EEC |
171 |
Plano Oficial |
3 |
- |
6 |
52 |
|
Docência - Responsabilidades
Língua de trabalho
Português - Suitable for English-speaking students
Obs.: As aulas serão em Inglês sempre que haja pelo menos um estudante em aula que não seja falante de Português
Objetivos
- Expor a diversidade e a composição de sistemas computacionais, desde plataformas simples para aplicações embarcadas até plataformas de alto desempenho com processadores com múltiplos núcleos.
- Apresentar o sistema computacional como um agregado de recursos que têm que ser geridos de forma eficiente para a obtenção de um bom desempenho.
- Transmitir a noção de sistema operativo como camada de mediação entre os recursos físicos do sistema e o respetivo utilizador.
- Apresentar a composição de um sistema operativo, desde o seu núcleo aos seus vários gestores, de memória, de entradas/saídas, de processos, etc, ensinar a utilizá-lo de forma eficaz e a medir o seu desempenho recorrendo a testes padrão (benchmarks).
Resultados de aprendizagem e competências
- Ser capaz de identificar diferentes tipos de sistemas computacionais e explicar as principais características diferenciadoras de cada tipo.
- Conhecer a constituição de sistemas operativos de uso geral.
- Ser capaz de utilizar a API dum sistema operativo.
- Ser capaz de utilizar as primitivas de sincronização e comunicação para execução de programas concorrentes.
- Ser capaz de construir “device drivers” para dispositivos de E/S relativamente simples.
- Explicar os mecanismos disponíveis num SO para assegurar proteção e segurança.
- Explicar como a configuração dos componentes dum sistema operativo pode afetar o desempenho de aplicações.
- Ser capaz de avaliar o desempenho dos diferentes componentes dum sistema operativo e conhecer os testes padrão mais comuns para medir o respetivo desempenho.
Modo de trabalho
B-learning
Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)
Programação
Programa
- Organização dum sistema computacional: Sistemas embarcados, sistemas de uso geral, processadores multi-núcleo e multiprocessadores, servidores e sistemas distribuídos.
- Apresentação dos Sistemas Operativos (SO) como gestores dos recursos dum sistema computacional. Arquitetura do SO e núcleo ("kernel") do SO. Núcleos monolíticos e micro-núcleos. SOs para fins específicos (ex. RTOS).
- Gestão de processos. Multiprogramação e escalonamento. Comunicação e sincronização entre processos. API para gestão de processos.
- Threads. Concorrência e primitivas de sincronização. API POSIX para threads.
- Gestão de memória. Memória física e virtual. Paginação e segmentação.
- Gestão de entradas/saídas. Dispositivos, controladores, interrupções."Device drivers".
- Sistema de ficheiros. Abstrações e sua implementação. API para acesso a ficheiros.
- Segurança em sistemas operativos. Autenticação e autorização. Mecanismos de proteção e de confinamento.
- Avaliação de desempenho e “benchmarking”.
Bibliografia Obrigatória
Remzi H. Arpaci-Dusseau;
Operating systems
Peter Marwedel;
Embedded system design. ISBN: 978-3-319-56045-8
Bibliografia Complementar
Jane Holcombe;
Survey of operating systems. ISBN: 0-07-222511-4
William Stallings;
Operating systems. ISBN: 978-1-292-21429-0
Alan Holt;
Embedded operating systems. ISBN: 978-3-319-72977-0
Abraham Silberschatz;
Operating system concepts. ISBN: 0-471-69466-5
Jonathan Corbert;
LINUX device drivers. ISBN: 0-596-00590-3
José Alves Marques;
Sistemas operativos. ISBN: 978-972-722-575-0
Andrew S. Tanenbaum;
Modern operating systems. ISBN: 978-1-292-06142-9
Métodos de ensino e atividades de aprendizagem
- As aulas teóricas são essencialmente expositivas, recorrendo-se a exemplos que ajudem à compreensão dos tópicos apresentados e fomentando alguma interação.
- As aulas laboratoriais são constituídas por três trabalhos realizados em grupo mas avaliados individualmente, nos quais se usam diferentes plataformas de hardware, e.g., Arduino, Raspberry Pi, computador de uso geral, para exercitar os conceitos lecionados nas aulas teóricas.
Tipo de avaliação
Avaliação distribuída com exame final
Componentes de Avaliação
Designação |
Peso (%) |
Exame |
50,00 |
Trabalho laboratorial |
50,00 |
Total: |
100,00 |
Componentes de Ocupação
Designação |
Tempo (Horas) |
Estudo autónomo |
74,00 |
Frequência das aulas |
56,00 |
Trabalho laboratorial |
32,00 |
Total: |
162,00 |
Obtenção de frequência
Ter frequentado as aulas laboratoriais e obtido pelo menos 7 valores na avalição da componente prática.
Fórmula de cálculo da classificação final
MT1 - Mini-teste abordando o primeiro trabalho de laboratório
MT2 - Mini-teste abordando o segundo trabalho de laboratório
MT3 - Mini-teste abordando o terceiro trabalho de laboratório
NL - Nota de laboratório
NE - Nota do exame final
NF - Nota final
NL = (MT1 + MT2 + MT3) /3
NF = 50% NL + 50% NE
A aprovação está condicionada a uma nota mínima de 7 valores nas componentes teórica e de laboratório
Melhoria de classificação
O exame de recurso apenas permitirá substituir, se melhor, a nota da componente teórica. A componente laboratorial não poderá ser melhorada em recurso.