กระบวนการหรือเธรดของซอมบี้คืออะไรและสร้างขึ้นมาอย่างไร ฉันเพิ่งจะฆ่าพวกเขาหรือฉันจะทำอะไรบางอย่างเพื่อรับการวินิจฉัยเกี่ยวกับวิธีการที่พวกเขาตาย?
กระบวนการหรือเธรดของซอมบี้คืออะไรและสร้างขึ้นมาอย่างไร ฉันเพิ่งจะฆ่าพวกเขาหรือฉันจะทำอะไรบางอย่างเพื่อรับการวินิจฉัยเกี่ยวกับวิธีการที่พวกเขาตาย?
คำตอบ:
กระบวนการหรือเธรดของซอมบี้คืออะไรและสร้างขึ้นมาอย่างไร
กระบวนการซอมบี้เป็นกระบวนการที่ตายแล้ว
ระบบปฏิบัติการกำลังเก็บข้อมูลไว้เพื่อที่ผู้ปกครองจะสามารถตรวจสอบรหัสออกของกระบวนการได้ในเวลาต่อมาระบบปฏิบัติการจะเก็บข้อมูลเกี่ยวกับสิ่งเหล่านั้น
ฉันเพิ่งจะฆ่าพวกเขา
ไม่พวกเขาตายไปแล้ว
ระบบปฏิบัติการจะล้างข้อมูลเมื่อผู้ปกครองเสียชีวิตหรือรับรหัสสถานะจากระบบปฏิบัติการ
หรือฉันสามารถทำบางสิ่งเพื่อรับการวินิจฉัยเกี่ยวกับวิธีที่พวกเขาตาย
ไม่พาเรนต์สามารถทำได้ แต่ไม่ใช่เชลล์
เธรดซอมบี้คือเธรดที่ยกเลิกการทำงาน แต่ไม่สิ้นสุดอย่างสมบูรณ์ มันจัดสรรคืนทรัพยากรที่ใช้โดยเธรด แต่เก็บรายการในตารางเธรด / กระบวนการ
ในทางทฤษฎีแล้วเธรดซอมบี้ออกจากสถานะนี้โดยเรียกใช้งาน _join (POSIX) หมายความว่าเมื่อหลักของคุณเสร็จสิ้นกระบวนการซอมบี้จะถูกฆ่าด้วยโปรแกรม
กระบวนการ zombie เป็นกระบวนการที่ยุติการทำงานทั้งสองและถูกลบออกจากรายการกระบวนการที่กำหนดไว้แต่ยังไม่ถูกลบ ขึ้นอยู่กับระบบปฏิบัติการ tt อาจจะหรืออาจยังไม่ได้กำหนดทรัพยากรต่าง ๆ ให้และอาจถูกสอบถาม แต่มันจะไม่ทำงาน
OS'es บางตัว (โดยการออกแบบ) ไม่ได้รับอนุญาตให้สร้างหรือลบทรัพยากรแบบไดนามิกนอกเหนือจากจุดเหตุการณ์ที่แน่นอน (ตัวอย่างเช่น VxWorks Cert) ระบบดังกล่าวมักจะแก้ไขข้อ จำกัด นี้ได้ด้วยการใช้พูลที่จัดสรรไว้ล่วงหน้าของทรัพยากรที่พวกเขาเรียกคืนและส่งคืนรายการ อย่างไรก็ตามเมื่อกระบวนการในระบบดังกล่าวสิ้นสุดลงจะไม่สามารถลบได้และจะกลายเป็นzombified (ยกเลิกและลบออกจากรายการกำหนดเวลา)
หวังว่านี่จะช่วยได้
เมื่อเธรด / กระบวนการถูกฆ่า แต่ยังมีระเบียนในตารางที่เกี่ยวข้องเกี่ยวกับมันจะกลายเป็นซอมบี้
สิ่งนี้สามารถเกิดขึ้นได้เมื่อตัวอย่างเช่นกระบวนการหลักสร้างกระบวนการลูก แต่สิ้นสุดก่อนลูก เมื่อกระบวนการย่อยสิ้นสุดลงระบบจะแจ้งให้ผู้ปกครองทราบถึงการยกเลิก หลังจากนั้นบันทึกของกระบวนการลูกจะถูกลบออกจากตารางที่เกี่ยวข้อง แต่มันเป็นผู้ปกครองได้ยกเลิกไปแล้วดังนั้นบันทึกยังคงอยู่ในตาราง
ไม่มีทางที่จะกำจัดซอมบี้ได้ แต่รีบูตเครื่อง