
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.
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. Máquinas virtuais
2. Gestão dos CPUs: suporte da abstracção de processo pelo SO; processos leves: programação concorrente usando processos leves - API pthreads; 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. 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.
Bibliografia
PRINCIPAL:
Remzi Arpaci-Dusseau, Andrea Arpaci-Dusseau, Operating Systems: Three Easy Pieces, 2013, http://pages.cs.wisc.edu/~remzi/OSTEP/
COMPLEMENTAR:
Sistemas Operativos 2ª Ed. Actualizada, José A. Marques, Paulo Ferreira, Carlos Ribeiro, Luís Veiga, Rodrigo Rodrigues, FCA, 2012
Operating System Concepts - Essentials 8th Ed, A. Silberschatz, P. B. Galvin, G. Gagne, John Wiley & Sons, 2010.
The C Programming Language, B. W. Kernighan, D. M. Ritchie, 2nd Edition, Prentice Hall, 1988
Método de avaliação
Componente teórico-prática: Obtida por 2 testes ou exame de recurso
Nota da componente teórico-prática (NTP): 0.5*notaTeste1+0.5*notaTeste2 ou notaExame
Não pode ser usada a NTP obtida em anos anteriores.
Componente laboratorial: Obtida pela realização de dois trabalhos práticos em grupos de 2 alunos. Nota da componente laboratorial (NL) maior ou igual a 7,5 conseguida em anos anteriores concede frequência e é usada no cálculo da nota final.
Todos os alunos se devem inscrever num turno prático, excepto os alunos que tenham obtido frequência em FSO em anos anteriores podem prescindir da frequência das aulas práticas e usar a nota obtida em anos anteriores. Estes alunos não se devem manter inscritos nas aulas práticas; todos os alunos que se mantiverem inscritos nos turnos práticos após o dia 15 de Setembro prescindem da nota prática obtida em anos anteriores.
NL = 0.5*notaTrabalho1+0.5*notaTrabalho2
Para se obter frequência na cadeira e ter nota final é necessário ter pelo menos 9.5 na nota de um dos trabalhos práticos
Nota Final = 0.65*NTP+0.35*NL