Sistemas Operativos
3
2021-2022
01000495
Sistemas Digitais e Computadores
Português
Inglês
Presencial
Semestral
6.0
Opcional
1º Ciclo - Licenciatura
Conhecimentos de Base Recomendados
Programação de Computadores; Estrutura de Dados e Algoritmos; Sistemas de Microprocessadores.
Métodos de Ensino
Aulas teóricas com apresentação, em meios audiovisuais, dos conceitos, princípios, teorias e metodologias, e com apresentação de exemplos ilustrativos e de aplicação.
Aulas práticas laboratoriais, com orientação de um docente: nestas aulas, algum tempo é dedicado à apresentação de tópicos relevantes para as apostilas práticas e para os trabalhos laboratoriais; E o resto do tempo é dedicado ao desenvolvimento de apostilas práticas e trabalhos de laboratório que requerem a aplicação e combinação de diferentes conceitos.
Resultados de Aprendizagem
Adquirir conhecimentos sobre o funcionamento de sistemas operativos (SO) e dos seus módulos, incluindo, escalonamento de processos, gestão de memória, memória virtual, escalonamento em disco, sistemas de ficheiros, e programação concorrente; e conhecimentos básicos sobre sistemas distribuídos. Adquirir conhecimentos sobre técnicas e algoritmos relacionados com os sistemas operativos. Adquirir capacidades para escrever bom código de sistema que explore de uma forma optimizada as funcionalidades de um sistema operativo.
Aquisição de competências em análise e síntese, aplicação prática de conhecimentos teóricos, resolução de problemas, aprendizagem autónoma, adaptabilidade a novas situações, conhecimentos de informática relativos ao âmbito do estudo.
Estágio(s)
NãoPrograma
Conceitos introdutórios e de suporte a sistemas operativos; Noções gerais sobre arquitectura de computadores; Funções dos sistemas operativos; Processos: descrição e controlo; Fios de execução; Concorrência: exclusão mútua, sincronização e comunicação, deadlocks e starvation; Gestão de memória; Memória virtual; Escalonamento de processos e fios de execução; Gestão de periféricos e escalonamento de disco; Sistemas de ficheiros; Segurança em sistemas operativos; Virtualização; Introdução aos sistemas operativos distribuídos; Sistemas operativos aplicados a robótica e internet das coisas (IOS): exemplos do Robot Operating System (ROS) e do CONTIKI-OS para IOS; Programação de sistema.
Docente(s) responsável(eis)
Rui Alexandre de Matos Araújo
Métodos de Avaliação
Avaliação
Frequência: 20.0%
Trabalho laboratorial ou de campo: 30.0%
Exame: 50.0%
Bibliografia
• Stallings, W. (2014) – Operating Systems - Internals and Design Principles, 8th Edition, Prentice-Hall.
• Silberschatz, A., Galvin, P.B., Gagne, G. (2013) – Operating System Concepts, 9th Edition, John Wiley and Sons.
• Robins, K.A., Robins, S. (2003) – Unix Systems Programming: Communication Concurrency, and Threads, Prentice-Hall.
• Marshall, D.A. (1999) – Programming in C: UNIX System Calls and Subroutines Using C, Cardiff University, UK, Internet.
• Kernighan, B.W., Ritchie, D.M. (1988) – The C Programming Language, 2ed, Prentice-Hall.
• Stevens, W.R. (1991) – UNIX Network Programming, 1ed, Prentice-Hall.