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

Objetivos

Objetivos gerais

  • Entender o papel do sistema operacional dentro de um sistema computacional
  • Entender o funcionamento dos vários módulos que compõem um sistema operacional
  • Desenvolver uma visão crítica sobre os requisitos de confiabilidade, segurança e desempenho, associados a um sistema operacional

Objetivos específicos

  • Compreender os mecanismos básicos de: chamada ao sistema, tratamento de interrupções, bloqueio e escalonamento de processos
  • Compreender as principais estruturas de dados de um sistema operacional
  • Compreender os principais algoritmos utilizados para gerir a utilização dos recursos do sistema
  • Compreender as necessidades e os mecanismos utilizados pelo sistema operacional para prover segurança para o sistema computacional

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

  • (Livro texto) Sistemas Operacionais Modernos, A.S. Tanenbaum, 2a edição, Pearson Education do Brasil, 2003.
  • The Design of the UNIX Operating System, M. Bach, Prentice-Hall, 1985.
  • Inside Windows NT, H. Custer, Microsoft Press, 1993.

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.

 
so.txt · Modificado em: 21/04/2018 18:04 por fubica
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki