Skip to main content

Apa itu proses zombie?

Proses zombie adalah contoh dari program komputer yang mempertahankan catatan tabel proses meskipun telah selesai dieksekusi.Proses mati seperti ini biasanya terkait dengan UNIX REG;dan sistem operasi serupa lainnya karena cara mereka menangani proses anak.Ketika proses anak selesai dieksekusi, orang tua biasanya bertanggung jawab untuk menghapusnya dari tabel proses.Biasanya tidak mungkin untuk secara langsung menghapus proses zombie dengan perintah kill, meskipun orang tua sering dapat dibuat untuk menghapusnya jika operator menggunakan pemberitahuan sinyal anak (SIGCHLD).Gagal ini, proses zombie dapat dihapus secara tidak langsung dengan membunuh orang tua.

Proses zombie adalah istilah deskriptif metaforis yang membuat referensi kepada orang mati yang hidup.Proses mati di UNIX REG;dan sistem operasi yang serupa dapat dilihat sebagai analog dengan zombie karena mereka mempertahankan kehadiran tabel proses meskipun tidak lagi melakukan fungsi yang dimaksud.Ketika suatu proses telah selesai mengeksekusi, kadang -kadang dikatakan telah mati, sementara cara yang dengannya sistem operasi memulihkan alokasi tabel prosesnya dapat dikenal sebagai penuai.Proses induk zombie secara teknis seharusnya menuai anak -anaknya, meskipun ini tidak selalu terjadi.

Ada kasus -kasus tertentu di mana keberadaan proses zombie mungkin disengaja atau bahkan diinginkan.Setelah proses anak berhenti eksekusi, orang tua mungkin perlu menjalankan contoh lain dari program yang sama nanti.Jika zombie belum dihapus dari tabel proses, anak baru tidak akan ditugaskan identifikasi (ID) yang sama seperti anak lama.Program tertentu dapat mengambil manfaat dari atau bahkan memerlukan diferensiasi semacam ini.

Jika proses orang tua belum mengeksekusi perintah tunggu untuk menuai zombie yang bertanggung jawab, dimungkinkan untuk memaksa masalah tersebut.Ini biasanya dilakukan melalui perintah kill dan mengirimkan sinyal sigchld ke proses induk.Jika semuanya berfungsi dengan baik, proses orang tua yang menerima sinyal ini harus menuai anak -anak zombie -nya sehingga ID dan posisi tabel proses mereka dapat digunakan kembali.

Dalam keadaan tertentu, proses orang tua dapat mengabaikan sinyal Sigchld.Jika ini terjadi dan operator masih menginginkan agar tabel proses dibersihkan, proses induk dapat dibunuh.Setiap zombie yang dibuat oleh orang tua yang dibuat kemudian akan ditugaskan sebagai anak -anak untuk proses init.Karena init secara berkala memulai perintah tunggu pada anak -anaknya, zombie apa pun yang bertanggung jawab pada akhirnya akan dihapus dari tabel proses.