spl (Unix)
spl (اختصارًا لـ set priority level ، نسبةً إلى تعليمة التجميع PDP-11 التي تحمل الاسم نفسه [ 1 ] ) هو اسم لمجموعة من إجراءات أو وحدات ماكرو نواة يونكس المستخدمة لتغيير مستوى أولوية المقاطعة . [ 2 ] [ 3 ] كان هذا ضروريًا تاريخيًا لمزامنة الأجزاء الحرجة من كود النواة التي لا ينبغي مقاطعتها. [ 4 ] تستخدم إصدارات يونكس الأحدث التي تدعم المعالجة المتعددة المتناظرة في الغالب الأقفال المتبادلة (mutexes) لهذا الغرض، وهو حل أكثر عمومية، بحيث يمكن لمعالجات متعددة تنفيذ كود النواة في الوقت نفسه. [ 5 ] [ 1 ]
في الإصدارات القديمة من نظام يونكس PDP-11، كان هناك ثمانية من هذه الروتينات، تتراوح من spl0إلى spl7، حيث يتوافق كل منها مع مستوى أولوية مقاطعة واحد في PDP-11، [ 3 ] بالإضافة إلى splx، الذي يستعيد مستوى أولوية سابقًا (يُعاد بواسطة أحد الروتينات الأخرى). [ 2 ] في أنظمة يونكس BSD ومشتقاتها، تُسمى هذه الروتينات splhigh، splserial، splsched، splclock، splstatclock، splvm، spltty، splsofttty، splnet، splbio، splsoftnet، splsoftclock، spllowersoftclock، spl0و splx. [ 2 ]
اعتبارًا من مارس 2019 ، لا تزال عائلة spl من العناصر الأولية مستخدمة بكثرة في OpenBSD [ 6 ] و NetBSD ، [ 7 ] ويتضح ذلك من خلال كثرة الاستدعاءات splnet()داخل كود الشبكات؛ [ 6 ] [ 7 ] بينما يستخدم FreeBSD و DragonFly BSD مفاهيم أكثر حداثة؛ على سبيل المثال، في DragonFly، يمكن استخدام رموز LWKT بدلاً من spl.
انظر أيضاً
مراجع
- 1 2 ليهي، جريج (2001)، تحسين تطبيق SMP في FreeBSD ، تم الاطلاع عليه في 11 مايو 2018
- 1 2 3 "spl(9) - صفحات دليل OpenBSD" . تم الاطلاع عليه بتاريخ 11 مايو 2018 .
- 1 2 ليونز، جون (1976). تعليق ليونز على نظام يونكس، الإصدار السادس، مع شفرة المصدر . ص 43.
- ↑ ليونز، جون (1976). تعليق ليونز على نظام يونكس، الإصدار السادس، مع شفرة المصدر . ص 41.
- ↑ ماكوسيك، مارشال كيرك؛ وآخرون (المؤلفون) (2004). تصميم وتنفيذ نظام التشغيل FreeBSD . أديسون-ويسلي. ص 93.
- 1 2 "/sys/net/if.c" . مرجع BSD المتقاطع . OpenBSD . 2019-03-01 . تم الاسترجاع في 2019-03-05 .
s = splnet();
- 1 2 "/sys/net/if.c" . مرجع BSD المتقاطع . NetBSD . 2019-03-01 . تم الاسترجاع في 2019-03-05 .
s = splnet();
- المقاطعات
- يونكس
- نماذج يونكس
