नमस्कार ददोस्तो आज की इस ब्लॉग पोस्ट में हम बात करने वाले है की ऑपरेटिंग सिस्टम में System Calls कितने प्रकार के होते है और यह किस तरह काम करते है और साथ ही यह भी जानेंगे कि operating system में इनका उपयोग किस तरह होता है।
जब कभी भी हम अपने सिस्टम में किसी प्रोग्राम को चलाना चाहते है तो उसको पूरा करने के लिए हमे सिस्टम को Request करनी पड़ती है जैसे की अगर हमें कोई फाइल पड़नी हो, मेमोरी अलॉट करवानी हो या फिर हमें कोई नया प्रोसेस बनाना हो। तो इस तरह के किसी भी प्रोग्राम अगर पूरा करना हो तो हमारा कंप्यूटर सिस्टम डायरेक्ट कंप्यूटर के हार्डवेयर से कॉन्टेक्ट नहीं कर सकता है।
इसको पूरा करने के लिए हमरे सिस्टम में जो भी ऑपरेटिंग सिस्टम उपस्थित होता है वह हमारे लिए एक System Call प्रदान करता है, जिसका काम यूज़र प्रोग्राम और OS (Operating System) के बीच में एक पुल (Bridge) का होता है।
अगर हम इसे आसान शब्दों में कहें तो, यह System Calls वही तरीका होता है जिसकी मदत से कोई भी प्रोग्राम ऑपरेटिंग सिस्टम में उपस्थित Kernel से सर्विस लेता है। ये वही कॉल्स होती है जो कंप्यूटर को बताती हैं कि कौन – सा काम करना है और उसे किस तरह से करना है।
तो चलिए दोस्तों, अब हम इस लेख में विस्तार से जानेंगे कि “सिस्टम कॉल्स कितने प्रकार के होते हैं (Types of System Calls in Hindi)” और इनका उपयोग कहाँ – कहाँ किया जाता है। वो भी अपनी आसान भाषा में, ताकि समझने में कोई भी समस्या न हो!
Types of System Calls in Hindi – (System Calls के प्रकार)
यँहा पर हमने इसके 5 मुख्य types के वारे में बताया हैं, जो आज के समय में लगभग हर एक कंप्यूटर के सिस्टम जैसे Windows हो, Linux हो, Unix हो या फिर वो MacOS ही क्यों न हो ये सभी में उपस्थित होते ही होते हैं।
हर जो प्रकार है उनका अपना खुदका हर एक का काम अलग होता है, और ये जितने भी प्रकार है वो सभी एक साथ मिलकर सिस्टम को smoothly चलाने में सहायता करते हैं। तो चलिए इनको एक – एक करके अपनी भाषा में जानते हैं:
1. File System Calls
जब कभी भी हम अपने कंप्यूटर या मोबाइल में किसी तरह की फाइल को खोलते है, पढ़ते है, लिखते है या फिर उसको बंद करते हैं, तो इन कामो को करने के लिए जितने भी ऑपरेशन चलाये जाते है वे सभी File System Calls की सहायता से ही किए जाते है।
जैसे किसी फोटो को खोलना या फिर किसी डॉक्यूमेंट को अपने सिस्टम में सेव करना इन सभी कामो को system calls चुपचाप करते रहते हैं। आसान भाषा में कहे तो फाइल से जुड़ा हुआ कोई भी काम इन्हीं के जरिए किया जाता है।
Example (उदाहरण):
- open() – यह उस समय काम करता है जब हम किसी फाइल को खोलने के लिए सिस्टम को रिक्वेस्ट करते है।
- read() – जब भी हमें किसी फाइल से data को पढ़ना होता है तो उस समय यह फंक्शन काम करता है।
- write() – अगर हमें किसी फाइल में डाटा लिखना होता है तो उस समय यह काम करता है।
- close() – फाइल को बंद करना होता है तो उसके लिए यह काम करता है।
- seek() – फाइल के pointer को move करते समय यह काम करता है।
2. Process Control Calls
जब भी हमें अपने सिस्टम यानि Computer या फिर Mobile में किसी तरह के नए काम (Process) को शुरू करना होता है या फिर ज्यादा समय से चल रही किसी पुरानी प्रोसेस को बंद करना होता है तो इस तरह के लजीतने भी काम होते है वे सभी Process Control Calls के द्वारा ही किए जाते है।
आसान भाषा में कहे तो अगर हमें अपने सिस्टम से एक साथ कई सारे काम (Multitasking) करनी हो तो वह सिर्फ इन्ही की मदत से पूरा किया जा सकता है।
Example (उदाहरण):
- fork() – जब भी हमें अपने कंप्यूटर में किसी तरह का नया छोटा काम (Child Process) शुरू करवाना होता है, तो उसके लिए हम fork() का यूज़ करते हैं। सोचो जैसे तुम किसी पेपर की फोटोकॉपी करवा रहे हो, बस बिल्कुल उसी तरह ये भी होता है इसका काम भी किसी प्रोसेस की कॉपी बनाना होता है।
- exec() – इसका काम है operating system को सर यह बताना होता है कि पुराने process को हटाकर उसकी जगह कोई नया प्रोग्राम चला दो। यानी जो भी काम पुराना है उसको बंद कर दो, और सीधे उसकी जगह नए काम को शुरू कर दो।
- wait() – इससे हमारा कंप्यूटर सिस्टम जो होता है वह थोड़े समय के लिए रुक जाता है, और यह सिर्फ तब तक रुकता है जब तक उसका छोटा काम (child process) पूरा नहीं हो जाता।
- exit() – जब भी कोई Process या काम पूरी तरह कम्पलीट हो जाता है तो उसको बंद करना होता है, तो इसके लिए हम exit() का उपयोग करके उसको अच्छे से पूरा कर देते हैं।
- kill() – इसके उपयोग से हम किसी भी चालू प्रोसेस सिग्नल भेज सकते हैं कि भाई बहुत काम कर लिया है इस लिए रुक जाओ।
3. Memory Management Calls
जब भी हम अपने सिस्टम में किसी तरह के प्रोग्राम को चलते है तो उसको उस समय अपना काम करने के लिए memory (RAM) की जरूरत होती है, तो इस तरह के जितने भी काम होते उन सभी को Memory Management Calls करता हैं।
फिर जब उसका काम पूरा हो जाता है, तो ये memory वापस खाली (free) कर दी जाती है। यानि किस प्रोसेस को कितनी और कब memory प्रदान करनी और उनसे उस मेमोरी को कब free या वापस लेना है आदि जैसे सभी काम system calls के जरिए ही किए जाते है।
Example (उदाहरण):
- brk() – इसका उपयोग हम उस समय करते है जब हमें यह पता करना होता है की हम जिस प्रोग्राम को चलने वाले है उसको कितनी heap memory रखने की आवश्यकता है।
- sbrk() – जब हमें बीच में कभी जरूरत पड़ने पर इसकी heap memory को थोड़ा बढ़ाना या कम करना होता है, तो उस वक्त हम sbrk() का उपयोग करते है।
- mmap() – जब हमें किसी चीज जो जल्दी से जल्दी या फिर सबसे तेज access करने की जरूरत होती है तो हमे file या resource को सीधा memory में जोड़ना (map करना) पड़ता है ताकि हम उसे तेजी से access कर सकें, तो इसके लिए हम mmap() का उपयोग करते है।
- munmap() – इसका काम सिर्फ इतना होता है की प्रोसेस को जीतनी मेमोरी mapped की गई है उसको वापस लेना या हटाना। यानी जब काम पूरा हो जाए तो हम memory को वापस free करने के लिए munmap() का इस्तेमाल करते हैं।
- mlock() – जब हम चाहते हैं कि कोई खास memory RAM में ही रहे और उसे swap (डिस्क में भेजना) ना किया जाए, तब हम mlock() का यूज़ करते हैं। इसकी वजह से memory जो है वह काफी तेज़ी से काम करने लगाती है।
- munlock() – जब हम locked memory को वापस normal बनाना चाहते हैं ताकि उसे फिर से swap किया जा सके, तो उसके लिए munlock() का इस्तेमाल करते हैं।
4. Inter – Process Communication (IPC) Calls
जब हमारे सिस्टम में एक ही समय पर दो य दो से अधिक processes चल रही होती है तो उनको एक दूसरे के बीच data communication करना पड़ता है, तो इसके लिए यह IPC का उपयोग करते है। खासकर इनका उपयोग तब किया जाता है जब processes को एक दूसरे के साथ बात करने की आवश्यकता होती है या फिर उन्हें एक दूसरे के साथ किसिस तरह का data share करना होता है।
Example (उदाहरण):
- pipe() – जब जभी भी दो प्रोग्राम आपस में एक दूसरे के साथ सिंपल तरीके से डेटा का आदान-प्रदान (communication) करते हैं, तो उसके लिए pipe का उपयोग किया जाता है।
- socket() – जब दो या फिर दो से अधिक कंप्यूटर या डिवाइस आपस में एक दूसरे के साथ किसी नेटवर्क के जरिए Communicate करते हैं, तो उसके लिए socket का उपयोग किया जाता है। जैसे अप भी अपने दोस्तों या फिर अपने किसी फैमिली मेंबर के साथ Whatsapp और Instagram के जरिए चैटिंग करते हैं।
- shmget() – जब दो प्रोग्राम एक ही मेमोरी को शेयर करके डेटा एक्सचेंज करते हैं, तो उसके लिए shared memory बनाई जाती है और उसे बनाने के लिए shmget का इस्तेमाल किया जाता है।
- semget() – ये semaphore access करने के लिए होता है, जो प्रोग्राम्स के बीच सामंजस्य (synchronization) बनाने में मदद करता है, ताकि सब कुछ हमेशा एक सही Sequence में बना रहे।
- msgget() – जब हमें दो प्रोग्राम्स के बीच मैसेज भेजना और रिसीव करना होता है, तो उसके लिए message queue बनाई जाती है, और उसे बनाने के लिए msgget का यूज़ करते हैं।
5. Device Management Calls
ये जो system calls है उनका उपयोग सिर्फ console, printer, mouse, scanner और disk आदि जैसी hardware devices को control करने के लिए किया जाता है। दूसरे शब्दो में कहे तो ये वही Calls है जो OS और physical devices के बीच एक लिंक का काम करते है।
Example (उदाहरण):
- setConsoleMode() – इसका उपयोग करके हम अपने computer के console (जैसे कमांड प्रॉम्प्ट) की settings बदल सकते हैं। जैसे मान लो input या output का तरीका बदलना हो।
- WriteConsole() – इसका इस्तेमाल हम तब करते हैं जब हमें console पर कुछ दिखाना (output देना) होता है। जैसे स्क्रीन पर कोई मैसेज print कराना।
- ReadConsole() – ये command हम तब use करते हैं जब हमें user से console के जरिए कोई input लेना होता है। जैसे user से नाम या नंबर पूछना।
- open() – इससे हम किसी डिवाइस या फाइल को खोलते हैं, ताकि हम उस पर काम कर सकें। जैसे कोई printer या storage डिवाइस।
- close() – इसका मतलब होता है कि हमने जो डिवाइस या फाइल खोली थी, अब हम उसे बंद कर रहे हैं, ताकि system resources free हो जाएं।
निष्कर्ष (Conclusion)
तो दोस्तों, आज की इस ब्लॉग पोस्ट में हमने बहुत ही आसान और सरल भाषा में जाना कि System Calls कितने प्रकार के होते है (Types of System Calls in Hindi).
System Calls असल में हमारे प्रोग्राम और ऑपरेटिंग सिस्टम के बीच एक पुल (Bridge) की तरह काम करते हैं, जिसकी सहायता से हमारा सॉफ्टवेयर हार्डवेयर से कम्यूनिकेट कर पाता है।
उम्मीद है कि अब आप System Calls के प्रकारों जैसे कि File Calls, Process Control, Memory Management, IPC, और Device Management के बारे में अच्छी तरह समझ चुके होंगे।
अगर आपको यह जानकारी अच्छी और हेल्पफुल लगी हो, तो इसे अपने दोस्तों के साथ ज़रूर शेयर करें और अगर कोई सवाल या सुझाव हो तो कमेंट में ज़रूर बताएं। Thank You!