No contexto actual, face à adopção maciça das tecnologias de virtualização em Cloud Computing, a
explosão dos dispositivos móveis e o surgimento da Internet of Things, o domínio do conceito de sistema
operativo é uma mais-valia certa na formação de futuros engenheiros. O conteúdo programático da
Unidade Curricular está orientado no sentido de fornecer aos candidatos um conhecimento abrangente
desses conceitos, pelo facto de abordar os aspectos teóricos fundamentais dos Sistemas Operativos, a
exposição detalhada da sua estrutura, do seu funcionamento e dos seus principais algoritmos,
baseando-se nas implementações existentes actualmente. Considera-se uma das competências
nucleares da formação em Engenharia Informática.
Semestral
Introdução
Conceito de Sistema Operativo
Funcionalidades e Mecanismos
Serviços e Arquitetura do Sistema Operativo
Serviços e Interfaces
Exceções, APIs e Chamadas Sistema
Arquitetura e Implementação
Gestão de Processos
Processos e Fluxos de Execução
Conceito de Processo Ligeiro (thread)
Escalonamento do CPU
Sincronização de Processos
Deadlocks
Gestão de Memória Primária
Memória Física
Memória Virtual
Gestão de Memória de Armazenamento
Sistemas Gestão de Ficheiros (SGF)
Implementação de SGFs
Estrutura da Memória de Armazenamento
Subsistemas de Entradas e Saídas (E/S)
Exemplos de Sistemas Operativos
Os pontos acima referidos serão ilustrados através de exemplos retirados dos sistemas Linux e Windows
O objectivo desta UC é o de apresentar os princípios fundamentais dos Sistemas Operativos, de forma a
permitir uma compreensão detalhada da sua arquitectura e funcionamento, dando aos alunos os
conhecimentos e capacidades para utilizar, configurar e optimizar este componente fundamental dos
sistemas informáticos.
No final da cadeira, os alunos deverão:
Conhecer os princípios dos Sistemas Operativos actuais e identificar os vários componentes que o constituem.
Conhecer os algoritmos fundamentais em que assentam os principais componentes de um
Sistema Operativo assim como as suas optimizações mais actuais.
Programar exemplos ilustrativos de alguns algoritmos mais representativos (escalonador, sistema de ficheiros, etc..)
Tirar partido da utilização directa das interfaces sistema para o desenvolvimento e optimização de aplicações complexas.
Saber configurar e modificar funcionalidades e componentes do sistema Linux, e adaptá-lo a vários tipos de utilizações e plataformas.
Obrigatório
O conteúdo lecionado é implementado em software usando programação. São utilizadas metodologias ativas e orientadas à resolução de problemas (PBL).
No final é desenvolvido um projeto integrando toda a matéria lecionada.
Português
Não
Stallings, William - Operating Systems: Internals and Design Principles, 9th Edition, Ed. Pearson, 2017, ISBN-13: 978-0134670959.