- क्या अंतर हैं
System V IPCऔरPOSIX IPC? - हमारे पास दो मानक क्यों हैं?
- कैसे तय करें कि किस IPC का उपयोग करना है?
System V IPC is well known and commonly used, but the Linux implementation of it is badly broken.
System V IPCऔर POSIX IPC?System V IPC is well known and commonly used, but the Linux implementation of it is badly broken.
जवाबों:
दोनों के पास एक ही मूल उपकरण है - अर्ध-अंश, साझा की गई स्मृति और संदेश कतार। वे उन उपकरणों के लिए थोड़ा अलग इंटरफ़ेस पेश करते हैं, लेकिन मूल अवधारणाएं समान हैं। एक उल्लेखनीय अंतर यह है कि POSIX संदेश कतारों के लिए कुछ अधिसूचना सुविधाएँ प्रदान करता है जो Sys V नहीं करता है। (देखें mq_notify()।)
Sys V IPC व्यावहारिक प्रभाव के एक जोड़े के साथ लंबे समय तक रहा है -
सबसे पहले, POSIX IPC कम व्यापक रूप से लागू किया जाता है। मैंने POSIX IPC के लिए पायथन रैपर लिखा है और इसके प्रलेखन की सूची है कि मुझे विभिन्न प्लेटफार्मों पर POSIX IPC कार्यान्वयन के बारे में क्या पता है ।
उस प्रलेखन में सूचीबद्ध सभी प्लेटफार्मों पर, Sys V IPC को पूरी तरह से AFAIK लागू किया गया है, जबकि आप देख सकते हैं कि POSIX IPC नहीं है।
उनके सापेक्ष उम्र का दूसरा निहितार्थ यह है कि SOS V IPC को कुछ समय के लिए उपयोग किए जाने के बाद POSIX IPC डिजाइन किया गया था। इसलिए, POSIX API के डिज़ाइनर Sys V API की खूबियों और खामियों से सीखने में सक्षम थे। परिणामस्वरूप POSIX API IMO का उपयोग करने के लिए सरल और आसान है, और मैं इसे Sys V API की सलाह देता हूं।
मुझे ध्यान देना चाहिए कि मैंने दोनों की तुलना करने के लिए कभी कोई प्रदर्शन परीक्षण नहीं चलाया है। मुझे लगता है कि पुराने API (Sys V) के पास प्रदर्शन ट्यून होने के लिए अधिक समय होगा, लेकिन यह केवल अटकलें हैं जो निश्चित रूप से वास्तविक दुनिया के परीक्षण के लिए कोई विकल्प नहीं हैं।
जैसे कि दो मानक क्यों हैं - POSIX ने अपना मानक बनाया क्योंकि उन्हें लगा कि यह Sys V मानक पर एक सुधार था। लेकिन अगर हर कोई इस बात से सहमत है कि POSIX IPC बेहतर है, तो कई कई प्रोग्राम अभी भी Sys V IPC का उपयोग करते हैं और उन सभी को POSIX IPC में पोर्ट करने में कई साल लग जाएंगे। व्यवहार में, यह प्रयास के लायक नहीं होगा, भले ही कल के रूप में सभी नए कोड ने POSIX IPC का उपयोग किया हो, Sys V IPC कई वर्षों के लिए चारों ओर चिपक जाएगा।
हम आपको यह नहीं बता सकते हैं कि आपको क्या करना है, इसके बारे में बहुत कुछ जानने के बिना आपको इसका उपयोग करना चाहिए, लेकिन आपके पास यहां दिए गए उत्तर आपको खुद तय करने के लिए पर्याप्त जानकारी देनी चाहिए।
सिस्टम V IPC पुराना है और POSIX IPC नया है। हालाँकि कुछ पहलुओं के लिए कुछ अंतर हैं। हमेशा पॉसिक्स सिस्टम V से बेहतर नहीं है।
पॉज़िक्स के लिए सेमाफोर, कतार और साझा की गई मेमोरी में असिसी स्ट्रिंग नाम हैं, जबकि सिस्टम वी के तहत ये पूर्णांक संख्या के साथ दिए गए हैं।
यदि सिस्टम की मृत्यु हो जाती है (सिस्टम SEM_UNDO झंडा)। Posix के लिए ऐसी कोई बात नहीं है।
लिनक्स और फ्रीबीएसडी पर पॉज़िक्स कतारों का बड़ा फायदा है, क्योंकि mq_open द्वारा दिए गए हैंडलर मूल रूप से फाइल डिस्क्रिप्टर होते हैं जिन्हें पोल / एपोलड / सिलेक्ट / क्लेक्ट किया जा सकता है।
"यूनिक्स सिस्टम वी, आमतौर पर संक्षिप्त रूप से SysV (और आमतौर पर स्पष्ट किया जाता है - हालांकि शायद ही कभी" सिस्टम फ़ाइव "के रूप में लिखा जाता है), यूनिक्स ऑपरेटिंग सिस्टम के पहले व्यावसायिक संस्करणों में से एक है। यह मूल रूप से अमेरिकन टेलीफोन एंड टेलीग्राफ (एटीटी और टी) द्वारा विकसित किया गया था। पहली बार 1983 में रिलीज़ हुई। "
-Wikipedia
"POSIX या" पोर्टेबल ऑपरेटिंग सिस्टम इंटरफेस [यूनिक्स के लिए] "संबंधित प्रोग्रामिंग प्रोग्रामिंग इंटरफेस (एपीआई) को परिभाषित करने के लिए IEEE द्वारा निर्दिष्ट मानकों के एक परिवार का नाम है"
-Wikipedia
पहले सिस्टम वी था। POSIX IEEE द्वारा मानकीकरण पहल से विकसित हुआ।
GNU / Linux partiallyPOSIX के अनुरूप है। कौन सा उपयोग करना है यह इस बात पर निर्भर करता है कि आप इस आईपीसी का उपयोग किस ओएस पर कर रहे हैं। अधिकांश विक्रेता ओर बढ़ रहे हैं POSIX।
यूनिक्स नेटवर्क प्रोग्रामिंग: रिचर्ड स्टीवंस द्वारा इंटरप्रोसेस कम्युनिकेशंस v। 2 इन दोनों में एक अच्छा लुक देता है।