MINISTÉRIO DA EDUCAÇÃO

UNIVERSIDADE FEDERAL DE SANTA CATARINA

CENTRO TECNOLÓGICO

DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA

PROGRAMA DE ENSINO

1. Identificação

Disciplina:INE5424 - Sistemas Operacionais II
Nível:Graduação
Carga Horária:72 horas-aula (Teórica: 18; Prática: 54)
Vigência:De 2023-1 até a presente data

2. Ementa

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

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:

  1. Conhecer, analisar e implementar algoritmos e técnicas de software a nível de sistema operacional.
  2. Entender conceitos pertinentes ao projeto de software de sistema.
  3. Projetar, implementar e validar componentes de software de sistema, incluindo device drivers, bibliotecas, kernels e middlewares.

5. Conteúdo Programático

  1. Introdução [2 horas-aula]
  2. Arquitetura e sistemas operacionais [12 horas-aula]
    1. Elementos da organização e arquitetura de computadores pertinentes ao projeto de software de sistema
    2. Inicialização de sistemas operacionais
    3. Arquiteturas de software de sistemas operacionais
  3. Projeto e implementação de software de sistema [12 horas-aula]
    1. Metodologias de projeto
    2. Técnicas de programação
    3. Ferramentas
  4. Estudos de casos [6 horas-aula]
  5. Projeto, implementação e validação de componentes de software de sistema [36 horas-aula]
  6. Discussão [4 horas-aula]

6. Bibliografia Básica

  1. The RISC-V Instruction Set Manual, volumes I and II, https://riscv.org/technical/specifications.
  2. SiFive RISC-V Core IP Documentation, https://www.sifive.com/documentation.
  3. 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.
  4. ARM Architecture Reference Manual for A-profile Architecture, https://developer.arm.com/documentation/ddi0487/latest.
  5. ARM Cortex-A Series Programmer's Guide for ARMv8-A, https://developer.arm.com/documentation/den0024/a/.
  6. POSIX.1-2017 Standard Documentation, https://pubs.opengroup.org/onlinepubs/9699919799.2018edition.

7. Bibliografia Complementar

  1. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein,
  2. Introduction to Algorithms, 2022, ISBN 978-0262046305.
  3. Adam Drozdek, Data Structures and Algorithms in C++, ISBN 978-1133608424, 2016.
  4. Bjarne Stroustrup, The C++ Programming Language, ISBN 978-1691196005, 2019.