कांटा और (vfork) के बीच का अंतर

लेखक: Laura McKinney
निर्माण की तारीख: 2 अप्रैल 2021
डेट अपडेट करें: 8 मई 2024
Anonim
कांटा vfork
वीडियो: कांटा vfork

विषय


दोनों कांटा() तथा vfork () हैं सिस्टम कॉल यह एक नई प्रक्रिया बनाता है जो उस प्रक्रिया के समान है जो आह्वान किया है कांटा () या vfork ()। का उपयोग करते हुए कांटा() माता-पिता और बच्चे की प्रक्रिया को एक साथ निष्पादित करने की अनुमति देता है। कोई दूसरा रास्ता, vfork () माता-पिता की प्रक्रिया के निष्पादन को निलंबित करता है जब तक कि बच्चा प्रक्रिया अपने निष्पादन को पूरा नहीं करता है। कांटा () और vfork () सिस्टम कॉल के बीच प्राथमिक अंतर यह है कि कांटा का उपयोग करके बनाई गई बच्चे की प्रक्रिया में मूल पते की प्रक्रिया के रूप में अलग पते की जगह होती है। दूसरी ओर, vfork का उपयोग करके बनाई गई बाल प्रक्रिया को अपनी मूल प्रक्रिया का पता स्थान साझा करना होगा।

हमें नीचे दिखाए गए तुलना चार्ट की मदद से कांटा () और vfork () के बीच कुछ अंतर खोजने दें।

  1. तुलना चार्ट
  2. परिभाषा
  3. मुख्य अंतर
  4. निष्कर्ष

तुलना चार्ट

तुलना के लिए आधारकांटा()vfork ()
बुनियादीचाइल्ड प्रोसेस और पैरेंट प्रोसेस में अलग-अलग एड्रेस स्पेस होते हैं।चाइल्ड प्रोसेस और पैरेंट प्रोसेस एक ही एड्रेस स्पेस शेयर करते हैं।
क्रियान्वयनमाता-पिता और बच्चे की प्रक्रिया एक साथ निष्पादित होती है।माता-पिता की प्रक्रिया तब तक निलंबित रहती है जब तक कि बच्चा प्रक्रिया अपने निष्पादन को पूरा नहीं कर लेता।
परिवर्तनयदि बच्चा पता स्थान में किसी भी पृष्ठ को बदल देता है, तो यह मूल प्रक्रिया के लिए अदृश्य है क्योंकि पता स्थान अलग-अलग है।यदि चाइल्ड प्रोसेस एड्रेस स्पेस में किसी पेज को बदल देता है, तो यह पेरेंट प्रोसेस को दिखाई देता है क्योंकि वे उसी एड्रेस स्पेस को शेयर करते हैं।
लिखने पर नकलकांटा () एक विकल्प के रूप में कॉपी-ऑन-राइट का उपयोग करता है जहां माता-पिता और बच्चे एक ही पृष्ठ साझा करते हैं जब तक कि उनमें से कोई भी साझा पृष्ठ को संशोधित नहीं करता है।vfork () कॉपी-ऑन-राइट का उपयोग नहीं करता है।


कांटा की परिभाषा ()

कांटा() एक बनाने के लिए एक सिस्टम कॉल उपयोग है नई प्रक्रिया। कांटा () कॉल द्वारा बनाई गई नई प्रक्रिया उस प्रक्रिया का बच्चा प्रक्रिया है, जिसने कांटा () सिस्टम कॉल को आमंत्रित किया है। बाल प्रक्रिया का कोड इसकी मूल प्रक्रिया के कोड के समान है। बाल प्रक्रिया के निर्माण के बाद, दोनों प्रक्रिया यानी माता-पिता और बच्चे की प्रक्रिया कांटा () के बाद अगले बयान से अपने निष्पादन को शुरू करती है और दोनों प्रक्रियाएं निष्पादित हो जाती हैं एक साथ.

मूल प्रक्रिया और बच्चे की प्रक्रिया है अलग पता स्थान। इसलिए, जब कोई भी प्रक्रिया कोड में किसी भी कथन या चर को संशोधित करती है। यह अन्य प्रक्रिया कोड में परिलक्षित नहीं होगा। मान लें कि यदि बच्चा प्रक्रिया कोड को संशोधित करता है तो यह माता-पिता की प्रक्रिया को प्रभावित नहीं करेगा।

कुछ बच्चे अपनी रचना के तुरंत बाद प्रक्रिया करते हैं कार्यकारी ()। निष्पादन () सिस्टम कॉल प्रक्रिया को प्रतिस्थापित करता है अपने पैरामीटर में निर्दिष्ट कार्यक्रम के साथ। फिर बाल प्रक्रिया का अलग पता स्थान किसी काम का नहीं है। यहाँ एक विकल्प कॉपी-ऑन-राइट है।


लिखने पर नकल माता-पिता और बच्चे को समान पता स्थान साझा करने की प्रक्रिया करने दें। यदि पता प्रक्रियाओं में पृष्ठों पर लिखी गई कोई भी प्रक्रिया पता स्थान की प्रतिलिपि दोनों प्रक्रिया को स्वतंत्र रूप से काम करने के लिए बनाई गई है।

Vfork की परिभाषा ()

फोर्क () का संशोधित संस्करण vfork () है। vfork () सिस्टम कॉल का उपयोग नई प्रक्रिया बनाने के लिए भी किया जाता है। कांटा () के समान, यहां भी बनाई गई नई प्रक्रिया बाल प्रक्रिया है, उस प्रक्रिया का, जिसने vfork () को लागू किया था। चाइल्ड प्रोसेस कोड पैरेंट प्रोसेस कोड के समान है। यहां, बच्चे की प्रक्रिया निष्पादन को निलंबित करता है जब तक यह प्रक्रिया अपने निष्पादन को पूरा नहीं कर लेती है, तब तक दोनों प्रक्रिया उपयोग के लिए समान पता स्थान साझा करते हैं।

जैसा कि बच्चे और अभिभावक प्रक्रिया साझा करते हैं एक ही पता स्थान। यदि कोई भी प्रक्रिया कोड को संशोधित करती है, तो यह उसी पृष्ठ को साझा करने वाली अन्य प्रक्रिया को दिखाई देती है। मान लें कि यदि मूल प्रक्रिया कोड को बदल देती है; यह बाल प्रक्रिया के कोड में प्रतिबिंबित होगा।

जैसा कि vfork () का उपयोग करके बच्चे और माता-पिता की प्रक्रियाओं के लिए अलग-अलग पता स्थान नहीं बनाए जाते हैं। इसलिए, यह होना चाहिए कार्यान्वित जहां बच्चा प्रक्रिया कहता है कार्यकारी () इसके निर्माण के तुरंत बाद। तो, पता स्थान का कोई अपव्यय नहीं होगा, और यह है कुशल एक प्रक्रिया बनाने का तरीका। vfork उपयोग नहीं करता है लिखने पर नकल.

  1. कांटा और vfork के बीच प्राथमिक अंतर यह है कि बच्चे द्वारा बनाई गई प्रक्रिया कांटा एक अलग मेमोरी स्पेस मूल प्रक्रिया से। हालाँकि, द्वारा बनाई गई बच्चे की प्रक्रिया vfork सिस्टम कॉल शेयर एक ही पता स्थान इसकी मूल प्रक्रिया के बारे में।
  2. कांटा का उपयोग करके बनाई गई बच्चे की प्रक्रिया एक साथ निष्पादित करें मूल प्रक्रिया के साथ। दूसरी ओर, vfork का उपयोग करके बनाई गई बाल प्रक्रिया निलंबित अभिभावक प्रक्रिया का निष्पादन तब तक करता है जब तक उसका निष्पादन पूरा नहीं हो जाता।
  3. चूंकि माता-पिता और बच्चे की प्रक्रिया का मेमोरी स्पेस अलग-अलग होता है, इसलिए किसी भी प्रक्रिया में अन्य पेजों पर कोई असर नहीं पड़ता है। हालाँकि, माता-पिता और बच्चे की प्रक्रिया समान स्मृति पते को साझा करती है, किसी भी प्रक्रिया द्वारा किया गया संशोधन पता स्थान में परिलक्षित होता है।
  4. सिस्टम कॉल कांटा () का उपयोग करता है लिखने पर नकल एक विकल्प के रूप में, जो बच्चे और माता-पिता की प्रक्रिया को एक ही पते की जगह साझा करते हैं जब तक कि उनमें से कोई भी पृष्ठों को संशोधित नहीं करता है। दूसरी ओर, vfork कॉपी-ऑन-राइट का उपयोग नहीं करता है।

निष्कर्ष:

Vfork () सिस्टम कॉल को तब लागू किया जाना चाहिए जब कांटा () का उपयोग करके इसके निर्माण के तुरंत बाद चाइल्ड प्रोसेस कॉल एग्जीक्यूट हो। चूंकि बच्चे और अभिभावक प्रक्रिया के लिए अलग-अलग पता जगह का कोई फायदा नहीं होगा।