Planeamento
Aulas
T01: Introdução aos Sistemas Operativos
Apresentação (horário, avaliação, logística, recursos, conselhos)Introdução aos sistemas operativosEvolução históricaTipos, funções e características dos vários sistemas operativosHistória dos sistemas operativos Linux e WindowsSuporte teórico da aula prática-laboratorial P01
T02: Conceitos e organização do SO
Hardware e ConceitosProcessador, memória, periféricos, procesos, gestão de memória, sistema de ficheiroEstrutura de um Sistema OperativoOrganização do núcleoSuporte teórico da aula prática-laboratorial P02
T03: Periféricos Entrada/Saída
Mecanismos de entrada/saídaPeriféricosInterrupçõesDevice driversChamadas ao sistema e spoolingSuporte teórico da aula prática-laboratorial P03
T04: Sistemas de ficheiros
Sistemas de ficheirosFicheirosDiretoriasFAT (Windows)EXT (Linux)Suporte teórico da aula prática-laboratorial P04
T05: Linguagem C
Elementos de programação em Linguagem CVariáveisEstruturas de controloExpressões condicionais e lógicasFunçõesArraysStringsEstruturasFicheirosPonteirosSuporte teórico da aula prática-laboratorial P05
T06: Processos e Concorrência
Processos e Context switchingPseudo-paralelismoMultiprocessamentoMultiprogramaçãoConcorrência e não-determinismoFuncionamento do SO para argumentos passados nos programas em CFuncionamento do SO para argumentos passados nas funções em CEndereços de memória, ponteiros e aritmética de ponteiros em CSuporte teórico da aula prática-laboratorial P06
T07: Escalonamento de Processos
Objetivos do esclalonamento de processosComportamento dos processosAlgoritmos de esclalonamento de Processos: FIFOAlgoritmos de esclalonamento de Processos: Round-RobinConceito de tempo QuantumMultiplas filas de processosSuporte teórico da aula prática-laboratorial P07
T08: Sincronização de Processos
Sincronização de ProcessosRegiões críticas e exclusãoMecanismos de sincronizaçãoSemáforosDeadlocksSuporte teórico da aula prática-laboratorial P08
T09: Comunicação entre Processos
InterProcess Communication (IPC)PipesFIFOsMessage QueuesShared MemoriesSuporte teórico da aula prática-laboratorial P09
T10: Gestão de Memória
Gestão de MemóriaOrganização hierárquica da memóriaSistemas MultiprogramadosEndereçamento Real e VirtualPaginaçãoTabelas de PáginasSuporte teórico da aula prática-laboratorial P10
T11: Gestão de Memória
Gestão de MemóriaAlgoritmos de substituição de páginasConceito de Thrashing e de Working SetPaginaçãoSegmentaçãoSuporte teórico da aula prática-laboratorial P11
T12: Revisões e Preparação para o Teste Escrito
Esclarecimento de dúvidasResolução de testes anterioresResoluçao de exercícios
Aulas
P01: Trabalho remoto, comandos shell, vi
Trabalho em ambiente remoto (SSH, SFTP)Linha de ComandosSistema de ficheirosBash (Bourne Again Shell)Comandos relacionados com ficheiros e directoriasRedireccionamento de standard streams e utilização de pipesUtilização de um editor de texto para trabalho remoto (vi)
P02: Comandos Bash shell para manipulação de texto
Comandos comuns de manipulação de textoExpressões RegularesComandos shell: grep, head, tail, wc, sort, uniq, sed, awkInstalação e utilização de um editor de texto para trabalho remoto (VSCode + SSH FS)Variáveis locais e de ambienteShell e sub-shellUso intensivo de pipes para criação de comandos complexos
P03: Desenvolvimento de scripts em shell Bash
Shell scriptsPassagem de argumentos por linha de comandosInteração com utilizadorEstruturas de controlo BashAlgoritmos e programas simples em Bash
P04: Apoio ao trabalho prático - Parte 1
Apoio ao trabalho prático - Parte 1
P05: Linguagem C: estruturas de controlo, funções, arrays
Linguagem CVariáveis, estruturas de controlo, expressões condicionais e lógicasFunções, arrays
P06: Linguagem C: strings, estruturas, ponteiros e ficheiros
Linguagem CStrings e funções de manipulação de stringsEstruturas,PonteirosFicheiros
P07: Processos e Sinais
Criação e execução de processosPrimitivas Linux: fork, exec, execlEnvio e tratamento de sinais
P08: FIFOs, Apoio ao trabalho prático - Parte 2
FIFOs (named pipes)Apoio ao trabalho prático - Parte 2
P09: IPC: Semáforos
Mecanismos IPCIPC: semáforos
P10: IPC: Filas de Mensagem
IPC: Filas de Mensagem
P11: IPC: Memória Partilhada
IPC: Memória Partilhada
P12: IPC: Pipes, apoio ao trabalho prático - Parte 3
IPC: PipesApoio ao trabalho prático - Parte 3