Sistemas Operativos

Ano
3
Ano lectivo
2022-2023
Código
01000495
Área Científica
Sistemas Digitais e Computadores
Língua de Ensino
Português
Outras Línguas de Ensino
Inglês
Modo de Ensino
Presencial
Duração
Semestral
Créditos ECTS
6.0
Tipo
Opcional
Nível
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ão

Programa

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.