Sistemas Operativos

Métodos de Ensino

As aulas serão leccionadas em regime de prática laboratorial, em salas equipadas com computadores. Será utilizada a metodologia expositiva para a apresentação dos conceitos referidos no programa, apoiada pela aplicação dos mesmos na resolução de exercícios práticos.

Resultados de Aprendizagem

Aquisição dos conhecimentos fundamentais utilizados na concepção dos sistemas operativos modernos. Mais especificamente, compreensão das principais funções realizadas pelos sistemas operativos e os principais conceitos associados ao seu funcionamento gestão de processos, comunicação entre processos, situações de impasse, escalonamento de processos, gestão de memória, sistemas de ficheiros e gestão de entradas e saídas.
Aquisição de conhecimentos práticos do sistema operativo UNIX e capacidade de utilização dos principais serviços disponibilizados pelo sistema operativo para o desenvolvimento de aplicações. Identificação das potenciais situações de risco inerentes à programação concorrente e utilização dos mecanismos de controlo apropriados.

Programa

1 Introdução aos Sistemas Operativos
1.1 Conceito de Sistema Operativo
1.2 Evolução dos Sistemas Operativos
1.3 Características dos Sistemas Operativos atuais
1.4 Conceitos básicos e estrutura dum Sistema Operativo
2 Processos
2.1 Processos e threads
2.2 Escalonamento de Processos
2.3 Comunicação entre Processos
2.4 Concorrência e cooperação entre Processos
3 Deadlocks
3.1 Aquisição de recursos
3.2 Introdução aos deadlocks
3.3 Deteção e recuperação de deadlocks
3.4 Prevenção de deadlocks
4 Gestão de Memória
4.1 Gestão básica de memória
4.2 Swapping
4.3 Memória virtual e paginação
4.4 Algoritmos de substituição de páginas
4.5 Segmentação
5 Entrada/Saída
5.1 Dispositivos de E/S, DMA e interrupções
5.2 Modelo em camadas
5.2.1 Tratamento de interrupções
5.2.2 Device drivers
6 Sistemas de Ficheiros
6.1 Conceitos básicos e objetivos
6.2 Implementação de sistemas de ficheiros
6.3 Exemplos de sistemas de ficheiros
7 Arquiteturas Multiprocessador
7.1 Arquiteturas MIMD
7.2Sistemas distribuídos

Estágio(s)

NAO

Bibliografia

1. A. S. Tanenbaum, Modern Operating Systems, 3rd Ed., Prentice Hall, 2007.
2. W. Stallings, Operating Systems: internals and design principles, 6th Ed., Prentice Hall, 2008.
3. K. A. Robbins, S. Robbins, UNIX SYSTEMS Programming: Communication, Concurrency, and Threads,
Prentice Hall, 2003.
4. S. G. Kochan, P. Wood, UNIX Shell Programming, 3rd Edition, Sams, 2003.
5. P. Costa, D. Melo, P. Soares, P. Silva, Apontamentos de Sistemas Operativos, ISCAC, 2010.