Planeamento

Aulas

T01: Introdução aos Sistemas Operativos

  • Apresentação (horário, avaliação, logística, recursos, conselhos)
  • Introdução aos sistemas operativos
  • Evolução histórica
  • Tipos, funções e características dos vários sistemas operativos
  • História dos sistemas operativos Linux e Windows
  • Suporte teórico da aula prática-laboratorial P01

  • T02: Conceitos e organização do SO

  • Hardware e Conceitos
  • Processador, memória, periféricos, procesos, gestão de memória, sistema de ficheiro
  • Estrutura de um Sistema Operativo
  • Organização do núcleo
  • Suporte teórico da aula prática-laboratorial P02

  • T03: Periféricos Entrada/Saída

  • Mecanismos de entrada/saída
  • Periféricos
  • Interrupções
  • Device drivers
  • Chamadas ao sistema e spooling
  • Suporte teórico da aula prática-laboratorial P03


    T04: Sistemas de ficheiros

  • Sistemas de ficheiros
  • Ficheiros
  • Diretorias
  • FAT (Windows)
  • EXT (Linux)
  • Suporte teórico da aula prática-laboratorial P04


    T05: Linguagem C

  • Elementos de programação em Linguagem C
  • Variáveis
  • Estruturas de controlo
  • Expressões condicionais e lógicas
  • Funções
  • Arrays
  • Strings
  • Estruturas
  • Ficheiros
  • Ponteiros
  • Suporte teórico da aula prática-laboratorial P05


    T06: Processos e Concorrência

  • Processos e Context switching
  • Pseudo-paralelismo
  • Multiprocessamento
  • Multiprogramação
  • Concorrência e não-determinismo
  • Funcionamento do SO para argumentos passados nos programas em C
  • Funcionamento do SO para argumentos passados nas funções em C
  • Endereços de memória, ponteiros e aritmética de ponteiros em C
  • Suporte teórico da aula prática-laboratorial P06

  • T07: Escalonamento de Processos

  • Objetivos do esclalonamento de processos
  • Comportamento dos processos
  • Algoritmos de esclalonamento de Processos: FIFO
  • Algoritmos de esclalonamento de Processos: Round-Robin
  • Conceito de tempo Quantum
  • Multiplas filas de processos
  • Suporte teórico da aula prática-laboratorial P07

  • T08: Sincronização de Processos

  • Sincronização de Processos
  • Regiões críticas e exclusão
  • Mecanismos de sincronização
  • Semáforos
  • Deadlocks
  • Suporte teórico da aula prática-laboratorial P08

  • T09: Comunicação entre Processos

  • InterProcess Communication (IPC)
  • Pipes
  • FIFOs
  • Message Queues
  • Shared Memories
  • Suporte teórico da aula prática-laboratorial P09

  • T10: Gestão de Memória

  • Gestão de Memória
  • Organização hierárquica da memória
  • Sistemas Multiprogramados
  • Endereçamento Real e Virtual
  • Paginação
  • Tabelas de Páginas
  • Suporte teórico da aula prática-laboratorial P10

  • T11: Gestão de Memória

  • Gestão de Memória
  • Algoritmos de substituição de páginas
  • Conceito de Thrashing e de Working Set
  • Paginação
  • Segmentação
  • Suporte teórico da aula prática-laboratorial P11

  • T12: Revisões e Preparação para o Teste Escrito

  • Esclarecimento de dúvidas
  • Resolução de testes anteriores
  • Resoluçao de exercícios

  • Aulas

    P01: Trabalho remoto, comandos shell, vi

  • Trabalho em ambiente remoto (SSH, SFTP)
  • Linha de Comandos
  • Sistema de ficheiros
  • Bash (Bourne Again Shell)
  • Comandos relacionados com ficheiros e directorias
  • Redireccionamento de standard streams e utilização de pipes
  • Utilizaçã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 texto
  • Expressões Regulares
  • Comandos shell: grep, head, tail, wc, sort, uniq, sed, awk
  • Instalação e utilização de um editor de texto para trabalho remoto (VSCode + SSH FS)
  • Variáveis locais e de ambiente
  • Shell e sub-shell
  • Uso intensivo de pipes para criação de comandos complexos

  • P03: Desenvolvimento de scripts em shell Bash

  • Shell scripts
  • Passagem de argumentos por linha de comandos
  • Interação com utilizador
  • Estruturas de controlo Bash
  • Algoritmos 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 C
  • Variáveis, estruturas de controlo, expressões condicionais e lógicas
  • Funções, arrays

  • P06: Linguagem C: strings, estruturas, ponteiros e ficheiros

  • Linguagem C
  • Strings e funções de manipulação de strings
  • Estruturas,
  • Ponteiros
  • Ficheiros

  • P07: Processos e Sinais

  • Criação e execução de processos
  • Primitivas Linux: fork, exec, execl
  • Envio 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 IPC
  • IPC: 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: Pipes
  • Apoio ao trabalho prático - Parte 3