Curso de Sistemas operacionais

Curso online gratuito · Intermediário · 9 aulas

Aprenda como um sistema operacional virtualiza a CPU e a memória, dá suporte à concorrência, armazena dados de forma persistente e protege e isola programas. Ao final, você consegue raciocinar sobre processos, threads, memória e armazenamento em qualquer sistema que construir ou executar.

Por Studeli

Comece pela aula 1

Este curso de Sistemas operacionais é para você?

Para quem é

Comece aqui se você programa em C (ou está disposto a ler exemplos em C) e quer entender processos, memória, concorrência e sistemas de arquivos do ponto de vista do sistema operacional.

O que você vai aprender em 9 aulas

Cada aula inclui as nove ferramentas de estudo

  • Guia de Estudo
  • Resumo
  • Lições Interativas
  • Questões de Prática
  • Flashcards
  • Explicar
  • Termos-Chave
  • Folha de Revisão
  • Mapa Conceitual
  1. Explique como um sistema operacional virtualiza a CPU com processos, chamadas de sistema e trocas de contexto e crie processos com fork, exec e wait.

    5 objetivos de aprendizagem
    1. 1.Explique o que um sistema operacional faz
    2. 2.Descreva os processos e os estados pelos quais passam
    3. 3.Crie e controle processos com fork, exec e wait
    4. 4.Explique o modo usuário, o modo núcleo e as chamadas de sistema
    5. 5.Explique como o sistema operacional compartilha a CPU com execução direta limitada
  2. Compare políticas de escalonamento como FIFO, tarefa mais curta primeiro, escalonamento circular e filas multinível com realimentação usando os tempos de retorno e de resposta.

    6 objetivos de aprendizagem
    1. 1.Descreva o que um escalonador de CPU faz e como avaliar seu desempenho
    2. 2.Compare o escalonamento FIFO, por tarefa mais curta primeiro, circular e por prioridade
    3. 3.Escalone sem conhecer os tempos de execução usando filas multinível com realimentação
    4. 4.Compartilhe a CPU proporcionalmente com bilhetes, passos e tempo de execução virtual
    5. 5.Escalone tarefas em várias CPUs
    6. 6.Explique e use os escalonadores de sistemas operacionais reais
  3. Explique como o sistema operacional fornece a cada processo seu próprio espaço de endereçamento usando base e limite, segmentação e gerenciamento do espaço livre.

    5 objetivos de aprendizagem
    1. 1.Explique como o sistema operacional fornece memória própria a cada processo
    2. 2.Use a API de memória e examine como o sistema operacional lhe dá suporte
    3. 3.Traduza endereços com base e limite
    4. 4.Traduza endereços com segmentação
    5. 5.Gerencie o espaço livre e a fragmentação
  4. Traduza endereços com tabelas de páginas e TLBs, compare tabelas de páginas multinível e avalie políticas de substituição de páginas quando a memória está cheia.

    5 objetivos de aprendizagem
    1. 1.Traduza endereços virtuais com paginação
    2. 2.Acelere a tradução com a TLB
    3. 3.Reduza o tamanho das tabelas de páginas
    4. 4.Supere a capacidade da memória física com troca de páginas
    5. 5.Escolha políticas de substituição de páginas e previna a hiperpaginação
  5. Crie threads, identifique condições de corrida e seções críticas e proteja dados compartilhados com travas.

    5 objetivos de aprendizagem
    1. 1.Explique o que são threads e crie-as com a interface de threads POSIX
    2. 2.Encontre condições de corrida e seções críticas em código concorrente
    3. 3.Proteja dados compartilhados com travas e mutexes
    4. 4.Explique como as travas são construídas com suporte de hardware
    5. 5.Projete estruturas de dados concorrentes baseadas em travas
  6. Coordene threads com variáveis de condição e semáforos, resolva os problemas do produtor-consumidor e dos leitores-escritores e previna impasses e outros erros de concorrência.

    5 objetivos de aprendizagem
    1. 1.Coordene threads com variáveis de condição
    2. 2.Use semáforos para garantir exclusão mútua, ordenar e limitar threads
    3. 3.Reconheça e corrija erros de concorrência que não envolvem impasses
    4. 4.Previna, evite e detecte impasses
    5. 5.Construa programas concorrentes com eventos em vez de threads
  7. Explique como o sistema operacional se comunica com os dispositivos por meio de interrupções, DMA e drivers e compare discos rígidos, SSDs e níveis de RAID quanto a desempenho e confiabilidade.

    5 objetivos de aprendizagem
    1. 1.Explique como o sistema operacional se comunica com os dispositivos
    2. 2.Modele o desempenho de discos rígidos e escalone requisições de disco
    3. 3.Explique como os SSDs baseados em memória flash funcionam e como se comparam aos discos rígidos
    4. 4.Use RAID para equilibrar capacidade, desempenho e confiabilidade
    5. 5.Detecte e corrija erros de armazenamento com somas de verificação
  8. Use a interface de arquivos e diretórios, explique como os sistemas de arquivos armazenam dados com inodes e estruturas de alocação e compare as abordagens com journaling e estruturadas em registro para manter a consistência após falhas.

    6 objetivos de aprendizagem
    1. 1.Use a interface de arquivos e diretórios
    2. 2.Explique como um sistema de arquivos simples armazena e localiza dados
    3. 3.Explique como o Fast File System usa a localidade para aumentar a velocidade
    4. 4.Mantenha um sistema de arquivos consistente após falhas
    5. 5.Explique como um sistema de arquivos estruturado em registro escreve dados e recupera espaço
    6. 6.Compare como os sistemas de arquivos distribuídos compartilham arquivos pela rede
  9. Explique como os sistemas operacionais autenticam usuários, controlam o acesso a recursos e isolam aplicações com máquinas virtuais e contêineres.

    5 objetivos de aprendizagem
    1. 1.Explique como o hardware e o núcleo protegem o sistema
    2. 2.Autentique usuários e atribua uma identidade aos processos
    3. 3.Controle o acesso a arquivos e outros recursos
    4. 4.Execute sistemas operacionais em máquinas virtuais
    5. 5.Isole aplicações com contêineres
Introdução à ciência da computação (Básico)

Comece aqui se você quer um primeiro contato amplo e conceitual com a ciência da computação (como funcionam computadores, dados, algoritmos e a internet) antes ou junto da sua primeira disciplina de programação.

Crie seus próprios Materiais de Estudo

Transforme suas anotações, slides e documentos em Guias de Estudo, Questões de Prática, Flashcards e mais 6 ferramentas.

Começar