Sistemas Operativos

Ano
3
Ano lectivo
2019-2020
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 fazem uma exposição detalhada, recorrendo a meios audiovisuais, dos conceitos, princípios e teorias fundamentais dos Sistemas Operativos, acompanhada de exemplos práticos elementares que exemplifiquem a sua aplicação em sistemas reais e atuais. Aulas teórico-práticas permitem a exposição detalhada do ambiente de desenvolvimento de aplicações de sistema em Linux e a realização de demonstrações de programação e resolução de problemas. Nas aulas práticas-laboratoriais pretende-se que os alunos desenvolvam vários trabalhos laboratoriais (projetos) de grupo que promovam o raciocínio.

Resultados de Aprendizagem

Esta unidade curricular constitui um curso básico de Sistemas Operativos (SO). Um SO deve suportar um ambiente para o desenvolvimento e execução de programas e um conjunto de métodos de acesso aos serviços de um sistema computacional (API de programação) e deve gerir recursos computacionais de hardware e software: Processadores, Memória, Periféricos; Informação (dados e programas) armazenada no sistema de Ficheiros. O objetivo desta disciplina é dar a conhecer aos estudantes o funcionamento dos SO modernos e ao mesmo tempo dotar os estudantes das devidas capacidades para desenvolverem aplicações de sistema que façam uso direto do interface de programação do sistema operativo e que explorem as capacidades de concorrência e multi-programa. A disciplina pretende promover a aquisição de competências em análise e síntese, resolução de problemas, aplicação prática de conhecimentos teóricos, aprendizagem autónoma, comunicação oral e escrita, raciocínio crítico e capacidade de decisão

Estágio(s)

Não

Programa

1. Funções de um Sistema Operativo

2. Sistemas de Ficheiros

3. Entrada/Saída e escalonamento de disco

4. Gestão de Processos

5. Escalonamento de processos

6. Gestão de memória

   a. Memória virtual

   b. Memory-Mapped Files

7. Multi-threading

8. Programação Concorrente

   a. Programação em C em Linux; Comandos Linux; Funções de Sistema Linux

   b. Programação Multi-processo e multi-threaded

   c. Comunicação entre processos

   d. Sincronização

9. Segurança

10. Virtualização

Docente(s) responsável(eis)

Rui Alexandre de Matos Araújo

Métodos de Avaliação

Avaliação
Resolução de problemas: 25.0%
Trabalho laboratorial ou de campo: 35.0%
Exame: 40.0%

Bibliografia

Operating System Concepts: 7th Edition, by Abraham Silberschatz, Peter Baer Galvin, Greg Gagne. John Wiley & Sons, ISBN 0471694665.

Unix Systems Programming: Communication, Concurrency and Threads 2nd Edition, by Kay Robbins, Steve Robbins. Prentice Hall, ISBN 0130424110.

Advanced Programming in the UNIX Environment Second Edition, by W. Richard Stevens, Stephen A. Rago. Addison-Wesley