2010-02-28 12 views
8

मैं किसी भी परियोजना या कुछ भी posix या sysv संदेश कतार का उपयोग कभी नहीं देखा है?आपने sysv/posix संदेश कतारों का उपयोग किस लिए किया है? और उत्सुक जा रहा है, क्या समस्या है या परियोजनाओं है आप लोग उनके लिए इस्तेमाल किया -

उत्तर

2

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

ईमानदारी से कहूं तो मैं सिस्टम वी संदेश कतार इस्तेमाल किया क्योंकि मैं उन्हें पहले कभी उपयोग नहीं किया था और मैं करना चाहता था। मुझे यकीन है कि अन्य आईपीसी विधियां भी उपयोग की जा सकती हैं।


थोड़ा समय के बाद से मैं किसी भी असली VxWorks प्रोग्रामिंग किया है हो गया है, लेकिन आप यह भी VxWorks अनुप्रयोगों में इस्तेमाल संदेश कतार पा सकते हैं। VxWorks Application Programmer's Guide (Google खोज) के अनुसार, यह एक CPU के भीतर प्राथमिक intertask संचार तंत्र संदेश कतार है। VxWorks दो संदेश कतार subroutine पुस्तकालयों (POSIX और VxWorks) का उपयोग करता है।

1

मैं एक बार एक पाठ-मोड आई/ओ जनरेटर उपयोगिता है कि वास्तविक आई/ओ काम करने के लिए यूआई और कार्यकर्ता धागे के एक नंबर को अद्यतन करने के आरोप में एक धागा था लिखा था। जब एक कार्यकर्ता थ्रेड ने I/O पूरा किया, तो उसने UI थ्रेड पर एक अपडेट संदेश भेजा। मैंने एक पॉज़िक्स संदेश कतार का उपयोग करके इस संदेश प्रणाली को लागू किया।

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

1

तुम्हें यकीन के लिए भारतीय दंड संहिता के लिए उपयोग कर सकते हैं क्योंकि यह एक भारतीय दंड संहिता तंत्र है। इस तंत्र के साथ आप मल्टी-प्रोसेस इवेंट प्रोसेसिंग एप्लिकेशन लिख सकते हैं जिसमें सभी एप्लिकेशन कतार का उपयोग कर रहे हैं और जिनमें से प्रत्येक एक विशेष प्रकार के संदेश (एक विशेष घटना होने के लिए) की प्रतीक्षा कर रहे हैं। जब संदेश आता है कि प्रक्रिया संदेश लेती है, प्रक्रिया करती है और परिणाम को कतार में वापस रखती है ताकि अन्य प्रक्रिया इसका उपयोग कर सके।
एक बार मैंने संदेश कतारों का उपयोग करके ऐसा एप्लिकेशन लिखा था। यह काम करना बहुत आसान है और इसे सेफफोर्स जैसे इंटर-प्रोसेस सिंक्रनाइज़ेशन तंत्र की आवश्यकता नहीं है। आप मेमोरी मैप की गई फ़ाइलों की साझा मेमोरी के स्थान पर भी इसका उपयोग कर सकते हैं, ऐसी परिस्थितियों में जिसमें आपको केवल एक संरचना या किसी अन्य प्रकार के पैक किए गए डेटा को अन्य प्रक्रियाओं में भेजना है, संदेश कतार किसी अन्य आईपीसी तंत्र की तुलना में उपयोग करना कहीं अधिक आसान है।
This book में लिनक्स में संदेश कतार और अन्य आईपीसी तंत्र के बारे में जानने के लिए आवश्यक सभी जानकारी शामिल है।

+0

आपने समझाया नहीं है कि कोई भी सॉकेट के बजाय इन क्रूर पुरानी चीज़ों को कभी क्यों नहीं चाहेगा। – tchrist

+0

वैसे वास्तव में संदेश कतार आपको एक दूसरे से कई अनुप्रयोगों को अलग करने और एक संदेश ब्रोकर आर्किटेक्चर बनाने की अनुमति देता है जो विभिन्न घटकों को एक दूसरे से अलग करने की अनुमति देता है; और आपको एक आरपीसी जैसी तंत्र को लागू करने की अनुमति देता है, ऐसे आर्किटेक्चर को लागू करने के लिए सॉकेट को परिवहन तंत्र के रूप में उपयोग किया जा सकता है लेकिन इसके लिए आपको उच्च स्तरीय प्रोटोकॉल की आवश्यकता होगी। संदेश कतारों के बारे में अधिक पढ़ने के लिए http://www.zeromq.org देखें – gst

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