Tecnologias de Sistemas Operativos
Objetivos
Compreender o desenho e arquiteturas de sistemas operativos modernos
- Adquirir conhecimento sobre mecanismos avançados de escalonamento de processos em ambientes com múltiplos processadores e cores e com aplicações modernas com funcionalidades como polling e kernel-bypass.
- Compreender o funcionamento de componentes avançados de gestão de memória em sistemas operativos modernos (p.ex., Page Cache), e das políticas de gestão associadas aos mesmos.
- Aprofundar conhecimento sobre componentes e otimizações de E/S para o armazenamento de dados em sistemas operativos modernos (p.ex., sistemas de ficheiros, block devices).
- Implementar a monitorização e diagnóstico de sistemas operativos modernos, de forma a complementar a sua compreensão, bem como das aplicações suportadas pelo mesmo.
- Avaliar o desempenho de sistemas operativos modernos e das aplicações a utilizar os mesmos.
Programa
- Visão geral focada no desenho e arquitetura de sistemas operativos modernos UNIX.
- Conceitos e ferramentas (p.ex., extended Berkeley Packet Filter (eBPF)) de observabilidade e monitorização do comportamento de sistemas operativos.
- Tópicos avançados de escalonamento de processos, incluindo ambientes multi core/CPU e aplicações modernas que utilizam técnicas de polling e kernel-bypass.
- Tópicos avançados de gestão de memória de sistemas operativos (p.ex., Page Cache). Noções de buffering e caching, políticas de despejo.
- Tópicos avançados de soluções de E/S para armazenamento de dados em sistemas operativos. Noções sobre organização interna de sistemas de ficheiros modernos e das otimizações implementadas pelos mesmos (p.ex., caching, deduplicação, compressão).
- Conceitos teóricos e práticos sobre o diagnóstico e avaliação de sistemas operativos modernos e das aplicações suportadas pelos mesmos.
Bibliografia
- Operating Systems: Three Easy Pieces. Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau, Arpaci-Dusseau Books, 2018
- BPF Performance Tools. Brendan Gregg. Addison-Wesley Professional, 2019
- Understanding the Linux Kernel, 3rd Edition. Daniel Bovet, Marco Cesati. O’Reilly 2005