Sistemas Operacionais

Ementa

Componentes de um sistema. Administração dos recursos: memória principal e secundária. Administração dos processos: prioridades, interrupção, filas. Comunicação entre processos: semáforos e mensagens. Segurança.

Programa

  1. Introdução e estrutura de Sistemas Operacionais
  2. Processos e threads.
  3. Sincronização entre processos.
  4. Gerenciamento de memória. Esquemas de gerenciamento de memória.
  5. Memória virtual.
  6. Paginação, segmentação, princípio da localidade e do conjunto de trabalho.
  7. Gerência de Armazenamento. Sistema de arquivos. Memória secundária. Mapeamento de arquivos em disco.
  8. Dispositivos de entrada e saída.
  9. Projeto, interface e desempenho de sistemas de entrada e saída.
  10. Virtualização
      • Aulas XX -> (pos prof. Wagner)
        • Memória Princial( Capítulo 8 de [1])
          • Conceitos básico
            • Hierarquia
            • Hardware básico
            • Desafos
          • Endereço lógico vs endereço físico
          • Bibliotecas compartilhadas e ligação dinâmica
          • Alocação contínua
            • Proteção
            • Partições
            • Fragmentação
          • Segmentação
          • Paginação
            • Estrutura da tabela de páginas
          • Gerenciamento memória física
            • Buddy system
            • SLABs
      • Memória Virtual (Capítulo 9 de [1])
        • Espaço de Endereçamento
        • Paginação sob demanda
          • Copy on Write
          • Arquivos mapeados em memória
        • Algoritmos de substituição de  páginas
        • Thrasing

Bibliografia de Referência

  • [1] SILBERSCHATZ, Avi; GALVIN, Peter B.; GAGNE, Greg. Operating system concepts. 7.ed. Hoboken: Wiley. 2005.
  • [2] TANENBAUM, Andrew. Sistemas operacionais modernos. Rio de Janeiro: LTC. 1999.
  • [3] CESATI, Marco; BOVET, Daniel. Understanding the Linux Kernel. 3rd Edition: O’Reilly, 2005. voinici.ceata.org/~tct/resurse/utlk.pdf

Exercícios Memória / Armazenamento

  1. Explique a diferença entre fragmentação interna e externa.
  2. Dadas partições de memória de 100KB, 500KB, 200KB, 300KB e 600KB (em ordem), como cada um dos algoritmo: Fist-fit, best-fit e worst-fit, alocariam processos de 212Kb, 417Kb, 112KB e 426KB? Qual dos algoritmos faria o uso mais eficiente de memória.
  3. Explique os seguintes algoritmos para substituição de páginas (page replacement): FIFO, Optimal e LRU. No caso do LRU, você deve explicar quais são as políticas de aproximação para o LRU.
  4. Como funciona o mapeamento de arquivos em memória, qual a vantagem de utilizar esse modo de acesso.
  5. O que é o modo de alocação de memória “Buddy System”. Qual a sua desvantagem?
  6. O que é o mecanismo de alocação chamado SLAB?
  7. O que é o Overcommit de memória?
  8. Qual a relação entre o espaço de endereçamento virtual e utilização da memória física?
  9. O que significa dizer que a memória virtual de um processo é 50MB, a memória residente 20MB e a memória compartilhada 10MB.
  10. Quais as vantagens e desvantagens de guardar o nome do programa criador junto aos atributos do arquivo?
  11. Na semântica de sistema de arquivos do Unix o que acontece quando um arquivo que está aberto é removido?
  12. Sobre métodos de alocação de espaço, responder:
    a) Como funciona a alocação de espaço contígua? Que problemas apresenta?
    b) Como funciona a alocação de espaço por encadeamento (linked allocation). Quais os problemas apresentados por este método?
    c) Como funciona a FAT (File-Allocation Table) usado pelo MS-DOS, qual a diferença em relação à alocação por encadeamento simples?
    d) Mostre como ficaria a tabela FAT para um arquivo composto pelos seguintes blocos: 220, 340, 500, 600.
    e) Em um sistema de arquivos usando uma FAT o que acontece se ocorrer a corrupção total da tabela de alocação de arquivos?
    f) Como funciona a alocação de espaço indexada? Que problemas da alocação usando encadeamento ela tenta resolver?
    f) Dentro da alocação indexada quais são os mecanismos usados para guardar os índices?
    g) O que são i-nodes? Em qual mecanimos de alocação indexada eles se enquadram?
  13. Considere um sistema com i-nodes com 15 entradas. Nestes i-nodes as 12 primeiras entradas são para alocação direta; a 13 entrada para alocação simples indireta; a 14 para alocação dupla indireta e a 15 para alocação tripla-indireta. Considere ainda que cada bloco tem 512Kb e os endereços 4 bytes. Como ficaria a estrutura de inodes para armazenar um arquivo de 129024 bytes (252 blocos)?
  14. Qual a diferença de simbolic links e hard links? E como é a implentação de cada um? Como é feito o controle de remoção de arquivo em cada caso?
  15. Considere um sistema onde o espaço livre é gerênciado por uma lista de espaço livre. Suponha que o ponteiro para a lista de espaços-livres foi perdido. Esta lista pode ser reconstruída? Explique sua resposta.
  16. Quais são os métodos para gerênciamento de espaço livre em disco?
  17. Quais as estapas de um checkagem de consistência de um file system?
  18. Como funcionam os sistema de arquivos baseados em Journaling? Quais suas vantagem? O que tentam garantir?
  19. Explique os seguintes algoritmos de escalonamento de requisições de disco: FCSF, SSTF (Shortest-Seek First), SCAN, C-SCAN e LOOK.
  20. Compare RAID0, RAID1, RAID5 e RAID6.
  21. Suponha que você possui 4 discos rígidos de 750GB. Quanto espaço disponível você obteria usando RAID5 e quanto espaço você obteria com RAID6? Quantos discos poderiam falhar em cada um destes casos?

~