Sistemas Operativos
3
2019-2020
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 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ãoPrograma
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