Procesul zombie este

etimologie

Aceasta provine din cuvântul "zombie", adică "mort viu" (oximoron, nemăsurat în engleză). Termenul este o metaforă vie că procesul "a murit", dar nu "îngropat".







Apariția zombilor

Procesul de finalizare eliberează toate resursele (cu excepția identificatorului procesului PID) și devine un "zombie" - o înregistrare goală în tabela de procesare care stochează codul de finalizare pentru procesul părinte.

Sistemul notifică procesul părintelui despre finalizarea copilului prin utilizarea semnalului SIGCHLD. Se presupune că după primirea SIGCHLD, acesta consideră codul de returnare utilizând apelul de așteptare (). după care înregistrarea zombie va fi eliminată din lista de procese.

Dacă procesul părinte ignoră SIGCHLD (și este ignorat în mod implicit), atunci zombi rămân până când se termină.

Probleme cu zombie

Ignorarea SIGCHLD nu este în principiu corectă, dar poate fi acceptată și pentru programele cu durată scurtă de viață (unele programe pot face acest lucru intenționat, de exemplu, pentru a exclude repetarea PID). Dar pentru programele de lungă durată și adesea pentru copii, acest lucru este inacceptabil, deoarece acumularea de zombi duce la o "scurgere de resurse" (adică la blocarea treptată a acestora).

Zombele nu ocupă memoria (ca procese orfane), dar blochează înregistrările în tabelul de proces, a cărui mărime este limitată pentru fiecare utilizator și pentru întregul sistem.

Când se atinge limita, utilizatorul în numele căruia se execută programul și toate programele sale nu vor putea să creeze noi procese copil. În plus, utilizatorul sub care sunteți părintele nu va fi capabil să meargă la consola (local sau la distanță) sau executa orice comanda de pe consola deja deschisă (deoarece sh shell pentru acest lucru este de a crea un nou proces), și pentru a restabili funcționalitatea (finalizarea programului de vinovat) va necesita intervenția administratorului de sistem.

Dacă procesul a fost efectuat în numele superuserului, atunci problema poate fi rezolvată numai prin repornire (și adesea numai prin repornirea hardware-ului). Unele sisteme de operare (de exemplu, Sun Solaris), în cazul unei astfel de situații, prăbușesc unele dintre procesele care rulează, restabilind performanța sistemului. Una dintre momele de pe computer afirmă că Solaris poate să prăbușească procesul rădăcină inițială (care va face ca sistemul să se oprească).







Exemple de programe care creează zombi în diferite limbi de programare

Atenție vă rog! Rularea acestor exemple poate duce la pierderea datelor nesalvate. Nu se recomandă efectuarea acestora fără aplicarea precauțiilor adecvate.

  • Zombii nu pot primi semnale și, prin urmare, nu pot fi eliminate cu ajutorul unui utilitar sau a unui apel de a ucide. Eliminați-le pot fie procesul părinte, fie completarea acestuia.
  • Toate procesele din Unix au părinții lor - procese care nu au sau au pierdut părinții lor ( „orfani“ procese ;. proces orfan Engl), sunt copii de inițializare (proces PID = 1), care, la rândul său, este un copil al miezului (proces PID = 0). init se ocupă întotdeauna de SIGCHLD, deci zombi nu sunt niciodată lăsați de la astfel de procese.
  • Zombiile pot fi găsite în lista de procese (ieșire de către utilitarul ps) de către steagul "Z" în coloana STAT.
  • Un stil de programare bun este întotdeauna să se ocupe de SIGCHLD.
  • Limbile de scripting Perl și Python manipulează implicit SIGCHLD dacă programul configurează ignorarea acestuia.

Urmăriți ce înseamnă "Procesul Zombie" în alte dicționare:

Procesul orfan este un proces auxiliar în familia sistemelor de operare UNIX, al cărui proces principal (sau conexiunea cu acesta) a fost terminat anormal (fără semnalizarea finalizării lucrării). De obicei, "orfanul" rămâne un proces copil ... ... Wikipedia

Zombi - Acest termen are alte semnificații, vedeți zombi (valori). Acest articol nu are referințe la sursele de informații. Informațiile trebuie verificate, altfel pot fi interogate ... Wikipedia

Zombie (dezambiguizare) - zombi: zombi zombie, în imposibilitatea de a gândi, există numai pentru a îndeplini ordinele de utilizarea sa de creator Zombie tehnicilor de manipulare într-o încercare de a schimba gândirea, comportamentul, convingerile, emoțiile, sau ... ... Wikipedia

proces Zombie - un zombie proces de zombie (proces zombie engleză, proces defunct Eng ..) Un proces de copil pe un sistem Unix, și-a finalizat executarea sa, dar încă prezentă în lista de procese ale sistemului de operare pentru a da procesul părinte citește codul ... ... Wikipedia

zombie pulbere - Cavaler al insulei sălbatice Durerii Feței Negro Zombie (de la bantu congoleze «nzambi» «Dumnezeu"), în general, desemnarea unei persoane vii, a pierdut complet controlul de sine și corpul său, și supunându ordinele cuiva (fie că este vorba în ... ... Wikipedia

SIGCHLD - Descriere: Situația procesului de copil pentru a schimba codul implicit este ignorat SA SIGINFO CLD normală accident de finalizare a ieșit CLD UCIS (fără haldei) CLD accident obiectul unui dumping imagine memorie CLD Trapped ... ... Wikipedia

SIGKILL - Descriere: Semnal de oprire Implicit: finalizarea codurilor de proces SA SIGINFO (nu are coduri specifice) În sistemele POSIX, semnalul SIGKILL a fost trimis proceselor pentru finalizarea lor imediată. SIGKILL este o constantă întregă, ... ... Wikipedia

  • Zombi. Serena Valentino. De la editor: Ați observat că procesul dvs. de gândire a încetinit puțin? Poate că tu, ca niciodată înainte, nu-ți dorești carnea umană? Și nu v-ați gândit niciodată că ați putea ... Citiți mai multe Cumpărați pentru 81 UAH (numai Ucraina)
Alte cărți la cerere "Proces Zombie" >>





Articole similare

Trimiteți-le prietenilor: