Estamos acostumados a utilizar diariamente o
Linux, para executar programas, rodar daemons, matar processos etc. Entretanto, nem sempre conseguimos tirar o tempo necessário para entender como cada parte funciona. Por conta disso, este artigo foi criado visando facilitar a compreensão básica do assunto.
Pode-se dizer que um processo é um programa em execução, porém, com algumas características próprias: PID (ID do processo), PPID (ID do processo pai), user (usuário que o processo pertence), group (grupo que o processo pertence) e prioridade.
Uma curiosidade sobre processos, quando o kernel termina de ser executado ele executa o comando
/sbin/init que terá o process ID 1. Esse programa fica em execução até que o sistema seja desligado.
Voltando às características de um processo, o PID (Process ID) é seu identificador, aquilo que possibilita que o sistema identifique um determinado processo. Dois processos distintos não podem possuir o mesmo PID, já que ele é único.
Um processo tem a possibilidade de instanciar processos filhos que possuirão uma referência para o processo pai. PPID (Parent Process ID) é o nome que damos à propriedade que guarda essa referência.
Cada processo é atribuído a um usuário e um grupo (GID). Isso determina o acesso do processo a arquivos, devices, diretórios etc. Vale lembrar que o usuário e o grupo atribuído são passados para os processos filhos.
O sistema divide o tempo da CPU em espaços de tempos, onde cada um dura por uma determinada fração de tempo, por conta disso cada processo possui um valor de prioridade, assim o sistema sabe qual processo irá ser executado no próximo espaço de tempo.