Sistemas Operativos

Código

01063070

Créditos ECTS

6

Objetivos

Informação disponível em breve.

Programa

Objetivos de aprendizagem

Após completarem a unidade curricular, o/a estudante deverá ser capaz de:
A. Descrever as funções e a estrutura geral de um sistema operativo.
B. Descrever o funcionamento dos componentes de um sistema operativo, a interação destes componentes e os algoritmos fundamentais usados na sua implementação.
C. Explorar os mecanismos de comunicação entre processos e de sincronização entre threads.
D. Usar um hipervisor para gerir máquinas virtuais.
E. Desenvolver programas que explorem as API de um sistema operativo tipo-Unix.


Conteúdos programáticos

1. Conceitos básicos sobre os sistemas operativos
1.1. Estrutura e funções de um sistema operativo
1.2. Evolução dos sistemas operativos
2. Processos e Escalonamento
2.1. Processos e Threads
2.2. Algoritmos de Escalonamento
2.3. Algoritmos de Sincronização
2.4. Comunicação entre Processos e interbloqueio
3. Gestão de Memória
3.1. Paginação
3.2. Segmentação
3.3. Memória Virtual
4. Gestão de Armazenamento
4.1. Organização de um sistema de ficheiros.
4.2. Indexação, Diretorias e Gestão de espaço livre
5. Entradas e saídas
5.1. Arquiteturas de entradas e saídas (E/S).
5.2. Gestão de periféricos
6. Arquiteturas e mecanismos de segurança
6.1. Isolamento (confinamento)
6.2. Autenticação e autorização
7. O modelo computacional do Linux
7.1. Visão global do sistema
7.2. Programação em Shell
7.3. Programação em C


Métodos de Ensino

Aulas teórico-práticas

Exposição dos conceitos e apresentação de exemplos.
Realização de testes no final de cada capítulo.


Aulas práticas laboratoriais

Exploração das funcionalidades do sistema operativo Linux: utilização da interface de linha de comandos; construção de scripts em shell; codificação de programas em C.

Utilização do sistema de gestão de aprendizagem Moodle, onde estão disponíveis recursos e atividades diversas, como complemento às aulas presenciais.

Bibliografia

Essencial

Abraham Silberschatz, Peter Baer Galvin, Greg Gagne. Operating System Concepts, 9th Edition. John Wiley & Sons. 2012
José Alves Marques, Paulo Ferreira, Carlos Ribeiro, Luís Veiga, Rodrigo Rodrigues. Sistemas Operativos. FCA. 2012.

Complementar

Andrew S. Tanenbaum. Modern Operating Systems, 4th Edition. Pearson. 2014.
Fernando Pereira, Rui Guerreiro. LINUX: Curso Completo. 7ª Edição. FCA. 2015
William Stallings; Operating Systems: Internals and Design Principles, 8th Edition, Prentice Hall, 2014.

Método de Avaliação