เนื่องจากภารกิจคือการค้นหาจำนวนสูงสุดของกระบวนการซอมบี้ที่ระบบสามารถจัดการได้ หรืออีกนัยหนึ่งคือ โปรแกรมจะไม่หยุดการทำงาน
กระบวนการซอมบี้ (เรียกอีกอย่างว่ากระบวนการที่หมดอายุ) เป็นกระบวนการที่เสร็จสิ้นกระบวนการผ่าน exit() (การเรียกระบบ) แต่ยังคงมีรายการในตารางกระบวนการ
แนวทางที่ใช้ในโปรแกรมด้านล่างนี้
-
โปรดทราบว่าควรเพิ่ม
เพื่อเรียกใช้โปรแกรม -
ในฟังก์ชัน main() เริ่มต้น num =0 ของประเภท int ซึ่งเราจะทำซ้ำจนกว่าโปรแกรมจะหยุดทำงาน
-
ในการเริ่มต้นกระบวนการซอมบี้ ให้สร้างคำสั่ง while โดยมีเงื่อนไข − while( fork()> 0 )
การเรียกระบบ Fork() ใช้สำหรับเริ่มต้นกระบวนการใหม่ที่เรียกว่ากระบวนการลูกซึ่งทำงานพร้อมกันและทำการเรียก fork() (ซึ่งเป็นกระบวนการหลัก)
-
ภายใน while loop เพิ่มขึ้น num เช่นเดียวกับการพิมพ์
ตัวอย่าง
#include<iostream> #include<unistd.h> using namespace std; int main(){ int num = 0; while (fork() > 0){ num++; cout<<num<<" "; } }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น เราจะได้ผลลัพธ์ดังต่อไปนี้ -
ในจำนวนเอาต์พุตด้านบนหยุดเพิ่มขึ้นที่ 93 แต่ตัวเลขนี้ไม่คงที่และสามารถเปลี่ยนแปลงได้ขึ้นอยู่กับการกำหนดค่าระบบ