सिस्टम कॉल्स (System Calls)

परिभाषा:
सिस्टम कॉल (System Call) एक विशेष प्रकार का प्रोग्रामिंग इंटरफेस (API) होता है, जो एप्लिकेशन सॉफ़्टवेयर और ऑपरेटिंग सिस्टम के बीच संवाद स्थापित करने के लिए काम करता है। जब कोई एप्लिकेशन या उपयोगकर्ता प्रोग्राम को ऑपरेटिंग सिस्टम से सेवा (जैसे फाइल संचालन, प्रोसेस कंट्रोल, या इनपुट/आउटपुट ऑपरेशन) की आवश्यकता होती है, तो सिस्टम कॉल का उपयोग किया जाता है। यह ऑपरेटिंग सिस्टम के कर्नल और यूज़र प्रोग्राम के बीच इंटरफेस का कार्य करता है।

सिस्टम कॉल्स ऑपरेटिंग सिस्टम को उपयोगकर्ता प्रोग्राम से एक निर्देश प्राप्त करने का तरीका प्रदान करते हैं, जिससे यह सुनिश्चित किया जा सकता है कि संसाधनों का प्रबंधन सुरक्षित और उचित तरीके से किया जाए।


सिस्टम कॉल्स के प्रकार (Types of System Calls):

सिस्टम कॉल्स को कई श्रेणियों में विभाजित किया जा सकता है, जो ऑपरेटिंग सिस्टम की कार्यक्षमता के आधार पर होती हैं। निम्नलिखित प्रमुख प्रकार हैं:

1. प्रोसेस प्रबंधन कॉल्स (Process Management Calls):

  • ये कॉल्स सिस्टम को नए प्रोसेस बनाने, उन्हें नियंत्रित करने, और समाप्त करने में मदद करते हैं।
  • उदाहरण:
    • fork(): एक नया प्रोसेस बनाने के लिए।
    • exec(): एक प्रोसेस को किसी दूसरे प्रोग्राम से बदलने के लिए।
    • exit(): प्रोसेस को समाप्त करने के लिए।
    • wait(): प्रोसेस के समाप्त होने का इंतजार करने के लिए।

2. फाइल प्रबंधन कॉल्स (File Management Calls):

  • ये कॉल्स फाइलों को बनाने, पढ़ने, लिखने, और नियंत्रित करने में सहायक होते हैं।
  • उदाहरण:
    • open(): एक फाइल को खोलने के लिए।
    • read(): एक फाइल से डेटा पढ़ने के लिए।
    • write(): एक फाइल में डेटा लिखने के लिए।
    • close(): एक फाइल को बंद करने के लिए।
    • lseek(): फाइल के भीतर पॉइंट को सेट करने के लिए।
    • unlink(): फाइल को हटाने के लिए।

3. इनपुट/आउटपुट (I/O) कॉल्स (Input/Output Calls):

  • ये कॉल्स इनपुट और आउटपुट ऑपरेशन के लिए उपयोग होते हैं, जैसे कि कीबोर्ड, माउस, या डिस्क ड्राइव से संवाद स्थापित करना।
  • उदाहरण:
    • read(): इनपुट डिवाइस से डेटा पढ़ने के लिए।
    • write(): आउटपुट डिवाइस पर डेटा लिखने के लिए।
    • ioctl(): डिवाइस कंट्रोल ऑपरेशन के लिए।

4. संचालन नियंत्रण कॉल्स (Control Operations Calls):

  • ये कॉल्स ऑपरेटिंग सिस्टम के संचालन और प्रबंधन को नियंत्रित करते हैं।
  • उदाहरण:
    • getpid(): वर्तमान प्रोसेस का PID (Process ID) प्राप्त करने के लिए।
    • setuid(): उपयोगकर्ता ID सेट करने के लिए।
    • sleep(): प्रोसेस को निश्चित समय तक सस्पेंड करने के लिए।
    • kill(): प्रोसेस को समाप्त करने के लिए।

5. संचालन इंटरफेस कॉल्स (Inter-process Communication Calls):

  • ये कॉल्स अलग-अलग प्रोसेसों के बीच संवाद (Communication) स्थापित करने के लिए होते हैं।
  • उदाहरण:
    • pipe(): प्रोसेसों के बीच डेटा पाइपलाइन बनाने के लिए।
    • shmget(): साझा मेमोरी सेगमेंट प्राप्त करने के लिए।
    • semop(): सेमाफोर ऑपरेशन के लिए।
    • msgget(): संदेश कतार प्राप्त करने के लिए।

6. सुरक्षा कॉल्स (Security Calls):

  • ये कॉल्स सिस्टम के सुरक्षा फीचर्स को नियंत्रित करते हैं, जैसे उपयोगकर्ता प्रमाणीकरण और एक्सेस नियंत्रण।
  • उदाहरण:
    • chmod(): फाइल की अनुमति (permissions) को बदलने के लिए।
    • chown(): फाइल का मालिक बदलने के लिए।
    • setuid(): उपयोगकर्ता पहचान सेट करने के लिए।

7. नेटवर्किंग कॉल्स (Networking Calls):

  • ये कॉल्स नेटवर्क ऑपरेशनों को नियंत्रित करने के लिए होते हैं।
  • उदाहरण:
    • socket(): एक नेटवर्क सॉकेट बनाने के लिए।
    • connect(): एक सॉकेट के माध्यम से कनेक्शन बनाने के लिए।
    • send(): डेटा भेजने के लिए।
    • recv(): डेटा प्राप्त करने के लिए।

सिस्टम कॉल्स का कार्य (Working of System Calls):

  1. सिस्टम कॉल की शुरुआत:

    • जब कोई एप्लिकेशन प्रोग्राम किसी सिस्टम कॉल का उपयोग करता है, तो उसे ऑपरेटिंग सिस्टम के कर्नल में एक विशेष इंटरफेस की आवश्यकता होती है। इसे "सॉफ़्टवेयर इंटरप्ट" कहा जाता है, जो सिस्टम कॉल को ट्रिगर करता है।
  2. सिस्टम कॉल की प्रक्रिया:

    • सिस्टम कॉल कर्नल मोड में एक रिवर्स ट्रांज़िशन शुरू करता है। इस दौरान एप्लिकेशन का कर्नल के साथ इंटरफेस स्थापित होता है, जिससे यह ऑपरेटिंग सिस्टम द्वारा प्रदान की जाने वाली सेवा प्राप्त कर सके।
  3. कर्नल द्वारा सेवा का निष्पादन:

    • कर्नल सिस्टम कॉल द्वारा अनुरोधित सेवा को निष्पादित करता है, जैसे कि फाइल खोलना, प्रोसेस बनाना, या इनपुट/आउटपुट ऑपरेशन को पूरा करना।
  4. परिणाम की वापसी:

    • कर्नल सेवा को पूरा करने के बाद, परिणाम वापस एप्लिकेशन को भेजता है और कर्नल मोड से यूज़र मोड में वापस जाता है। फिर एप्लिकेशन अपना कार्य जारी रखता है।

सिस्टम कॉल्स के उदाहरण:

  1. UNIX/Linux में सिस्टम कॉल्स:

    • fork() – एक नया प्रोसेस बनाने के लिए।
    • exec() – प्रोसेस को नए प्रोग्राम से बदलने के लिए।
    • wait() – एक प्रोसेस को समाप्त होने का इंतजार करने के लिए।
    • read() – फाइल से डेटा पढ़ने के लिए।
  2. Windows में सिस्टम कॉल्स:

    • CreateFile() – एक नई फाइल बनाने के लिए।
    • ReadFile() – फाइल से डेटा पढ़ने के लिए।
    • WriteFile() – फाइल में डेटा लिखने के लिए।
    • ExitProcess() – प्रोसेस को समाप्त करने के लिए।

निष्कर्ष:

सिस्टम कॉल्स ऑपरेटिंग सिस्टम और उपयोगकर्ता प्रोग्राम के बीच संवाद स्थापित करने का एक महत्वपूर्ण तरीका होते हैं। वे सिस्टम को एप्लिकेशन के द्वारा अनुरोधित सेवाएँ प्रदान करने की अनुमति देते हैं, जैसे प्रोसेस प्रबंधन, फाइल संचालन, इनपुट/आउटपुट, सुरक्षा, और नेटवर्किंग। इन कॉल्स के बिना, एप्लिकेशन प्रोग्राम सीधे ऑपरेटिंग सिस्टम की निचली परतों के साथ संवाद नहीं कर सकते हैं।

Leave a Reply

Your email address will not be published. Required fields are marked *


Talk to us?

Post your blog

F.A.Q

Frequently Asked Questions