Resultados de Aprendizagem
No final da unidade curricular o aluno deverá ficar habilitado a:
1. Classificar os diferentes tipos de Sistemas Operativos (SO). Identificar a estrutura e serviços de um SO.
Discutir a utilização de máquinas virtuais, docker e kubernetes em cloud computing.
2. Definir o conceito de processo. Identificar os constituintes de um processo. Reconhecer os componentes
envolvidos no escalonamento. Sumariar a criação e término de processos. Construir software que
desempenhe as ações anteriores. Criar programas que implementem a comunicação entre processos.
3. Explicar o conceito de threads. Criar programas que demonstrem a utilização de threads. Classificar os
modelos de multithreading e as bibliotecas thread.
4. Sumariar o escalonamento. Explicar o conceito de ciclo CPU-IO. Discutir os algoritmos de escalonamento.
Comparar os algoritmos anteriores.
5. Discutir o mecanismo de sincronização. Construir programas que implementem técnicas de sincronização.
Explicar os deadlocks. Sintetizar os métodos existentes para evitar deadlocks.
6. Identificar os diferentes tipos de memória. Analisar as técnicas utilizadas na sua gestão.
7. Sintetizar a interface e implementação de sistemas de ficheiros. Explicar a estrutura dos sistemas RAID.
8. Analisar o software de código aberto. Descrever os tipos de licenciamento de software. Identificar as
organizações, sistemas operativos e software no âmbito do software de código aberto. Instalar e operar uma
distribuição Linux.
9. Discutir a configuração de shells. Explicar a organização de diretorias e as formas de manipulação de
ficheiros. Criar e modificar diretorias e ficheiros.
10. Demonstrar a obtenção informação sobre processos e hardware. Explicar o processo de criação e
término de contas de utilizador e de grupos. Criar e modificar utilizadores e grupos. Modificar a propriedade
e permissões de ficheiros e diretorias.
Programa
1. Introdução. Evolução dos Sistemas Operativos (SO). Função, estrutura e serviços de um SO. Interface com
um SO. Chamadas ao sistema. Cloud computing: máquinas virtuais, docker e kubernetes.
2. Processos. Escalonamento: filas de espera, schedulers e context switch. Criação e término de processos.
Comunicação entre processos: sinais, pipes, memória partilhada e filas de mensagens. Comunicação em
sistemas cliente-servidor: sockets. Implementação em software da criação e comunicação entre processos.
3. Threads. Modelos de multithreading. Bibliotecas thread. Implementação em software.
4. Escalonamento. Conceito de ciclo CPU-IO e escalonador de CPU. Algoritmos de escalonamento.
5. Sincronização. Semáforos. Problemas de sincronização clássicos. Monitores. Deadlocks. Implementação
em software de soluções de sincronização.
6. Memória. Gestão de memória. Paging. Segmentação. Memória principal e virtual. Swapping.
7. Armazenamento. Gestão do armazenamento. Métodos de acesso e alocação de ficheiros. Gestão do
espaço livre. Sistemas RAID.
8. Software de código aberto. Tipos de licenciamento. UNIX e o Open Group. Distribuições BSD. FSF e o
projeto GNU. Distribuições Linux. Instalação e configuração de uma distribuição Linux. Arranque: sistema V,
systemd.
9. Shells. Fontes de ajuda. Variáveis de shell. Ficheiros de configuração. Aliases. Quoting. Estrutura de
diretorias. Gestão de ficheiros e diretórios. Globbing. Leitura e edição de ficheiros de texto. Pipes.
Redirecionamento. Expressões regulares. Scripts e automação de tarefas.
10. Gestão de processos e hardware. Segurança do siste
Estágio(s)
NAO
Bibliografia
Bresnahan, C. (2020). LPIC-1: Linux Professional Institute certification study guide (5th ed.). Sybex.
Marques, J. A., Ferreira, P., Ribeiro, C., Veiga, L., & Rodrigues, R. (2012). Sistemas operativos (2nd ed.). FCA.
Matthew, N., & Stones, R. (2007). Beginning Linux Programming (4th ed.). Wrox.
Robbins, K., & Robbins, S. (2015). Unix systems programming: Communication, concurrency and threads
(2nd ed.). Prentice Hall.
Silberschatz, A. (2018). Operating system concepts (10th ed.). Wiley.
Stallings, W. (2017). Operating systems: Internals and design principles (9th ed.). Pearson.
Tanenbaum, A. (2014). Modern operating systems (4th ed.). Pearson Education.