2011-01-03 17 views
65
  1. System V IPC और POSIX IPC के बीच अंतर क्या हैं?
  2. हमारे पास दो मानक क्यों हैं?
  3. यह तय करने के लिए कि कौन से आईपीसी कार्यों का उपयोग करना है?

उत्तर

78

दोनों के पास समान मूल उपकरण हैं - सेमफोर, साझा स्मृति और संदेश कतार। वे उन उपकरणों के लिए थोड़ा अलग इंटरफ़ेस प्रदान करते हैं, लेकिन बुनियादी अवधारणाएं समान हैं। एक उल्लेखनीय अंतर यह है कि POSIX संदेश कतारों के लिए कुछ अधिसूचना सुविधाएं प्रदान करता है जो Sys V नहीं करता है। (mq_notify() देखें।)

Sys वी आईपीसी अब जो व्यावहारिक निहितार्थ की एक जोड़ी है के लिए चारों ओर हो गया है -

पहले, POSIX आईपीसी कम व्यापक रूप से लागू किया गया है।मैंने पॉज़िक्स आईपीसी और its documentation lists what I know about POSIX IPC implementations on various platforms के लिए एक पायथन रैपर लिखा था।

उस दस्तावेज़ीकरण में सूचीबद्ध सभी प्लेटफार्मों पर, एसआईएस वी आईपीसी पूरी तरह से AFAIK लागू किया गया है, जबकि आप देख सकते हैं कि पॉज़िक्स आईपीसी नहीं है।

उनकी सापेक्ष उम्र का दूसरा निहितार्थ यह है कि एसआईएस वी आईपीसी के बाद कुछ समय के लिए पॉज़िक्स आईपीसी डिजाइन किया गया था। इसलिए, पीओएसआईक्स एपीआई के डिजाइनर एसआईएस वी एपीआई की ताकत और कमजोरियों से सीखने में सक्षम थे। नतीजतन POSIX API सरल है और आईएमओ का उपयोग करना आसान है, और मैं इसे Sys V API पर अनुशंसा करता हूं।

मुझे ध्यान रखना चाहिए कि मैंने कभी तुलना करने के लिए कोई प्रदर्शन परीक्षण नहीं चलाया है। मुझे लगता है कि पुराने एपीआई (एसआईएस वी) में प्रदर्शन के लिए अधिक समय होता था, लेकिन यह केवल अटकलें है जो वास्तव में वास्तविक दुनिया परीक्षण के लिए कोई विकल्प नहीं है।

क्यों दो मानक हैं - POSIX ने अपना मानक बनाया क्योंकि उन्होंने सोचा कि यह Sys V मानक पर एक सुधार था। लेकिन अगर सभी सहमत हैं कि पीओएसआईक्स आईपीसी बेहतर है, तो कई सारे कार्यक्रम अभी भी एसआईएस वी आईपीसी का उपयोग करते हैं और उन्हें सभी को पॉसिक्स आईपीसी में बंद करने में सालों लगेंगे। व्यावहारिक रूप से, यह प्रयास के लायक नहीं होगा, भले ही सभी नए कोड कल के रूप में पीओएसआईक्स आईपीसी का इस्तेमाल करते हैं, फिर भी एसआईएस वी आईपीसी कई सालों तक टिकेगा।

हम आपको यह नहीं बता सकते कि आपको क्या करना है इसके बारे में बहुत कुछ जानने के बिना आपको किस का उपयोग करना चाहिए, लेकिन आपके पास यहां दिए गए उत्तरों को आपको स्वयं निर्णय लेने के लिए पर्याप्त जानकारी देनी चाहिए।

-3
  • Systen वी और POSIX आईपीसी एक ही बात की दो अलग, लेकिन संबंधित कार्यान्वयन हैं।

"यूनिक्स सिस्टम V, आमतौर पर संक्षिप्त SysV (और आमतौर पर स्पष्ट-हालांकि शायद ही कभी लिखा-के रूप में" सिस्टम पांच "), यूनिक्स ऑपरेटिंग सिस्टम के पहले व्यावसायिक संस्करण में से एक है। यह मूल रूप से विकसित किया गया था अमेरिकी टेलीफोन & टेलीग्राफ (एटी & टी) और पहली बार 1 9 83 में रिलीज़ हुआ। "

-Wikipedia

"POSIX या" पोर्टेबल ऑपरेटिंग सिस्टम इंटरफ़ेस [यूनिक्स के लिए] "आईईईई द्वारा निर्दिष्ट संबंधित मानकों के एक परिवार के नाम एप्लीकेशन प्रोग्रामिंग इंटरफेस (एपीआई) को परिभाषित करने के लिए है"

-Wikipedia

  • systm वी वहाँ पहले था। आईओईई द्वारा मानकीकरण पहल से पॉज़िक्स विकसित हुआ।

  • जीएनयू/लिनक्स partially पॉज़िक्स के अनुरूप है। उपयोग करने के लिए कौन सा ओएस आप इस आईपीसी का उपयोग कर रहे हैं पर निर्भर करता है। अधिकतर विक्रेता POSIX की तरफ बढ़ रहे हैं।

Unix Network Programming: Interprocess Communications v. 2 by Richard Stevens इनमें से दोनों में एक अच्छा नज़र डालें।

Unix Network Programming http://ecx.images-amazon.com/images/I/51V1DSSA8NL._SL500_AA300_.jpg

+4

आप प्रश्नों में संदर्भित इंटरप्रोसेस कम्युनिकेटन के बारे में कुछ भी चर्चा नहीं करते हैं। –

15
  1. मेरा मानना ​​है कि प्रमुख अंतर यह है कि सभी POSIX आईपीसी, धागा सुरक्षित है, जबकि सबसे SysV आईपीसी [1] नहीं है।
  2. यूनिक्स युद्ध [2] के कारण। सिंगल यूनिक्स विनिर्देश (एसयूएस) [3], उर्फ ​​पॉज़िक्स, यूनिक्स-आधारित सिस्टम पर इंटरफेस को मानकीकृत करने के लिए बनाया गया था।
  3. शायद आप पॉज़िक्स चाहते हैं। विशेष रूप से आपकी आवश्यकताओं पर निर्भर करता है।
4

सिस्टम वी आईपीसी पुराना है और पॉज़िक्स आईपीसी नया है। हालांकि कुछ पहलुओं के लिए कुछ मतभेद हैं। हमेशा नहीं Posix, जबकि सिस्टम वी के तहत इन पूर्णांक संख्या के साथ दिया जाता है प्रणाली वी

  1. संकेतबाहु, कतारों और Posix के लिए साझा स्मृति है Ascii स्ट्रिंग नाम से बेहतर है।

  2. सिस्टम वी सेमफोरस स्वचालित रूप से रिलीज़ होने की अनुमति देता है यदि प्रक्रिया मर जाती है (semop SEM_UNDO ध्वज)। Posix के लिए ऐसी कोई बात नहीं है।

  3. लिनक्स और फ्रीबीएसडी पर पॉज़िक्स कतारों का बड़ा फायदा है, क्योंकि mq_open द्वारा दिए गए हैंडलर मूल रूप से फाइल डिस्क्रिप्टर हैं जिन्हें पराग/एपॉल/चयनित/क्यूक्ड किया जा सकता है।

संबंधित मुद्दे