Objetivos

  • Compreender, através de uma visão integrada, a interação entre aplicações, o sistema operativo e o hardware.
  • Compreender a evolução dos sistemas operativos, com base nas mudanças em termos de aplicações e hardware ao longo dos anos.
  • Explorar os conceitos de processo, multi-programação e escalonamento no âmbito de sistemas operativos.
  • Adquirir conhecimentos sobre mecanismos de gestão de memória física e virtual.
  • Compreender diferentes desenhos e mecanismos para o armazenamento e acesso a dados persistentes, desde a interface de sistema de ficheiros, à interface por blocos, aos próprios dispositivos de armazenamento (discos).
  • Explorar os mecanismos do sistema operativo que permitem um melhor desempenho, isolamento e segurança para aplicações a partilhar recursos críticos.
  • Demonstrar capacidade em escrever programas eficientes e confiáveis que tiram proveito dos mecanismos de gestão de processos, memória e de E/S de um sistema operativo moderno.

Programa

  • Introdução a conceitos base e à evolução dos sistemas operativos.

Gestão de processos:

  • Noção de processo, multi-programação e estratégias de escalonamento.
  • Mecanismos de isolamento e segurança para ambientes multi-processo.

Gestão de memória:

  • Gestão de memória física, estruturas de dados, paginação e segmentação.
  • Sistemas de memória virtual e mecanismos de swapping de páginas.
  • Isolamento e segurança no acesso a memória partilhada.

Armazenamento de dados:

  • Pilha de armazenamento de um sistema operativo
  • Sistemas de ficheiros e interfaces de blocos
  • Dispositivos de armazenamento e escalonamento de pedidos de E/S.

Bibliografia

  • Operating Systems: Three Easy Pieces, Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau, Arpaci-Dusseau. Books, 2018.
  • Operating System Concepts, Abraham Silberschatz et al. John Wiley & Sons, 10th edition, 2021.
  • Modern Operating Systems, Andrew S. Tanenbaum, Herbert Bos. Prentice Hall, 5th edition, 2022.
  • Sistemas Operativos, Alves Marques et al. FCA Editora de Informática, 2a edição, 2012.

Atualizado: