Processos zumbis e órfãos em C
Pré-requisito: fork() em C
No código a seguir, o filho termina sua execução usando a chamada de sistema exit() enquanto o pai dorme por 50 segundos, portanto, não chama wait() e a entrada do processo filho ainda existe na tabela de processos.
// A C program to demonstrate Zombie Process.
// Child becomes Zombie as parent is sleeping
// when child process exits.
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
// Fork returns process id
// in parent process
pid_t child_pid = fork();
// Parent process
if (child_pid > 0)
sleep(50);
// Child process
else
exit(0);
return 0;
}
Observe que o código acima pode não funcionar com o compilador online, pois fork() está desabilitado.
No código a seguir, pai termina a execução e sai enquanto o processo filho ainda está em execução e agora é chamado de processo órfão.
No entanto, o processo órfão é logo adotado pelo processo init, uma vez que seu processo pai morre.
// A C program to demonstrate Orphan Process.
// Parent process finishes execution while the
// child process is running. The child process
// becomes orphan.
#include<stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
// Create a child process
int pid = fork();
if (pid > 0)
printf("in parent process");
// Note that pid is 0 in child process
// and negative if fork() fails
else if (pid == 0)
{
sleep(30);
printf("in child process");
}
return 0;
}
Observe que o código acima pode não funcionar com compiladores online, pois fork() está desabilitado.
Relacionado:
Alguma idéia O que são zumbis no sistema operacional?
Processos zumbis e sua prevenção
Este artigo foi contribuído por Pranjal Mathur . Se você gosta do GeeksforGeeks e gostaria de contribuir, você também pode escrever um artigo e enviá-lo para contrib@geeksforgeeks.org. Veja o seu artigo na página principal do GeeksforGeeks e ajude outros Geeks.
Escreva comentários se encontrar algo incorreto ou se quiser compartilhar mais informações sobre o tópico discutido acima
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva