Antes de mergulharmos nas aplicações práticas do gerenciamento de processos, é essencial entender o que são os processos Linux e como eles funcionam. Este tópico pode parecer complexo à medida que exploramos os detalhes, então sinta-se à vontade para revisitar esta lição mais tarde, se necessário.
O que é um Processo Linux
Um processo é um programa em execução. Mais precisamente, é uma instância de um programa em execução ao qual o sistema alocou recursos como memória, tempo de CPU e E/S (Entrada/Saída). Por exemplo, se você abrir três janelas de terminal, executar o comando cat em duas delas sem argumentos (ele ficará esperando por entrada padrão, mantendo o processo ativo) e, em seguida, usar a terceira janela para executar ps aux | grep cat, você verá dois processos cat distintos. Cada um é uma instância separada do mesmo programa, com seu próprio ID de processo exclusivo e alocação de recursos.
O Papel do Kernel no Gerenciamento de Processos
O kernel Linux é responsável por todo o gerenciamento de processos. Quando você executa um programa, o kernel carrega seu código na memória, aloca os recursos de sistema necessários e começa a rastreá-lo como um processo. O kernel mantém informações detalhadas para cada processo, incluindo:
- O status do processo
- Os recursos que o processo está usando e recebendo
- O proprietário do processo
- O tratamento de sinais (falaremos mais sobre isso depois)
- E basicamente todo o resto
Todos os processos ativos competem por recursos do sistema. O kernel atua como um escalonador (scheduler), garantindo que cada processo receba uma parte justa dos recursos com base em sua prioridade e necessidades. Quando um processo conclui sua tarefa ou é encerrado, o kernel recupera os recursos que estava utilizando, tornando-os disponíveis para outros processos.