Faculdade de Ciências e Tecnologia

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.

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, 2013, http://pages.cs.wisc.edu/~remzi/OSTEP/

COMPLEMENTAR:

Computer Systems: A Programmer´s Approach, R.Bryant, D. O´Hallaron, Pearson, 3rd Ed 2015, 2nd Ed, 2010

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

Os testes podem conter perguntas sobre a parte prática. Nota mínima NTP: 8,5 valores

Pode ser usada a NTP obtida em anos anteriores desde que seja maior ou igual a 8.5..

Componente laboratorial: Obtida pela realização de um trabalho prático em grupos de 2 alunos. Nota da componente laboratorial (NL) é igual à nota do trabalho. A nota NL de anos anteriores pode ser usada.

Não há nota mínima NTP

Componente somativa: Obtida pela avaliação de 5 trabalhos para casa relacionados com as actividades realizadas nas aulas prática. Estes trabalhos são submetidos ao Mooshak e darão origem às notas S1, S2, S3, S4 e S5. A nota NS é a média das notas dos trabalhos práticos.

Não há nota mínima NS

 Nota Final = NTP se NTP

Nota Final = 0.60*NTP+0.25*NL+0.15*NS para os estudantes que optem pela obtenção de NL e NS em 2015/16

Nota Final = 0.6*NTP+0.4*NL para os estudantes que optem pelo uso da nota NL obtida em anos anteriores

Cursos