Departamento de Informática (UM)

Página de Unidade Curricular 🇬🇧

DesignaçãoCódigoCursoRegimeRegente

Tecnologias de Sistemas Operativos

17024 [J306Q6]

Licenciatura em Engenharia Informática [ENGINF]

S2

João Tiago Medeiros Paulo

Objetivos

O conteúdo programático está organizado de forma a providenciar aos alunos, numa primeira fase, os conceitos fundamentais sobre a organização de sistemas operativos modernos. Estes conceitos são complementados com uma introdução a ferramentas de observabilidade e monitorização de sistemas operativos, que permitirão aos alunos experimentar, observar e compreender melhor o seu funcionamento interno.
De seguida, o programa aborda tópicos avançados em três das principais funcionalidades de um sistema operativo, nomeadamente, gestão de processos, gestão de memória e gestão de persistência de dados. Para cada um dos tópicos serão discutidas técnicas e otimizações avançadas que os sistemas operativos modernos suportam.
Por fim, a unidade curricular irá abordar os tópicos de diagnóstico e avaliação experimental de sistemas operativos e das aplicações suportadas pelos mesmos.

Programa

1. Visão geral focada no desenho e arquitetura de sistemas operativos modernos UNIX.
2. Conceitos e ferramentas (p.ex., extended Berkeley Packet Filter (eBPF)) de observabilidade e monitorização do comportamento de sistemas operativos.
3. 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.
4. 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.
5. 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).
6. 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.

Resultados da aprendizagem

- 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.

Método de avaliação

A componente de avaliação terá uma componente teórica com um peso entre 40% e 60% e uma componente prática com trabalho em grupo com um peso entre 40% e 60%.

Funcionamento

Turno: T 1; Docente: Tânia Conceição Araújo Esteves; Dep.: DI; Horas: 15.
Turno: T 1; Docente: João Tiago Medeiros Paulo; Dep.: DI; Horas: 15.
Turno: TP 1; Docente: Tânia Conceição Araújo Esteves; Dep.: DI; Horas: 15.
Turno: TP 1; Docente: João Tiago Medeiros Paulo; Dep.: DI; Horas: 15.

[ Outras UCs do Departamento ]