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

จำนวนกระบวนการ Zombie สูงสุดที่ระบบรับได้ใน C++


ภาพรวมปัญหา

หาจำนวนกระบวนการ 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 กระบวนการ (ค่าอาจแตกต่างตามการตั้งค่าระบบ)

จำนวนกระบวนการ Zombie สูงสุดที่ระบบรับได้ใน C++