mutex_lock_interruptible फ़ंक्शन का उपयोग करें अपने ड्राइवर को किसी भी सिग्नल से बाधित होने की अनुमति देने के लिए। इसका मतलब है कि आपका सिस्टम कॉल लिखा जाना चाहिए ताकि इसे फिर से शुरू किया जा सके। (ERESTARTSYS भी देखें।)
क्या मैं एक सीपीयू में स्पिनलॉक को लॉक कर सकता हूं और दूसरे सीपीयू को अनलॉक कर सकता हूं?
सिंगल-कोर/सिंगल-सीपीयू सिस्टम पर स्पिनलॉक का उपयोग करने का आमतौर पर कोई मतलब नहीं है, क्योंकि जब तक स्पिनलॉक पोलिंग एकमात्र उपलब्ध सीपीयू कोर को ब्लॉक कर रहा है, तब तक कोई अन्य थ्रेड नहीं चल सकता है और चूंकि कोई अन्य थ्रेड नहीं चल सकता है, ताला भी नहीं खुलेगा।
क्या मैं स्पिनलॉक पकड़े हुए Kmalloc Gfp_kernel को कॉल कर सकता हूँ?
आप नहीं कर सकते, हालांकि, ऐसा कुछ भी करें जो स्पिनलॉक को पकड़कर सो जाए।उदाहरण के लिए, किसी भी फ़ंक्शन को कॉल न करें जो उपयोगकर्ता मेमोरी को छूता है, GFP_KERNEL ध्वज के साथ kmalloc, कोई सेमाफोर फ़ंक्शन या किसी भी शेड्यूल फ़ंक्शन को स्पिनलॉक रखते हुए। … लिनक्स में सेमाफोर स्लीपिंग लॉक हैं।
स्पिनलॉक_टी क्या है?
int spin_trylock(spinlock_t lock) स्पिनलॉक को लॉक करता है अगर यह पहले से लॉक नहीं है। यदि लॉक प्राप्त करने में असमर्थ है तो यह एक त्रुटि के साथ बाहर निकलता है और लॉक को स्पिन नहीं करता है। spin_lock_irq: spin_lock_irq(spinlock_t lock)
कर्नेल म्यूटेक्स क्या है?
लिनक्स कर्नेल में, म्यूटेक्स एक विशेष लॉकिंग प्रिमिटिव को संदर्भित करता है जो साझा मेमोरी सिस्टम पर क्रमांकन को लागू करता है, और न केवल 'पारस्परिक बहिष्करण' के संदर्भ में सामान्य शब्द के लिए। अकादमिक या इसी तरह की सैद्धांतिक पाठ्य पुस्तकें।