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

Ementa

Conceitos básicos de sistemas operacionais. Gerência de processador. “Multithreading¿. Comunicação entre processos. Gerência de memória. Gerência de entrada/saída. Sistemas de arquivos. Segurança em sistemas operacionais. Estudo de casos.

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. Sistema Operacional para Processadores Multi-Core
    1. Escalonamento
  4. Impasses
    1. Definição de impasses
    2. Técnicas para o tratamento de impasses
  5. 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
  6. Entrada/Saída
    1. Hardware e software de entrada/saída
    2. Projeto e implementação de drivers de dispositivos
  7. 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

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.

Sequência de assuntos tratados nas aulas

  1. 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; 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. Tipos de Sistemas Operacionais multiprocessados; Escalonamento com múltiplos processadores (8.1.2 e 8.1.4)
  17. 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)
  18. 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)
  19. 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)
  20. 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)
  21. Projeto de um driver de terminal; Gerenciamento de energia (Seção 5.6, 5.9.2) (Seção 5.5)
  22. 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)
  23. 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)
  24. 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)
  25. 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)

Lista de Discussão

Todas as informações para a turma serão enviadas através do sistema de controle acadêmico, ou seja, utilizando os emails institucionais dos alunos.

Turmas

 
so.txt · Modificado em: 10/12/2016 12:47 por fubica
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki