เนื่องจากภารกิจคือการค้นหาจำนวนสูงสุดของกระบวนการซอมบี้ที่ระบบสามารถจัดการได้ หรืออีกนัยหนึ่งคือ โปรแกรมจะไม่หยุดการทำงาน
กระบวนการซอมบี้ (เรียกอีกอย่างว่ากระบวนการที่หมดอายุ) เป็นกระบวนการที่เสร็จสิ้นกระบวนการผ่าน 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 แต่ตัวเลขนี้ไม่คงที่และสามารถเปลี่ยนแปลงได้ขึ้นอยู่กับการกำหนดค่าระบบ