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