Este artigo tem como objetivo mostrar divergências que existem quanto à gerência de processos de sistemas operacionais. Por enquanto abordaremos apenas o tão idolatrado Windows e o Unix, que é a base de sistemas operacionais famosos como o Linux, Mac-OS e  Android que é uma plataforma mobile.

Antes de tudo, o que são processos? Você provavelmente já deve ter ouvido essa palavra quando o assunto é informática ou até mesmo lido no próprio sistema operacional, em todos os aplicativos, por trás daquela interface bonita existem milhares de instruções e comandos no qual o sistema operacional deve gerenciar para que o aplicativo continue funcionando, essas instruções e comandos são executados pelos processos, isso nos permite que mesmo que uma parte de algum aplicativo que estejamos executando esteja “travada”, a outra parte continue funcionando. Lembrando que os processos não precisam estar ligados necessariamente a algum aplicativo, eles podem estar relacionados ao próprio sistema operacional auxiliando no gerenciamento de Hardware.

No Unix, processos podem gerar outros processos, dando a nomenclatura de processo ”pai” e processo “filho” gerando assim uma hierarquia, alertando que processos filhos possuem apenas um processo pai, mas um processo pai pode ter vários processos filhos. O fato de ser um processo filho não impede que o mesmo também tenha processos filhos, veja na figura um exemplo de hierarquia onde o processo P1 está no topo:

 

Este tipo de organização dificulta a propagação de vírus em nossos sistemas operacionais, pois quando um processo pai é “morto” seja pelo sistema ou pelo próprio usuário, todos que estiverem abaixo dele na hierarquia serão mortos também.

Agora no Windows um conceito de hierarquia não seria muito adequado, primeiramente cada processo do Windows possui um identificador próprio chamado de handle, algo como uma hierarquia ocorre somente quando um processo gera outro, a partir desse ponto o processo filho ganha uma ligação com o identificador do processo pai:

 

O conceito de hierarquia é quebrado quando um processo pai passa seu handle para outro processo que é o que acontece no Windows, assim o processo filho quebra sua antiga ligação com o processo pai e gera uma nova ligação com seu novo processo pai.

Agora, ao contrário do que ocorre no Unix, quando um processo pai é “morto”, seus filhos não morrem junto com o processo pai, o que não é muito efetivo contra os vírus, pois não adianta matar o só o processo gerador dos vírus, tem que elimina-los por completo matando todos os seus filhos.

Obrigado e até a próxima!!!