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.