| Designação | Código | Curso | Regime | Regente |
|---|
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. |