सिस्टम कॉल बनाम फंक्शन कॉल
एक विशिष्ट प्रोसेसर एक-एक करके निर्देशों को निष्पादित करता है। लेकिन ऐसे अवसर भी हो सकते हैं जहां प्रोसेसर को वर्तमान निर्देश को रोकना पड़ता है और कुछ अन्य प्रोग्राम या कोड सेगमेंट (किसी अन्य स्थान पर रहने वाले) को निष्पादित करना पड़ता है। ऐसा करने के बाद प्रोसेसर सामान्य निष्पादन पर वापस आ जाता है और वहीं से जारी रहता है जहां से उसने छोड़ा था। एक सिस्टम कॉल और एक फ़ंक्शन कॉल ऐसे अवसर हैं। सिस्टम कॉल सिस्टम में निर्मित सबरूटीन के लिए एक कॉल है। फ़ंक्शन कॉल प्रोग्राम के भीतर ही सबरूटीन को कॉल है।
सिस्टम कॉल क्या है?
सिस्टम कॉल कंप्यूटर पर चलने वाले प्रोग्राम को ऑपरेटिंग सिस्टम के साथ बात करने के लिए एक इंटरफेस प्रदान करते हैं।जब किसी प्रोग्राम को ऑपरेटिंग सिस्टम के कर्नेल से एक सेवा (जिसके लिए उसे स्वयं ऐसा करने की अनुमति नहीं है) के लिए पूछने की आवश्यकता होती है, तो यह सिस्टम कॉल का उपयोग करता है। उपयोगकर्ता स्तर की प्रक्रियाओं में वही अनुमतियाँ नहीं होती हैं जो सीधे ऑपरेटिंग सिस्टम के साथ इंटरैक्ट करने वाली प्रक्रियाओं के पास होती हैं। उदाहरण के लिए, बाहरी I/O डिवाइस के साथ संचार करने के लिए या किसी अन्य प्रक्रिया के साथ बातचीत करने के लिए, एक प्रोग्राम सिस्टम कॉल का उपयोग करता है।
फंक्शन कॉल क्या है?
एक फंक्शन कॉल को सबरूटीन कॉल भी कहा जाता है। एक सबरूटीन (एक प्रक्रिया, कार्य, विधि या दिनचर्या के रूप में भी जाना जाता है) एक बड़े कार्यक्रम का हिस्सा है जो एक विशिष्ट कार्य को पूरा करने के लिए जिम्मेदार है। बड़ा प्रोग्राम एक भारी कार्यभार निष्पादित कर सकता है, और सबरूटीन केवल एक साधारण कार्य कर सकता है, जो शेष प्रोग्राम कोडिंग से भी स्वतंत्र है। एक फ़ंक्शन को इस तरह से कोडित किया जाता है कि इसे कई बार और विभिन्न स्थानों से (यहां तक कि अन्य कार्यों के भीतर से भी) कहा जा सकता है। जब किसी फ़ंक्शन को कॉल किया जाता है, तो प्रोसेसर वहां जा सकता है जहां फ़ंक्शन के लिए कोड रहता है और फ़ंक्शन के निर्देशों को एक-एक करके निष्पादित करता है।कार्यों को पूरा करने के बाद, प्रोसेसर ठीक उसी स्थान पर वापस आ जाएगा जहां उसने छोड़ा था और अगले निर्देश से निष्पादन जारी रखता है। कोड पुन: उपयोग के लिए कार्य एक महान उपकरण हैं। कई आधुनिक प्रोग्रामिंग भाषाएं कार्यों का समर्थन करती हैं। कार्यों के संग्रह को पुस्तकालय कहा जाता है। पुस्तकालयों को अक्सर सॉफ्टवेयर साझा करने और व्यापार करने के साधन के रूप में उपयोग किया जाता है। कुछ मामलों में, पूरा प्रोग्राम सबरूटीन्स (जैसे थ्रेडेड कोड संकलन) का एक क्रम हो सकता है।
सिस्टम कॉल और फंक्शन कॉल में क्या अंतर है?
सिस्टम कॉल सिस्टम में निर्मित सबरूटीन को कॉल है, जबकि फंक्शन कॉल प्रोग्राम के भीतर एक सबरूटीन को कॉल है। फ़ंक्शन कॉल के विपरीत, सिस्टम कॉल का उपयोग तब किया जाता है जब किसी प्रोग्राम को कुछ कार्य करने की आवश्यकता होती है, जिसके लिए उसके पास विशेषाधिकार नहीं होता है। सिस्टम कॉल ऑपरेटिंग सिस्टम कर्नेल में प्रवेश बिंदु हैं और प्रोग्राम से लिंक नहीं हैं (जैसे फ़ंक्शन कॉल)। इसके विपरीत, सिस्टम कॉल, फ़ंक्शन कॉल पोर्टेबल हैं। सिस्टम कॉल का समय ओवरहेड फ़ंक्शन कॉल के लिए ओवरहेड से अधिक होता है क्योंकि उपयोगकर्ता मोड और कर्नेल मोड के बीच एक संक्रमण होना चाहिए।सिस्टम कॉल को कर्नेल एड्रेस स्पेस में निष्पादित किया जाता है, जबकि फंक्शन कॉल्स को यूजर एड्रेस स्पेस में निष्पादित किया जाता है।