Интернет магазин китайских планшетных компьютеров



Компьютеры - Процесс-зомби - Примеры программ, создающих зомби, на разных языках программирования

23 января 2011


Оглавление:
1. Процесс-зомби
2. Проблемы зомби
3. Примеры программ, создающих зомби, на разных языках программирования



Си:

#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
 
int main 
{
  pid_t child_pid;
 
  child_pid = fork ;
  if  {
    sleep ;
  }
  else {
    exit ;
  }
  return 0;
}

Разное

  • Зомби не могут принимать сигналы, и поэтому их нельзя убрать с помощью утилиты или вызова kill. Убрать их может либо родительский процесс, либо его завершение.
  • Все процессы в Unix имеют своих родителей — процессы, не имеющие или потерявшие родителей, являются дочерними для init, который в свою очередь является дочерним для ядра. init всегда обрабатывает SIGCHLD, поэтому от таких процессов никогда не остается зомби.
  • Зомби можно узнать в списке процессов по флагу «Z» в колонке STAT.
  • Хорошим стилем программирования считается всегда обрабатывать SIGCHLD.
  • Языки скриптов Perl и Python неявно обрабатывают SIGCHLD, если программа настраивает его игнорирование.


Просмотров: 2569


<<< Процесс (информатика)
Процесс-сирота >>>