Zombie

Zombie

Проце́сс-зо́мби, зо́мби (англ. zombie process, англ. defunct process) — дочерний процесс в Unix-системе, завершивший своё выполнение, но еще присутствующий в списке процессов операционной системы, чтобы дать родительскому процессу считать код завершения.

Содержание

Этимология

Происходит от слова «зомби», означающего «живой мертвец» (оксюморон, англ. undead). Термин является яркой метафорой о том, что процесс «умер», но не «погребён».

Возникновение зомби

Процесс при завершении освобождает все свои ресурсы (за исключением PID — идентификатора процесса) и становится «зомби» — пустой записью в таблице процессов, хранящей код завершения для родительского процесса.

Система уведомляет родительский процесс о завершении дочернего с помощью сигнала SIGCHLD он считает код возврата с помощью системного вызова wait(), после чего запись зомби будет удалена из списка процессов.

Если родительский процесс игнорирует SIGCHLD (а он игнорируется по умолчанию), то зомби остаются до его завершения.

Проблемы зомби

Игнорирование

Зомби не занимают памяти (как процессы-сироты), но блокируют записи в таблице процессов, размер которой ограничен для каждого пользователя и системы в целом.

При достижении лимита пользователь, от имени которого выполняется программа, и все его программы не будут способны создавать новые дочерние процессы. Кроме всего прочего пользователь, от имени которого выполняется родительский процесс, не сможет зайти на консоль (локальную или удаленную) или выполнить какие-либо команды на уже открытой консоли (потому что для этого командный интерпретатор sh должен создать новый процесс), и для восстановления работоспособности (завершения виновной программы) будет необходимо вмешательство системного администратора.

Если же процесс выполнялся от имени суперпользователя, то проблему может решить только перезагрузка (причем зачастую - только аппаратным рестартом). Некоторые операционные системы (например, Sun Solaris) при возникновении такой ситуации аварийно завершают часть выполняющихся процессов, восстанавливая работоспособность системы. Одна из компьютерных баек утверждает, что Solaris может таким образом аварийно завершить выполнение корневого родительского процесса

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

Си:

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

Разное

См. также


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "Zombie" в других словарях:

  • zombie — ou zombi [ zɔ̃bi ] n. m. • 1832; créole zonbi 1 ♦ Fantôme, revenant (dans les croyances vaudou des Antilles). « les noctambules la prirent pour un zombi et l accablèrent de jurons pour la renvoyer dans sa tombe » (P. Chamoiseau). 2 ♦ Par ext.… …   Encyclopédie Universelle

  • zombie — ☆ zombie [zäm′bē ] n. [of Afr orig., as in Congo zumbi, fetish] 1. in voodoo cults of W Africa, the python deity 2. any voodoo snake deity, as in Haiti and parts of the S U.S. 3. a) in West Indian voodoo, a supernatural power through which a… …   English World dictionary

  • zombie — Poder sobrenatural que supuestamente puede introducirse en un cadáver y reanimarlo. Diccionario Mosby Medicina, Enfermería y Ciencias de la Salud, Ediciones Hancourt, S.A. 1999 …   Diccionario médico

  • Zombie — 1.Untoter,Seelenloser,Wiedergänger 2.willenloser/energieloserMensch 3.Drogenabhängiger,Drogensüchtiger,Freak …   Das Wörterbuch der Synonyme

  • zombie — → zombi …   Diccionario panhispánico de dudas

  • zombie — (n.) 1871, of West African origin (Cf. Kikongo zumbi fetish; Kimbundu nzambi god ), originally the name of a snake god, later with meaning reanimated corpse in voodoo cult. But perhaps also from Louisiana creole word meaning phantom, ghost, from… …   Etymology dictionary

  • zombie — s. 2 g. O mesmo que morto vivo. • Plural: zombies.   ‣ Etimologia: palavra inglesa …   Dicionário da Língua Portuguesa

  • zombie — /ˈdzombi, ingl. ˈzHmbɪ/ [vc. creola, di origine sconosciuta] s. m. inv. 1. morto vivente 2. (est.) persona apatica, abulica CONTR. persona volitiva, energica …   Sinonimi e Contrari. Terza edizione

  • zombie — ► NOUN 1) a corpse supposedly revived by witchcraft, especially in certain African and Caribbean religions. 2) informal a lifeless, apathetic, or completely unresponsive person. DERIVATIVES zombify verb. ORIGIN West African …   English terms dictionary

  • Zombie — This article is about the figure from Haitian religion. For the figure from films such as Night of the Living Dead , see Zombie (fictional). For the philosophical concept, see Philosophical zombie. For other uses, see Zombie (disambiguation) …   Wikipedia

  • Zombie — Als Zombie wird die fiktive Figur eines zum Leben erweckten Toten (Untoter) oder eines seiner Seele beraubten, willenlosen Wesens bezeichnet. Der Begriff leitet sich von dem Wort nzùmbe aus der zentralafrikanischen Sprache Kimbundu ab und… …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»