c - Is there any formula to know how fork() makes near-perfect copy of the current process? -


<पूर्व> #include & lt; stdio.h & gt; मुख्य () {int i, n = 1; के लिए (i = 0; i & lt; n; i ++) {fork (); printf ( "हैलो!"); }}

अगर मैं n = 1 डालता हूं तो यह उलझन में है, यह हैलो 2 बार प्रिंट करता है।

  • यदि n = 2, यह हैलो 8 बार प्रिंट करता है < / Li>
  • यदि n = 3, यह हैलो 24 बार प्रिंट करता है ..
  • और इसी तरह ..

ऐसा कोई भी" सूत्र "नहीं है जो इसे अलग-अलग ऑपरेटिंग सिस्टम के रूप में किया जाता है। लेकिन क्या फोर्क () करता है यह प्रक्रिया की एक प्रति बना देता है

  • एक नई प्रक्रिया बनाएं, और संबंधित आंतरिक संरचनाओं को आरंभ या कॉपी करें।
  • सीपीयू / एफपीयू रजिस्टरों की प्रतिलिपि बनाएँ।
  • दोनों प्रक्रियाओं को फिर से शुरू करें।
  • / Ul>

  • Comments