Processes & Scheduling
Categoria
11 artigos
- 01Carregamento de ELF
Transformando um binário ELF em disco em um processo em execução, mapeando os segmentos que seus program headers descrevem.
- 02Escalonadores
Decidindo qual tarefa roda em seguida, de round-robin simples a esquemas baseados em prioridade.
- 03fork e exec
Por que o Unix cria um processo em duas etapas separadas, e como copy-on-write torna a primeira barata apesar de parecer duplicar tudo.
- 04FXSAVE/XSAVE e Estado de FPU/SIMD
As instruções que salvam e restauram o estado de registrador de ponto flutuante e vetorial, e como XSAVE generaliza o formato antigo de tamanho fixo para cobrir AVX e além.
- 05Inversão de Prioridade e Herança de Prioridade
Como uma tarefa de baixa prioridade segurando um lock pode travar uma de alta prioridade indefinidamente, e a técnica que limita quanto tempo esse travamento dura.
- 06IPC (Pipes, Memória Compartilhada, Sinais)
Como dois processos já criados de fato trocam dados ou eventos entre si: pipes como um buffer de kernel, memória compartilhada como dois mapeamentos dos mesmos frames, sinais como entrega assíncrona.
- 07Multitarefa
Os blocos de construção para rodar mais de uma tarefa em uma única CPU.
- 08Sincronização
Por que um escalonador rodando em mais de uma CPU consegue corromper sua própria fila de execução, e os locks, atômicos, e desabilitação de interrupções que um kernel usa para impedir isso.
- 09Término de Processo, Zumbis, e wait()
Para onde vai o status de saída até um pai coletá-lo, por que um processo terminado pode continuar existindo como zumbi, e o que acontece com um filho cujo pai já saiu.
- 10Threads e Thread-Local Storage
O que uma thread de fato compartilha com suas irmãs versus o que permanece privado, e como TLS dá a cada uma sua própria cópia de uma variável global.
- 11Troca de Contexto
Salvando e restaurando o estado da CPU para que a execução possa se mover entre tarefas.