Sistemas Operativos

Métodos de Ensino

As aulas são lecionadas em regime teórico-prático, com recurso à utilização de computadores e ferramentas digitais, num processo dinâmico de ensino-aprendizagem, fundamentalmente interativo, apelando ao desenvolvimento do sentido crítico do aluno.

Será utilizado um modelo “Blended learning”, centrado no aluno, baseado no desenvolvimento de atividades e com aulas integralmente destinadas à aplicação dos conceitos.

Resultados de Aprendizagem

Objetivos:

Estudo dos sistemas operativos, incluindo a sua organização, serviços fornecidos e sua programação. Mais concretamente: gestão de processos, comunicação entre processos, situações de impasse, escalonamento de processos, gestão de memória, sistemas de ficheiros, gestão de entradas e saídas e proteção e segurança. Introdução à programação Shell script e programação multitarefa cooperativa.

Competências a desenvolver:

Aquisição de conhecimentos fundamentais utilizados na conceção dos sistemas operativos modernos.

Identificação das potenciais situações de risco inerentes à programação concorrente e utilização dos mecanismos de controlo apropriados. Aquisição de conhecimentos práticos sobre sistemas operativos baseados em Linux e capacidade de utilização dos principais serviços disponibilizados pelo sistema operativo para o desenvolvimento de aplicações, abrangendo a programação multitarefa cooperativa. Aquisição de conhecimentos de programação em Shell Script.

Programa

1. Introdução aos Sistemas Operativos

1.1 Conceito de Sistema Operativo

1.2 Evolução histórica dos SO

1.3 Caraterísticas e conceitos-chave dos SOs Atuais

1.4 Estrutura dos Sistemas Operativos

2. Processos e Threads

2.1 Escalonamento da CPU

2.2 Programação concorrente

2.3 Comunicação e Sincronização de Processos

3. Deadlocks

3.1 Aquisição de recursos

3.2 Introdução aos deadlocks

3.3 Detecção e recuperação de deadlocks

3.4 Prevenção de deadlocks

4. Gestão de memória

4.1 Memória principal

4.2 Memória virtual

5. Gestão de armazenamento de dados

5.1 Estrutura de armazenamentos massivos

5.2 Entrada/Saída

5.3 Sistema de ficheiros

6. Segurança e Proteção

7. Sistemas Distribuídos, Virtualização e Cloud

Estágio(s)

NAO

Bibliografia

1. A. Silberschatz, P. B. Galvin, and G. Gagne (2021) “Operating System Concepts”, 10th Ed., John Wiley & Sons, Inc., ISBN: 9781119320913

2. W. Stallings (2018) “Operating Systems: internals and design principles”, 9th Ed., Pearson ISBN-13: 978-0134670959

3. K. A. Robbins, S. Robbins (2015) “UNIX SYSTEMS Programming: Communication, Concurrency, and Threads”, 2nd Ed., Pearson ISBN13: 978-0134424071

4. R. Love (2013) “Linux System Programming”, 2nd Ed., O’Reilly & Media Inc. ISBN: 978-1449339531

5. Pedro Costa (2024) “Apontamentos Teóricos e Práticos de Sistemas Operativos”, Coimbra Business School | ISCAC, Polytechnic ofCoimbra.