Fundamentos de Sistemas de Operação
Objetivos
Saber: As funcionalidades dos sistemas de operação (SO), suas interfaces de utilização e programação; As abstracções do SO para a execução de programas e gestão de recursos; Os princípios da programação concorrente e da coordenação de processos e threads; Os princípios de concepção e de organização interna de um sistema de operação.
Saber fazer: Relacionar os aspectos teóricos e os aspectos práticos e melhorar a capacidade de realização de trabalhos práticos laboratoriais; Utilizar o ambiente e as ferramentas de apoio ao desenvolvimento e gestão da execução de programas; Desenvolver programas que exploram, ao nível das chamadas ao sistema de operação, diversos modelos de programação envolvendo concorrência, comunicação e sincronização entre processos ou threads.
Caracterização geral
Código
11155
Créditos
9.0
Professor responsável
Paulo Orlando Reis Afonso Lopes, Pedro Abílio Duarte de Medeiros
Horas
Semanais - 6
Totais - 67
Idioma de ensino
Português
Pré-requisitos
Recomenda-se ter aprovação às unidades curriculares IP e AC.
Bibliografia
PRINCIPAL:
Remzi Arpaci-Dusseau, Andrea Arpaci-Dusseau, Operating Systems: Three Easy Pieces, http://pages.cs.wisc.edu/~remzi/OSTEP/
COMPLEMENTAR:
Modern Operating Systems, 4th Ed, A. Tanenbaum, H. Bos, Pearson, 2014
Computer Systems: A Programmer''s Approach, R.Bryant, D. O´Hallaron, Pearson, 3rd Ed 2015
The C Programming Language, B. W. Kernighan, D. M. Ritchie, 2nd Edition, Prentice Hall, 1988
Método de ensino
As aulas teóricas têm por objectivo a apresentação dos principais temas e discutir as questões mais relevantes. Os estudantes devem, de preferência antes das aulas, estudar a bibliografia recomendada.
As sessões laboratoriais têm por objectivo permitir ao estudante i) desenvolver aplicações que usam chamadas de sistema num ambiente controlado (máquinas virtuais), onde por vezes são requeridos privilégios de administração e ii) usar ferramentas de monitorização que requerem esses mesmos privilégios.
Método de avaliação
CompT = 0,5 T1 + 0,5 T2
Conteúdo
1. Introdução aos sistemas de operação (SO): Serviços do sistema: ficheiro e processo como principais abstracções suportadas, chamadas ao sistema.
2. Gestão dos CPUs: suporte da abstracção de processo pelo SO; processos leves: Algoritmos de escalonamento dos CPUs
3. Gestão da memória: espaço de endereçamento de um processo; transformação de endereços reais em virtuais usando páginas; memória virtual usando paginação; algoritmos de substuição de páginas.
4. Programação concorrente: fundamentos, comunicação e sincronização em memória partilhada e em memória distribuída. Processos leves - API pthreads.
5. Ficheiros e dispositivos de entrada/saída: organização e operações do sistema de ficheiros; características dos dispositivos que suportam o sistema de ficheiros; consistência do sistema de ficheiros. Gestão de dispositivos de entrada / saída. Estrutura de um device driver.
6. Máquinas virtuais e Containers