
Fundamentos de Sistemas de Operação
Código
11155
Unidade Orgânica
Faculdade de Ciências e Tecnologia
Departamento
Departamento de Informática
Créditos
9.0
Professor responsável
Pedro Abílio Duarte de Medeiros
Horas semanais
5
Total de horas
68
Língua de ensino
Português
Objectivos
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; - 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, ao nível das interfaces do sistema de operação, e com os modelos de programação ao nível das chamadas ao sistema de operação, envolvendo concorrência, comunicação e sincronização entre processos.
Pré-requisitos
Recomenda-se ter aprovação a IP e AC.
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
Bibliografia
PRINCIPAL:
Remzi Arpaci-Dusseau, Andrea Arpaci-Dusseau, Operating Systems: Three Easy Pieces, 2015 v0.9*, 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 avaliação
Componente teórica: Obtida por 2 testes ou exame de recurso
Nota da componente teórica: NT= (0,5*notaTeste1+0,5*notaTeste2) ou notaExame
Os testes podem conter perguntas sobre a parte prática.
Nota mínima de NT: 8,5 valores
Componente laboratorial: Realizados em grupos de 2 alunos, é obtida pela avaliação de 3 pequenos trabalhos relacionados com as actividades realizadas nas aulas práticas e um projeto. Os trabalhos pequenos dão origem às notas N1, N2, N3. O projeto terá a nota N4.
Nota da componente prática: NP= 0,4*(N1+N2+N3)/3 +0,6*N4
Nota minima NP para obter frequência: 8,5 valores
Nota Final = NT se NT for menor do que a nota mínima.
Nota Final = 0,7*NT+0,3*NP para NT>= nota minima
Podem ser usadas a NT e a NP obtidas anteriormente desde que sejam >= 8,5