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

Pedro Abílio Duarte de Medeiros, Vítor Manuel Alves Duarte

Horas

Semanais - 5

Totais - 60

Idioma de ensino

Português

Pré-requisitos

Recomenda-se ter aprovação às unidades curriculares IP e AC.

Bibliografia

Principal:

Operating Systems: Three Easy Pieces, Remzi Arpaci-Dusseau, Andrea Arpaci-Dusseau, November, 2023 (Version 1.10) http://pages.cs.wisc.edu/~remzi/OSTEP/

Complementar:

Operating System Concepts. A. Silberschatz, et al, 10th Edition, 2018

Modern Operating Systems, 4th Ed, A. Tanenbaum, H. Bos, Pearson, 2014 

Tutorias de C (exemplos):

https://www.geeksforgeeks.org/c-programming-language/
https://www.w3schools.com/c/
https://www.programiz.com/c-programming/

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

O processo de avaliação tem duas componentes.

Componente teórica

2 testes intercalares ou 1 exame final

CompT = (T1+T2)/2 ou CompT = Exame

Nas avaliações o aluno apenas poderá utilizar para consulta, uma página A4 manuscrita.

Componente de Laboratório (ou “Prática”)

3 pequenos trabalhos de casa individuais (NTP1,2,3); 1 miniprojeto (NP) em grupos de 2 alunos

CompL = 0,35*(NTP1+NTP2+NTP3)/3 + 0,65*NP

A avaliação Laboratorial confirma a Frequência (admissão à avaliação). Para obter a frequência: CompL ≥ 9,0

Nota: Os alunos com Frequência obtida nos dois anos letivos anteriores estão dispensados ​​da avaliação laboratorial, será utilizada a nota que obtiverem nessa componente nessa altura. Não há necessidade de inscrição para aula prática, mas pode assistir a qualquer aula se houver vaga disponível nesse horário.

Note bem: a entrega de um trabalho a avaliar corresponde a abdicar (ou seja, perder) a Frequência anterior.

Nota final

É necessária uma nota mínima de 9,0 no CompT.

se compT < 9,0, então NF = round(compT);

senão NF = redondo (0,8*CompT + 0,2*CompL).

Cada nota intermédia (i.e., NTP1,2,3, NP, T1, T2, Exame, CompT e CompL) é arredondada às décimas.

Naturalmente, um aluno é aprovado se atingir as notas mínimas de cada componente e NF ≥ 10

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

Cursos

Cursos onde a unidade curricular é leccionada: