Desenvolvimento de Sistemas Operacionais: projeto lógico, arquitetura, inicialização de Sistemas Computacionais, componentes (processos, threads, escalonador, mecanismos de sincronização, gerenciadores de memória, sistemas de arquivos, drivers de dispositivos de entrada e saída), teste, depuração, estudos de caso.
3. Cursos Relacionados
CIÊNCIAS DA COMPUTAÇÃO (208) - Currículo: 2007-1 (Obrigatória)
4. Objetivos
4.1 Objetivo Geral:
Projetar, implementar e testar software a nível de sistema operacional, incluindo device drivers, bibliotecas, kernels e middlewares, utilizando técnicas modernas de desenvolvimento de software de sistema.
4.2 Objetivos Específicos:
Conhecer, analisar e implementar algoritmos e técnicas de software a nível de sistema operacional.
Entender conceitos pertinentes ao projeto de software de sistema.
Projetar, implementar e validar componentes de software de sistema, incluindo device drivers, bibliotecas, kernels e middlewares.
5. Conteúdo Programático
Introdução [2 horas-aula]
Arquitetura e sistemas operacionais [12 horas-aula]
Elementos da organização e arquitetura de computadores pertinentes ao projeto de software de sistema
Inicialização de sistemas operacionais
Arquiteturas de software de sistemas operacionais
Projeto e implementação de software de sistema [12 horas-aula]
Metodologias de projeto
Técnicas de programação
Ferramentas
Estudos de casos [6 horas-aula]
Projeto, implementação e validação de componentes de software de sistema [36 horas-aula]
Discussão [4 horas-aula]
6. Bibliografia Básica
The RISC-V Instruction Set Manual, volumes I and II, https://riscv.org/technical/specifications.
SiFive RISC-V Core IP Documentation, https://www.sifive.com/documentation.
Intel 64 and IA-32 Architectures Software Developer?s Manual Combined Volumes: 1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D and 4, https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html.
ARM Architecture Reference Manual for A-profile Architecture, https://developer.arm.com/documentation/ddi0487/latest.
ARM Cortex-A Series Programmer's Guide for ARMv8-A, https://developer.arm.com/documentation/den0024/a/.
POSIX.1-2017 Standard Documentation, https://pubs.opengroup.org/onlinepubs/9699919799.2018edition.
7. Bibliografia Complementar
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein,
Introduction to Algorithms, 2022, ISBN 978-0262046305.
Adam Drozdek, Data Structures and Algorithms in C++, ISBN 978-1133608424, 2016.
Bjarne Stroustrup, The C++ Programming Language, ISBN 978-1691196005, 2019.