กระบวนการซอมบี้คืออะไร?

กระบวนการ zombie เป็นอินสแตนซ์ของโปรแกรมคอมพิวเตอร์ที่เก็บบันทึกตารางกระบวนการแม้ว่าจะดำเนินการเสร็จสิ้นแล้ว กระบวนการที่หมดอายุเช่นนี้มักเกี่ยวข้องกับUnix®และระบบปฏิบัติการอื่นที่คล้ายคลึงกันเนื่องจากวิธีที่พวกเขาจัดการกับกระบวนการลูก เมื่อกระบวนการลูกเสร็จสิ้นการดำเนินการผู้ปกครองมักจะรับผิดชอบในการลบออกจากตารางกระบวนการ โดยทั่วไปแล้วจะไม่สามารถลบกระบวนการ zombie โดยตรงด้วยคำสั่ง kill แม้ว่าผู้ปกครองสามารถทำการลบออกได้บ่อยครั้งหากผู้ดำเนินการใช้การแจ้งเตือนสัญญาณลูก (SIGCHLD) ความล้มเหลวนี้กระบวนการซอมบี้อาจถูกลบทางอ้อมด้วยการฆ่าผู้ปกครอง

กระบวนการซอมบี้เป็นคำอธิบายเชิงเปรียบเทียบที่อ้างอิงถึงสิ่งมีชีวิตที่ตายแล้ว กระบวนการที่หมดอายุในUnix®และระบบปฏิบัติการที่คล้ายคลึงกันนั้นสามารถมองเห็นได้คล้ายกับซอมบี้โดยที่พวกมันยังคงมีตารางกระบวนการอยู่แม้ว่าจะไม่ได้ทำหน้าที่ที่ตั้งใจไว้แล้วก็ตาม เมื่อกระบวนการเสร็จสิ้นการดำเนินการบางครั้งมีการกล่าวถึงการตายในขณะที่วิธีการที่ระบบปฏิบัติการกู้คืนการจัดสรรตารางกระบวนการของมันอาจเป็นที่รู้จักกันว่าการเก็บเกี่ยว กระบวนการหลักของซอมบี้นั้นในทางเทคนิคแล้วควรจะเก็บเกี่ยวลูกของมันแม้ว่ามันจะไม่เกิดขึ้นเสมอไป

มีบางกรณีที่การดำรงอยู่ของกระบวนการซอมบี้อาจเป็นความตั้งใจหรือต้องการ หลังจากกระบวนการลูกหยุดการประมวลผลผู้ปกครองอาจต้องเรียกใช้อินสแตนซ์อื่นของโปรแกรมเดียวกันในภายหลัง หากซอมบี้ไม่ได้ถูกลบออกจากตารางกระบวนการลูกใหม่จะไม่ได้รับการระบุตัวตน (ID) เช่นเดียวกับเด็กเก่า บางโปรแกรมอาจได้รับประโยชน์จากหรือต้องใช้ความแตกต่างเช่นนี้

หากกระบวนการหลักไม่ได้ดำเนินการคำสั่ง wait เพื่อเก็บเกี่ยวซอมบี้ที่รับผิดชอบมันอาจเป็นไปได้ที่จะบังคับให้เกิดปัญหา โดยทั่วไปจะทำผ่านคำสั่ง kill และส่งสัญญาณ SIGCHLD ไปยังกระบวนการหลัก หากทุกอย่างทำงานได้อย่างถูกต้องกระบวนการหลักที่รับสัญญาณนี้ควรจะรวบรวมลูกซอมบี้ของมันใหม่เพื่อให้สามารถใช้ ID และตำแหน่งตารางกระบวนการได้

ในบางสถานการณ์กระบวนการหลักอาจเพิกเฉยต่อสัญญาณ SIGCHLD หากสิ่งนี้เกิดขึ้นและผู้ประกอบการยังคงต้องการให้ล้างตารางกระบวนการกระบวนการหลักอาจถูกฆ่า ซอมบี้ใด ๆ ที่กระบวนการสร้างขึ้นจะถูกกำหนดให้เป็นลูกของกระบวนการเริ่มต้น ตั้งแต่ init เริ่มต้นคำสั่ง wait ที่ลูก ๆ ของมันซอมบี้ทุกตัวที่รับผิดชอบจะถูกลบออกจากตารางกระบวนการในที่สุด

ภาษาอื่น ๆ

บทความนี้ช่วยคุณได้ไหม ขอบคุณสำหรับความคิดเห็น ขอบคุณสำหรับความคิดเห็น

เราจะช่วยได้อย่างไร เราจะช่วยได้อย่างไร