असंबद्ध प्रक्रियाएं futex का उपयोग करके सहयोग कैसे कर सकती हैं?असंबद्ध प्रक्रियाओं के बीच futex साझा करें
मान लें कि मेरे पास असंबंधित प्रक्रियाएं हैं, एक कहें, मेरे मॉड्यूल के साथ एक अपाचे सबप्रोसेस, एक और उदाहरण एक पृष्ठभूमि लिपि।
मैं उपयोगकर्ता-स्पेस फास्ट कोड पथ के लाभ के लिए, एक futex का उपयोग करके दोनों के बीच एक म्यूटेक्स के साथ एक कंडीशन चर स्थापित करना चाहता हूं।
ऐसा लगता है कि जिस स्मृति पर म्यूटेक्स संग्रहीत किया जाता है वह mmap
'डी फ़ाइल में हो सकता है, अगर उस मेमोरी को मैप किया गया है, उदा। mlock
'डी दो प्रक्रियाओं सैद्धांतिक रूप से उसी पते के खिलाफ futex कॉल जारी कर सकता है।
वैकल्पिक रूप से, शायद एक फ़्यूटेक्स को FUTEX_FD
का उपयोग करके एक प्रक्रिया से दूसरे में पारित किया जा सकता है।
कोड सबमिशन कम, उच्च स्तर और गतिशील भाषाओं को स्वीकार किया जाता है (सी, सी ++, पायथन, आदि)। "मजबूत फूटेक्स" एपीआई भी समर्थित होना चाहिए।
संदर्भ:
- https://www.kernel.org/doc/Documentation/robust-futexes.txt
- http://locklessinc.com/articles/mutex_cv_futex/
पीएस यदि यह नहीं किया जा सकता है, तो विस्तार से बताएं कि क्यों। –
[मैनपेज कहता है] (http://man7.org/linux/man-pages/man7/pthreads.7.html) कि pthreads आंतरिक रूप से futexes का उपयोग करता है। क्या आपने केवल उच्च स्तरीय एपीआई का उपयोग करने पर विचार किया था (जैसा कि [futex manpage अनुशंसा करता है] (http://man7.org/linux/man-pages/man7/futex.7.html)), और 'pthread स्थिति' PTHREAD_PROCESS_SHARED'? – Phillip
क्या आपने यह http://locklessinc.com/articles/mutex_cv_futex/ – Ghayel