Tabela de Conteúdos

Curso de Sistemas Operacionais para Graduação em Ciência da Computação

Objetivos

Objetivos gerais

Objetivos específicos

Programa

  1. Introdução aos Sistemas Operacionais
    1. Funções de um sistema operacional
    2. Conceitos básicos
  2. Processos
    1. Definição e estrutura de processos
    2. Estados de um processo
    3. Escalonamento de processos
    4. Fluxo de execução de um processo
    5. Multithreading
    6. Comunicação entre processos
  3. Gerência de Memória
    1. Gerência de memória sem swap ou paginação
    2. Swapping
    3. Memória virtual
    4. Algoritmos de reposição de páginas
    5. Segmentação
  4. Entrada/Saída
    1. Hardware e software de entrada/saída
    2. Projeto e implementação de drivers de dispositivos
  5. Sistemas de Arquivos
    1. Arquivos e diretórios
    2. Implementação de sistemas de arquivos
    3. Segurança e mecanismos de proteção da informação
  6. Sistema Operacional para Processadores Multi-Core
    1. Escalonamento
  7. Impasses
    1. Definição de impasses
    2. Técnicas para o tratamento de impasses

Bibliografia

Plano de Aulas

  1. Anunciar URL da disciplina; avisar para todos olharem as datas importantes; apresentar os objetivos da disciplina; apresentar o conteúdo da disciplina; apresentar o processo de avaliação da disciplina; informar sobre lista de e-mail da disciplina; apresentar a motivação para a disciplina; introdução aos sistemas operacionais. (Capítulo 1)
  2. O modelo de processos; estados de um processo. (Seção 2.1)
  3. Escalonamento de processos; níveis de escalonamento; algoritmos de escalonamento. (Seção 2.5)(Seção 2.4)
  4. Criação de processos e noções de fluxos de execução de processos (Seção 2.2) (12.1.1-12.1.4);
  5. Comunicação entre processos através de memória compartilhada; condições de corrida; regiões críticas. (Seções 2.1.2, 2.3.1, 2.3.2) (Seções 2.2.1, 2.2.2)
  6. Exclusão mútua com espera ocupada; bloqueio de processos. (Seções 2.3.3 e 2.3.4) (Seções 2.2.3 e 2.2.4)
  7. Exclusão mútua com bloqueio de processos; semáforos; monitores. (Seções 2.3.5 e 2.3.7) (Seções 2.2.5 e 2.2.7)
  8. Solução de problemas usando semáforos. (Seção 2.4) (Seção 2.3)
  9. Princípios da gerência de memória; monoprogramação versus multiprogramação; relocação de código e proteção. (Seção 4.1) (Seção 3.1)
  10. Gerência de memória com partições fixas e variáveis. Swapping. (Seção 4.2) (Seção 3.2)
  11. Memória virtual; paginação; tabela de páginas. (Seção 4.3.1) (Seção 3.3.1)
  12. Paginação multinível; memória associativa (TLB); tabela de páginas invertida. (Seções 4.3.2, 4.3.3 e 4.3.4) (Seções 3.3.2, 3.3.4 e 3.3.5)
  13. Algoritmos de reposição de páginas. (Seção 4.4) (Seção 3.4)
  14. Princípios de projeto de sistemas paginados; detalhes do procedimento para tratamento de falta de páginas. (Seção 4.7) (Seção 3.7)(Seções 4.4.8, 4.6.1, 4.6.3) (Seções 3.6.1, 3.6.2 e 3.6.3)
  15. Segmentação de memória. (Seção 4.8) (Seção 3.7)
  16. Introdução; implementação de sistemas de arquivos. (Seções 6.1, 6.2, 6.3.1, 6.3.2, 6.3.3 e 6.4.5) (Seções 4.1, 4.2, 4.3.1, 4.3.2, 4.3.3 e 7.5.3)
  17. Confiabilidade de sistemas de arquivos; recuperação de sistemas de arquivos; administração e desempenho de sistemas de arquivos. (Seções 6.3.5, 6.3.6 e 6.3.7) (Seções 4.3.4, 4.3.5 e 4.3.6)
  18. O sistema de arquivos do UNIX; outros sistemas de arquivos. (Seções 10.6.3 e 11.7) (Seções 7.5.3 e 8.5.3)
  19. Segurança de sistemas; princípios de projeto de sistemas visando segurança; mecanismos de proteção. (Seções 9.3.1, 9.6 e 10.7) (Seções 4.4 e 4.5)
  20. Princípios do hardware de entrada/saída; objetivos do software de entrada/saída de um sistema operacional. (Seções 5.1 e 5.2) (Seções 5.1 e 5.2.1)
  21. Organização do software de entrada/saída de um sistema operacional. (Seções 5.3) (Seções 5.2.2, 5.2.3, 5.2.4 e 5.2.5)
  22. Projeto de um driver de disco; projeto de um driver de relógio. (Seções 5.4.3, 5.4.4, 5.4.5, 5.5) (Seções 5.3 e 5.4)
  23. Projeto de um driver de terminal; Gerenciamento de energia (Seção 5.6, 5.9.2) (Seção 5.5)
  24. Tipos de Sistemas Operacionais multiprocessados; Escalonamento com múltiplos processadores (8.1.2 e 8.1.4) (-)
  25. Definição de impasses; formas de tratamento; detecção e recuperação de impasses; evitando impasses; prevenindo impasses; outros assuntos relacionados. (travamento em duas fases, starvation) (Seções 3.1, 3.2, 3.3, 3.4, 3.6, 3.6 e 3.7) (Seções 6.1, 6.2, 6.3, 6.4, 6.5, 6.6 e 6.7)

Avaliação

A avaliação será feita em três provas. A primeira prova engloba o conteúdo dos pontos 1 até 8. A segunda prova engloba o conteúdo dos pontos 9 15. A terceira prova engloba o conteúdo dos pontos 16 até 25. As notas das provas serão divulgadas no site do controle acadêmico.