काटा () आणि व्होफोर्क () मधील फरक
सामग्री
दोघेही काटा () आणि vfork () आहेत सिस्टम कॉल की एक नवीन प्रक्रिया तयार करते जी काटा () किंवा व्होफोर्क () वर प्रक्रिया करण्याच्या समान आहे. वापरत आहे काटा () पालक आणि मूल प्रक्रियेची एकाच वेळी अंमलबजावणी करण्यास अनुमती देते. दुसरा मार्ग, vfork () मुलाची प्रक्रिया पूर्ण होईपर्यंत पालक प्रक्रियेची अंमलबजावणी निलंबित करते. काटा () आणि व्होफोर्क () सिस्टम कॉल दरम्यानचा प्राथमिक फरक असा आहे की काटा वापरुन तयार केलेल्या मुलाच्या प्रक्रियेमध्ये पालक प्रक्रियेपेक्षा वेगळी पत्ता जागा असते. दुसरीकडे, vfork वापरून तयार केलेल्या मुलाच्या प्रक्रियेस त्याच्या पालक प्रक्रियेची पत्ता जागा सामायिक करावी लागेल.
खाली दर्शविलेले तुलना चार्टच्या मदतीने कांटा () आणि व्होफोर्क () दरम्यान काही फरक शोधूया.
- तुलना चार्ट
- व्याख्या
- मुख्य फरक
- निष्कर्ष
तुलना चार्ट
तुलनासाठी आधार | काटा () | vfork () |
---|---|---|
मूलभूत | मुलाची प्रक्रिया आणि पालक प्रक्रियेमध्ये स्वतंत्र पत्ते आहेत. | मूल प्रक्रिया आणि पालक प्रक्रिया समान पत्त्याची जागा सामायिक करतात. |
अंमलबजावणी | पालक आणि मूल प्रक्रिया एकाच वेळी चालवतात. | मूल प्रक्रिया पूर्ण होईपर्यंत पालक प्रक्रिया निलंबित राहते. |
बदल | जर मुलाच्या प्रक्रियेने पत्त्याच्या जागेवर पृष्ठ बदलले तर ते पालक प्रक्रियेसाठी अदृश्य आहे कारण पत्त्याची जागा वेगळी आहे. | मुलाच्या प्रक्रियेने अॅड्रेस स्पेसमधील कोणतीही पृष्ठे बदलल्यास, ती समान प्रक्रियेसाठी पालक प्रक्रियेस दृश्यमान असते कारण ते समान अॅड्रेस स्पेस सामायिक करतात. |
कॉपी-ऑन-लिहा | काटा () कॉपी-ऑन-राइट हा पर्याय म्हणून वापरतो जिथे पालक आणि मूल समान पृष्ठ सामायिक करतो जोपर्यंत त्यापैकी कोणीही सामायिक केलेले पृष्ठ सुधारत नाही. | vfork () कॉपी-ऑन-राइट वापरत नाही. |
काटा () ची व्याख्या
द काटा () एक तयार करण्यासाठी सिस्टम कॉल वापर आहे नवीन प्रक्रिया. काटा () कॉलद्वारे तयार केलेली नवीन प्रक्रिया म्हणजे चाइल्ड प्रोसेस, ज्या प्रक्रियेने काटा () सिस्टम कॉल सुरू केला. मुलाची प्रक्रिया कोड त्याच्या मूळ प्रक्रियेच्या कोडसारखेच आहे. मुलाच्या प्रक्रियेच्या निर्मितीनंतर, दोन्ही प्रक्रिया म्हणजेच पालक आणि मूल प्रक्रिया काटा () नंतर पुढील विधानातून त्यांची अंमलबजावणी सुरू करतात आणि दोन्ही प्रक्रिया अंमलात आणल्या जातात एकाच वेळी.
पालक प्रक्रिया आणि मूल प्रक्रिया असतात स्वतंत्र पत्त्याची जागा. म्हणूनच जेव्हा कोणतीही प्रक्रिया कोडमधील विधान किंवा व्हेरिएबलमध्ये बदल करते. हे इतर प्रक्रिया कोडमध्ये प्रतिबिंबित होणार नाही. समजा समजा मूल प्रक्रिया कोडमध्ये बदल करीत असेल तर त्याचा पालक प्रक्रियेवर परिणाम होणार नाही.
त्यांच्या निर्मितीनंतर काही मूल प्रक्रिया तत्काळ कॉल करतात कार्यकारी (). एक्झिक () सिस्टम कॉल प्रक्रिया पुनर्स्थित करते त्याच्या पॅरामीटरमध्ये निर्दिष्ट प्रोग्रामसह. मग मुलाच्या प्रक्रियेसाठी स्वतंत्र पत्त्याचा उपयोग होणार नाही. येथे एक पर्याय म्हणजे कॉपी-ऑन-राइट.
द कॉपी-ऑन-लिहा पालक आणि मुलास समान पत्त्याची जागा सामायिक करू द्या. जर कोणतीही प्रक्रिया पृष्ठांवर पत्त्यावर लिहित असेल तर त्या जागेची प्रत तयार केली गेली आहे जेणेकरून दोन्ही प्रक्रिया स्वतंत्रपणे कार्य करू शकतील.
Vfork व्याख्या ()
काटा () ची सुधारित आवृत्ती vfork () आहे. द vfork () सिस्टम कॉलचा वापर नवीन प्रक्रिया तयार करण्यासाठी देखील केला जातो. काटा () प्रमाणेच, येथे तयार केलेली नवीन प्रक्रिया म्हणजे मुलाची प्रक्रिया, प्रक्रियेची ज्याने व्होफोर्क () ला प्रवृत्त केले. मूल प्रक्रिया कोड देखील पालक प्रक्रिया कोडसारखेच आहे. येथे, मुलाची प्रक्रिया कार्यवाही स्थगित करते पालक प्रक्रियेची अंमलबजावणी पूर्ण होईपर्यंत दोन्ही प्रक्रिया वापरण्यासाठी समान स्थान सामायिक करतात.
जसे की मूल आणि पालक प्रक्रिया सामायिक करते समान पत्त्याची जागा. कोणत्याही प्रक्रियेत कोडमध्ये बदल केल्यास ते समान पृष्ठे सामायिक करताना इतर प्रक्रियेस दृश्यमान होते. समजा पालक प्रक्रिया कोडमध्ये बदल करत असल्यास; हे मुलाच्या प्रक्रियेच्या कोडमध्ये प्रतिबिंबित होईल.
व्होफोर्क () वापरल्याने मूल आणि पालक प्रक्रियेसाठी स्वतंत्र पत्ते तयार होत नाहीत. म्हणूनच, ते असलेच पाहिजे अंमलात आणले जिथे मुलाची प्रक्रिया कॉल करते कार्यकारी () त्याच्या निर्मितीनंतर ताबडतोब तर, पत्त्याच्या जागेचा अपव्यय होणार नाही आणि तेच आहे कार्यक्षम प्रक्रिया तयार करण्याचा मार्ग. vfork वापरत नाही कॉपी-ऑन-लिहा.
- काटा आणि व्होफोर्क मधील प्राथमिक फरक म्हणजे मुलांद्वारे तयार केलेली प्रक्रिया काटा आहे वेगळी मेमरी स्पेस पालक प्रक्रियेद्वारे. तथापि, मुलाने तयार केलेली प्रक्रिया vfork सिस्टम कॉल शेअर करते समान पत्त्याची जागा त्याच्या मूळ प्रक्रियेची.
- मुलाची प्रक्रिया काटा वापरून तयार केली गेली एकाच वेळी कार्यान्वित करा पालक प्रक्रियेसह. दुसरीकडे, मुलाची प्रक्रिया व्होफोर्क वापरून तयार केली गेली निलंबित पालक प्रक्रिया पूर्ण होईपर्यंत अंमलबजावणी.
- पालक आणि मुलाच्या प्रक्रियेची मेमरी स्पेस असल्याने कोणत्याही प्रक्रियेद्वारे केलेले स्वतंत्र बदल इतरांच्या पृष्ठांवर परिणाम करत नाहीत. तथापि, पालक आणि मुलाच्या प्रक्रियेमध्ये कोणत्याही प्रक्रियेद्वारे केलेले समान मेमरी अॅड्रेस बदल सामायिक केल्याने पत्त्याच्या जागेवर प्रतिबिंबित होते.
- सिस्टम कॉल काटा () वापरतो कॉपी-ऑन-लिहा एक पर्याय म्हणून, जे मूल व पालकांना त्यांच्यापैकी कोणीही पृष्ठे सुधारत नाही तोपर्यंत समान पत्त्याची जागा सामायिक करू देतात. दुसरीकडे, व्होफोर्क कॉपी-ऑन-राइट वापरत नाही.
निष्कर्ष:
व्होर्फ () सिस्टम कॉल क्रॅक () चा वापर करून तयार झाल्यानंतर ताबडतोब चाईल्ड प्रोसेस कॉल () एक्झिक () कॉल करावा लागतो. मूल व पालक प्रक्रियेसाठी स्वतंत्र पत्त्याच्या जागेचा येथे उपयोग होणार नाही.