Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Zombie และ Orphan Processes ใน Linux

รายละเอียดเกี่ยวกับ zombie, orphan และ daemon processes ดังนี้

Zombie Processes (กระบวนการซอมบี้)

Zombie process คือ process ที่ทำงานเสร็จแล้ว แต่ยังคงมี entry (รายการ) ใน process table อยู่ Zombie processes มักเกิดกับ child processes เนื่องจาก parent process ยังต้องอ่าน exit status ของลูก กระบวนการนี้ทำผ่าน system call wait() หลังจากนั้น zombie process จะถูกลบออกจาก process table เรียกว่า reaping the zombie process

แผนภาพแสดงการสร้างและการสิ้นสุดของ zombie process:

Zombie และ Orphan Processes ใน Linux

Zombie processes ไม่ใช้ system resources แต่ยังคงเก็บ process ID ไว้ หากมี zombie processes จำนวนมาก ทุก process ID ที่มีอยู่จะถูกครอบครองโดยพวกเขา ทำให้ process อื่นๆ ไม่สามารถรันได้ เพราะไม่มี process ID ว่าง

Orphan Processes (กระบวนการกำพร้า)

Orphan processes คือ process ที่ยังคงทำงานอยู่ แม้ว่า parent process จะจบการทำงานหรือ terminated แล้ว Process อาจถูกทำให้เป็น orphan โดยเจตนาหรือไม่ได้เจตนา

  • Intentionally orphaned process: ทำงานใน background โดยไม่ต้องการการดูแล يدوي มักใช้เพื่อเริ่ม service ที่รันไม่รู้จบ หรือทำงานยาวนานโดยไม่ต้องการการใส่ใจจากผู้ใช้
  • Unintentionally orphaned process: สร้างขึ้นเมื่อ parent process crash หรือ terminated ไป ไม่ได้เจตนา สามารถป้องกันได้ด้วย process group mechanism