Código:
8568
Ano:
3
Semestre:
S2
Créditos ECTS:
6
Carga Horária:
PL(30H)/T(30H)
Área Científica:
Sistemas e Computadores
Tipo de ensino:
Presencial.
Estágios:
Não aplicável.
Objectivos de Aprendizagem:
Aprendizagem dos rudimentos da arquitetura de computadores e das inter-relações entre o hardware e o software do sistema operativo. Aprendizagem crítica das várias arquiteturas dos sistemas operativos e dos componentes de um sistema operativo. Utilização e programação de sistemas operativos.
No final da Unidade Curricular o estudante deverá ser capaz de identificar o papel e o impacto de um sistema operativo, identificar e resolver problemas práticos no desenvolvimento e utilização dum sistema operativo e ter noções fundamentais acerca de programação de sistemas operativos. O estudante deve também ter obtido experiência na utilização, administração e programação de sistemas operativos.
Conteúdos programáticos:
Programa das Aulas Teóricas
1. Introdução
2. Estruturas o sistema operativo e sistemas de entrada/saída (E/S) de um
computador
3. Arquitetura de um sistema operativo
4. Processos e threads
5. Sincronização e comunicação entre processos/threads
6. Gestão de memória e memória virtual
7. Sistemas de ficheiros
Programa das Aulas Praticas
1. Utilização do sistema operativo (Linux)
2. Programação com o Bash Shell
3. Linkagem e bibliotecas
4. Entrada/Saída de baixo-nível
5. Processos e threads
6. Ficheiros e diretórias
7. Comunicação entre processos
8. Sincronização e semáforos


Bibliografia principal:
Operating Systems Concepts (10th Edition), A. Silberschatz e P. Galvin, Addison-Wesley, 2018. ISBN 978-1-118-06333-0
Modern Operating Systems, Third Edition Andrew S. Tanenbaum, Prentice Hall 2008
Advanced Programming in the Unix Environment W. Stevens, Addison-Wesley, 1992
Unix Network Programming, Volumes 1 e 2, W. Stevens, Prentice Hall, 1998
Computer Systems: A Programmer's Perspective (Segunda Edição), Randal E. Bryant, David R. O'Hallaron, Prentice Hall, 2010
Língua:
Português