Apa itu proses zombie atau utas, dan apa yang membuatnya? Apakah saya hanya membunuh mereka, atau bisakah saya melakukan sesuatu untuk mendapatkan diagnosa tentang bagaimana mereka mati?
multithreading
debugging
linux-development
Pengembang Don
sumber
sumber
Jawaban:
Proses zombie adalah proses mati.
OS hanya menyimpan informasi di sekitar sehingga orang tua dapat memeriksa kode keluar dari proses di beberapa titik kemudian karena OS menyimpan informasi tentang mereka dan dengan demikian mereka muncul ketika melihat proses.
Tidak. Mereka sudah mati.
OS akan membersihkan ketika orang tua meninggal atau mendapatkan kode status dari OS.
Tidak. Orang tua bisa tetapi tidak dengan shell.
sumber
Sebuah utas zombie adalah utas yang telah menghentikan eksekusi tetapi tidak diakhiri dengan bersih. Ini mengalokasikan sumber daya yang digunakan oleh utas tetapi menyimpan entri di utas / tabel proses.
Secara teoritis, utas zombie keluar dari status ini dengan menjalankan _join (POSIX). Ini berarti bahwa ketika utama Anda selesai, proses zombie akan terbunuh dengan program ini.
sumber
Proses zombie adalah proses yang keduanya menghentikan eksekusi dan telah dihapus dari daftar proses yang dijadwalkan , tetapi belum dihapus. Bergantung pada OS, tt mungkin atau mungkin masih belum memiliki berbagai sumber daya ditugaskan untuk itu, dan mungkin ditanya, tetapi tidak akan berjalan.
Beberapa OS'es (sesuai desain) tidak diizinkan untuk membuat atau menghapus sumber daya secara dinamis di luar titik peristiwa tertentu (VxWorks Cert misalnya). Sistem seperti itu sering mengatasi keterbatasan ini dengan menggunakan kumpulan sumber daya yang telah dialokasikan sebelumnya dari mana mereka mengambil, mengembalikan, dan menggunakan kembali barang-barang. Namun, ketika proses pada sistem seperti itu berakhir, itu tidak dapat dihapus dan sebaliknya akan menjadi zombified (dihentikan dan dihapus dari daftar penjadwalan).
Semoga ini membantu.
sumber
Ketika utas / proses terbunuh, tetapi masih ada catatan di tabel terkait tentang hal itu, itu menjadi zombie.
Ini bisa terjadi ketika, misalnya, proses induk membuat proses anak, tetapi berakhir sebelum anak. Ketika proses anak berakhir, ia memberi tahu orang tua tentang penghentian. Setelah itu catatan proses anak dihapus dari tabel terkait. Tapi orangtuanya sudah berakhir, jadi catatannya masih ada di tabel.
Tidak ada cara untuk menyingkirkan zombie kecuali reboot
sumber