استخدم وظيفة mutex_lock_interruptible للسماح بمقاطعة برنامج التشغيل الخاص بك من خلال أي إشارة. هذا يعني أنه يجب كتابة مكالمة النظام الخاصة بك بحيث يمكن إعادة تشغيلها. (انظر أيضًا ERESTARTSYS.)
هل يمكنني قفل spinlock في وحدة معالجة مركزية واحدة وإلغاء قفل وحدة المعالجة المركزية الأخرى؟
استخدام spinlocks على نظام أحادي النواة / أحادي وحدة المعالجة المركزية لا معنى له عادة ، طالما أن استقصاء spinlock يحظر نواة وحدة المعالجة المركزية الوحيدة المتاحة ، فلا يمكن تشغيل أي مؤشر ترابط آخر وبما أنه لا يمكن تشغيل أي مؤشر ترابط آخر ، لن يتم إلغاء قفل القفل أيضًا.
هل يمكنني الاتصال بـ Kmalloc Gfp_kernel أثناء الضغط على السبينلوك؟
لا يمكنك، ومع ذلك ، تفعل أي شيء من شأنه أن ينام أثناء الضغط على قفل دوار.على سبيل المثال ، لا تستدعي أبدًا أي وظيفة تلامس ذاكرة المستخدم ، أو kmalloc بعلامة GFP_KERNEL ، أو أي وظائف إشارة أو أي من وظائف الجدول أثناء الضغط على قفل الدوران. … الإشارات في لينكس هي أقفال نائمة.
ما هو Spinlock_t؟
int spin_trylock (spinlock_tlock) يقفل spinlock إذا لم يكن مغلقًا بالفعل. إذا لم تتمكن من الحصول على القفل ، فإنه يخرج مع خطأ ولا يدور القفل. spin_lock_irq: spin_lock_irq (spinlock_tlock)
ما هو كائن النواة؟
في Linux kernel ، تشير كائنات المزامنة إلى بدائية قفل معينة تفرض التسلسل على أنظمة الذاكرة المشتركة، وليس فقط إلى المصطلح العام الذي يشير إلى "الاستبعاد المتبادل" الموجود في الأكاديمية أو الكتب النظرية المماثلة.