Curso: Licenciatura em Engenharia Informática |
||
Área Científica: Informática/ASI |
||
Uc Anual |
Semestral |
Trimestral |
Obrigatória T |
Opcional |
Outra T |
Objectivos |
||
Introduzir os conceitos fundamentais dum sistema operativo e da sua arquitectura. Pretende-se que os alunos compreendam o porquê da existência de sistemas operativos, os objectos e mecanismos mais relevantes do sistema operativo e a forma como contribuem para a gestão de recursos do sistema computacional, e o sistema operativo como uma máquina virtual. Os alunos deverão adquirir alguma experiência no desenvolvimento de programas concorrentes que utilizem mecanismos de sincronização e comunicação entre processos. |
||
Objecto da Aprendizagem (conteúdo programático) |
||
1. Introdução aos sistemas operativos 1.1. Tipos de sistemas operativos 1.2. Exemplo de shell 2. Arquitectura básica dum sistema operativo 2.1. Camadas do modelo 2.2. Núcleo do sistema operativo 2.3. Chamadas ao sistema 3. Noção de processo e concorrência. 3.1. Processos, threads 3.2. Deadlock, livelock, starvation 4. Gestão e escalonamento de processos 4.1. Algoritmos de escalonamento 4.2. Algoritmos de detecção e prevenção de deadlocks 5. Mecanismos de sincronização e comunicação entre processos 5.1. Semáforos, Mutexs, spinlocks 5.2. Pipes, fifos 5.3. Sockets 5.4. Memória partilhada 6. Conceitos e mecanismos de gestão de memória 6.1. Segmentos, Páginas 6.2. Algoritmos para reserva de memória 6.3. Memória virtual: Swapping, Paging, tabelas de páginas, algoritmos 7. Entradas e saídas 7.1. Classificação dos dispositivos de E/S (bloco, caracter) 7.2. Estrutura do gestor de E/S 7.3. E/S no espaço de utilizador 7.4. Relógios e temporizadores 7.5. Tratamento de acontecimentos assíncronos 8. Sistemas de ficheiros e organização de dispositivos de memória secundária 8.1. Ficheiros, directórios, tabela de conteúdo 8.2. Aspectos de implementação de sistemas de ficheiros 9. Segurança 9.1. Bases de criptografia 9.2. Autenticação de utilizadores 9.3. Ataques internos e externos ao sistema 9.4. Mecanismos de protecção e sistemas confiáveis 10. Núcleos tempo-real 10.1. Necessidade de sistema operativo de tempo real 10.2. Diferenças entre núcleos de tempo real e tempo partilhado 11. Sistemas operativos multimédia 12. Sistemas operativos para equipamentos embebidos: 12.1. Windows CE 12.2. Symbian OS |
||
Processo de Avaliação – Classificação |
||
Exame: 70%; Trabalhos práticos: 30% |