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