दिया गया कार्य उस अधिकतम जॉम्बी प्रोसेस की संख्या ढूंढना है जिसे एक सिस्टम संभाल सकता है या दूसरे शब्दों में, प्रोग्राम अपना निष्पादन बंद नहीं करता।
एक जॉम्बी प्रोसेस (जिसे डिफंक्ट प्रोसेस भी कहा जाता है) एक ऐसी प्रक्रिया है जिसने exit() (सिस्टम कॉल) के माध्यम से अपना निष्पादन पूरा कर लिया है लेकिन फिर भी प्रोसेस टेबल में एक प्रविष्टि रखती है।
प्रयुक्त दृष्टिकोण
ध्यान दें कि प्रोग्राम चलाने के लिए <unistd.h> जोड़ा जाना चाहिए।
main() फंक्शन में num = 0 को int टाइप का आरंभ करें जिसे हम तब तक इटरेट करेंगे जब तक प्रोग्राम निष्पादित होना बंद नहीं करता।
जॉम्बी प्रोसेस शुरू करने के लिए एक व्हाइल स्टेटमेंट बनाएं जिसकी शर्त हो: while( fork() > 0 )
Fork() सिस्टम कॉल का उपयोग एक नई प्रक्रिया शुरू करने के लिए किया जाता है जिसे चाइल्ड प्रोसेस कहा जाता है जो समवर्ती रूप से चलती है और fork() कॉल करती है (जो पैरेंट प्रोसेस है)।
व्हाइल लूप के अंदर num को बढ़ाएं और साथ ही प्रिंट करें।
C++ प्रोग्राम उदाहरण
#include <iostream>
#include <unistd.h>
using namespace std;
int main() {
int num = 0;
while (fork() > 0) {
num++;
cout << num << " ";
}
}आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो हमें निम्नलिखित आउटपुट मिलेगा -
आउटपुट में num 93 पर बढ़ना बंद कर देता है। लेकिन यह संख्या निश्चित नहीं है और सिस्टम कॉन्फिगरेशन के आधार पर भिन्न हो सकती है।