Fundamentos de OS
O curso explica o papel do sistema operacional numa aplicação Rails. Começa pelo kernel, pelo modo usuário e pelas chamadas de sistema. Depois trata de processos, fork, exec, copy-on-write e sinais. Segue com threads, concorrência, o GVL do Ruby e mutex, e então memória virtual, pilha, heap e coleta de lixo. Aborda inodes, descritores de arquivo, permissões, I/O bloqueante e não bloqueante, buffers e pipes. A última aula liga cada conceito ao Puma, ao pool de conexões, à rotação de logs e aos containers Docker.
O que você vai aprender
- ✓O kernel, o modo usuário e as chamadas de sistema
- ✓Processos, fork, exec, copy-on-write e sinais
- ✓Threads, o GVL, condições de corrida e mutex
- ✓Memória virtual, pilha, heap e coleta de lixo no Ruby
- ✓Inodes, descritores de arquivo, permissões e multiplexação de I/O
- ✓Como Puma, conexões com o banco e Docker usam esses conceitos
O que é um sistema operacional?
Toda vez que você roda bin/rails server, algo gerencia os milhares de detalhes necessários para fazer tudo funcionar: alocando RAM para objetos Ruby, agendando tempo de CPU entre seu servidor e sua playlist do Spotify, lendo arquivos do disco e roteando pacotes de rede do navegador até o Puma.
Ler a aula completa grátis →Currículo
7 aulasO que é um sistema operacional?
Define o sistema operacional, seus cinco trabalhos, o kernel, as chamadas de sistema, o boot e a filosofia Unix.
Processos: programas em ação
Explica processos, PIDs e estados, fork e exec, copy-on-write no Puma, zumbis, sinais e variáveis de ambiente.
Threads e concorrência
Compara threads e processos, distingue concorrência de paralelismo e trata do GVL, condições de corrida, mutex e Ractors.
Gerenciamento de memória
Trata de memória virtual, páginas e falhas de página, pilha e heap, slots do heap Ruby e coleta de lixo.
O sistema de arquivos
Descreve inodes, hard links e symlinks, descritores de arquivo, permissões, journaling e o uso do sistema de arquivos pelo Rails.
I/O e o kernel
Explica espaço do usuário e do kernel, syscalls, I/O bloqueante e não bloqueante, epoll, buffers, fsync e pipes.
O SO e sua aplicação Rails
Relaciona cada conceito a uma aplicação Rails: workers do Puma, pool de conexões, sinais, rotação de logs, permissões e Docker.