كيف يمكن لأحد التعليمات البرمجية اختبار السلوك وتعيينه دون تعليمات خاصة للأجهزة؟

StackOverflow https://stackoverflow.com/questions/107184

سؤال

تتطلب معظم التطبيقات التي أجدها تعليمات الأجهزة للقيام بذلك.ومع ذلك، أشك بشدة في أن هذا مطلوب (إذا كان الأمر كذلك، فلا أستطيع معرفة السبب...)

هل كانت مفيدة؟

المحلول

لا تحتاج إلى اختبار وتعيين تعليمات للحصول على قفل الاستبعاد المتبادل، إذا كان هذا هو ما تطلبه.وصف ديكسترا أول خوارزمية استبعاد متبادل أعرفها، في عام 1965.عنوان الورقة كان "حل مشكلة في التحكم بالبرمجة المتزامنة"، ابحث في جوجل عن نسخة قريبة منك.لم تتطلب الخوارزمية الأصلية دعمًا خاصًا من الأجهزة على الإطلاق، ولكن توفير تعليمات ذرية في وحدة المعالجة المركزية أدى إلى تحسين الأداء بشكل كبير.

يعد الاختبار والضبط، والمبادلة الذرية، والتحميل المرتبط بالتحميل + المتجر المشروط كلها من البدائيات الشائعة التي توفرها وحدات المعالجة المركزية.يمكن استخدام الكل لتنفيذ الاستبعاد المتبادل، والذي يمكن استخدامه بعد ذلك لتنفيذ أي دلالات قفل تريدها.

نصائح أخرى

إذا كنت تريد طريقة متقاطعة للقيام بذلك، وكنت تستخدم gcc، فيمكنك استخدام الإضافات الذرية لـ gcc:

http://gcc.gnu.org/onlinedocs/gcc/Atomic-Builtins.html

سيؤدي استدعاء هذه إلى تعليمات جهازية خاصة بالجهاز لبنية البناء الحالية.على تلك التي لا تدعمها، سوف تفشل الترجمة.(أظن...)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top