Sistemas Operacionais

Bibliografia

  1. TANENBAUM, A.; BOS, H. Sistemas Operacionais Modernos. 4ª Edição. São Paulo: Pearson Education do Brasil, 2016.

  2. STALLINGS, W. Operating Systems: Internal and Design Principles. 8ª Edição. New Jersey: Pearson, 2015.

  3. SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G. Fundamentos de Sistemas Operacionais. 9º Edição. Rio de Janeiro: LTC, 2015.

Avaliação

Nota final = 0.3*Prova 1 + 0.1*Lista 1 + 0.3*Prova 2 + 0.1*Lista 2 + 0.2*Trabalho

Listas de exercício

Ementa

Mês Dia Matéria Slides
Março 12 Introdução. Avisos. Definições importantes. Revisão de arquitetura de computadores. 1-Introdução
14 Gerenciamento de processos. Gerenciamento de memória. Gerenciamento de armazenamento. Arquitetura orientada a serviço. Serviços do sistema operacional. Chamadas de sistema. Estruturas de SO's. 2-Conceitos
19 Processos. Criação. Término. Hierarquia. Estados. Multiprogramação. 3-Processos
21 Threads. Modelo clássico. POSIX. Implementação: no espaço do usuário, no núcleo e híbridas. Ativações pelo escalonador. Pop-up. 4-Threads
26 Comunicação entre processos. Exclusão mútua. Espera ocupada. Dormir e acordar. Semáforos. 5-Comunicação
28 Mutexes. Monitores. Troca de mensagens. Barreiras. Leitura-cópia-atualização. Introdução a impasses 6-Comunicação 2
Abril 02 Impasses. Algoritmo do avestruz. Modelagem de impasses. Detectar, prevenir e evitar impasses. Proposta do trabalho 7-Impasses
04 Escalonamento. Sistemas em lote. Sistemas interativos. Sistemas em tempo real. Política X mecanismo. Escalonamento de threads. 8-Escalonamento
09 Abstração de memória e espaços de endereçamento. Confirmação da proposta de trabalho 9-Memoria
11 Memória virtual 10-Memória Virtual
16 Algoritmos de substituição de páginas. Questões de projeto em alocação de páginas. 11-Algoritmos de substituição
18 Questões implementação de gerenciamento de memória. Segmentação de memória. 12-Segmentação
23 Feriado de São Jorge. Não há atividade neste dia.
25 Arquivos e diretórios. Implementação de sistemas de arquivos. 13-Sistemas de arquivos
30 Véspera do feriado do trabalhador. Não há atividade neste dia.
Maio 02 Revisão para a primeira prova.
07 Não haverá aula em virtude do SBRC 2018.
09 Não haverá aula em virtude do SBRC 2018. Entrega da primeira lista.
14 Primeira prova
16 Primeira apresentação do trabalho
21 Princípios de entrada e saída. Portas de entrada e saída. Mapeamento de E/S em memória. DMA. Interrupções imprecisas. Software de E/S. E/S programada, orientada a interrupções e utilizando DMA. Trocas com buffer. Spooling. Discos e RAID. 14-Entrada e Saída
23 Virtualização e hipervisores. Virtualização de memória, de entrada/saída. Máquinas virtuais. 15-Virtualização
28 Aula cancelada em virtude da greve de caminhoneiros. Aula cancelada
30 Aula cancelada em virtude da greve de caminhoneiros. Aula cancelada
Junho 04 Princípios de segurança. Sistemas confiáveis. TCB. Domínios de proteção. ACL. Papéis. Tíquetes de capacidade. Proteção de capacidades. Função criptograficamente segura de mão única. Ataques por repetição de comando/mensagem. Autenticação e autenticação por desafio. Ataques a software. Transbordamento de buffer. Ataque por injeção de comando. Tíquetes de capacidade. Proteção de capacidades. Função criptograficamente segura de mão única. Ataques por repetição de comando/mensagem. Autenticação e autenticação por desafio. Ataques a software. Transbordamento de buffer. Ataque por injeção de comando. 16-Segurança
06 Multiprocessadores. Arquiteturas de multiprocessadores. UMA e NUMA. Barramento cruzado. Redes de comutação multiestágio. Entrelaçamento de memória. Sistemas operacionais para multiprocessadores (abordagens simplória, mestre-escravos e multiprocessadores simétricos). Grande trava de núcleo e múltiplas regiões críticas. Instrução TSL em barramento compartilhado. Recuo exponencial binário. Chaveamento e escalonamento de threads. Escalonamento em bando. 17-Multiprocessadores & Multicomputadores
11 Acoplamento de multicomputadores. Interconexão. Comutação de circuitos. Comutação de pacotes. Software de comunicação. Chamadas de comunicação. Heterogeneidade de dispositivos. Middlewares. World Wide Web. Hospedeiros e roteadores. Pilha de protocolos da Internet. DNS, URL, HTTP. Consistência de sistemas de arquivos. Publicar/assinar. 18-Sistemas distribuídos
13 Exercícios e dúvidas. Entrega da 2ª lista.
18 Segunda prova.
20 Apresentações finais dos trabalhos.
25 Apresentações finais dos trabalhos. Vista de prova.
27 Jogo do Brasil.
Julho 02 Talvez jogo do Brasil.
4 Prova final.
9 Prova de 2ª chamada.

Trabalho

O trabalho da disciplina pode ser prático ou teórico, sobre um tema relacionado à disciplina de Sistemas Operacionais.

Grupos

O trabalho deverá ser feito em grupos de 2 ou 3 pessoas.

Trabálho prático

Um trabalho prático deve ser:

  • Uma implmentação pertinente à área de sistemas operacionais e hospedada em repositório no GitHub;
  • Um curto relatório sobre a implementação, que pode estar na forma de README no repositório. O relatório deve conter informações relevantes sobre o projeto, como os objetivos do projeto, os requisitos seguidos, a arquitetura e algoritmos implementados.
Trabalho teórico

Os trabalhos teóricos devem ser no formato de artigos de congressos da Sociedade Brasileira de Computação (SBC). Os artigos de congressos da SBC podem ser escritos em português ou inglês, e entregues no formato PDF. Existe um limite de 14 páginas. A formatação está disponível no site da SBC.

As regras de escrita científica devem ser observadas, como a utilização de referências bibliográficas e a análise de resultados.

Sugestão: utilizem o Overleaf ou algum outro editor online de LaTeX.

Avaliação

A avaliação será feita baseada nos seguintes critérios:

  • Contribuição e inovação;
  • Qualidade do funcionamento (quando trabalho prático);
  • Embasamento teórico e testes (quando trabalho teórico);
  • Tempo estimado para a conclusão do trabalho. O tempo base é de 17 horas de trabalho por integrante do grupo.

Os trabalhos serão realizados em duas apresentações.

  • Primeira apresentação: deverá, em 5 minutos, descrever o que foi feito até o momento para o trabalho. Deve motivar o trabalho e introduzir o trabalho aos colegas. Deve também apresentar as dificuldades encontradas e as decisões tomadas pelo grupo, de forma que os colegas possam criticar as decisões e contribuir com ideias e sugestões. Devem ser apresentadas as ferramentas a serem utilizadas no trabalho.
  • Segunda apresentação: deverá, em 15 minutos, descrever todo o trabalho. Deve ser apresentada uma arquitetura e todos os módulos do trabalho. Também deve ser apresentado o produto final do trabalho. Deve ter foco no que foi aprendido ao longo do trabalho e em explicar aos colegas os problemas e soluções encontrados.
Exemplos de temas de interesse

A seguir, uma lista não-exaustiva de temas de interesse para os trabalhos:

  • Políticas e mecanismos de resolução de conflitos;
  • Métodos inovadores de economia de energia;
  • Políticas de escalonamento;
  • Compartilhamento de recursos utilizando dispositivos IoT;
  • Caso de uso de OpenStack.

Notas de aula

O arquivo notas de aula contém notas de aula produzidas pelo professor. O material não substitui a bibliografia recomendada, mas pode ser utilizado como referência para os estudos.