مكتبة خيوط POSIX الأصلية

مكتبة الخيوط الأصلية POSIX ( NPTL ) هي تطبيق لمواصفات خيوط POSIX لنظام التشغيل Linux .

تاريخ

قبل إصدار نواة لينكس 2.6 ، كانت العمليات هي الكيانات القابلة للجدولة، ولم تكن هناك إمكانيات خاصة للخيوط . [ 1 ] مع ذلك، كان هناك استدعاء نظام - clone - يُنشئ نسخة من العملية المُستدعِية حيث تتشارك النسخة مساحة عنوان العملية المُستدعِية. استخدم مشروع LinuxThreads استدعاء النظام هذا لتوفير خيوط على مستوى النواة (معظم تطبيقات الخيوط السابقة في لينكس كانت تعمل بالكامل في مساحة المستخدم ). لسوء الحظ، لم يكن متوافقًا تمامًا مع معيار POSIX، لا سيما في مجالات معالجة الإشارات، والجدولة، وآليات التزامن بين العمليات.

لتحسين LinuxThreads، كان من الواضح ضرورة توفير دعم من نواة النظام ومكتبة جديدة للخيوط. انطلق مشروعان متنافسان لتلبية هذا المطلب: NGPT (خيوط POSIX من الجيل التالي) الذي عمل عليه فريق ضم مطورين من IBM ، وNPTL الذي عمل عليه مطورون من Red Hat . تعاون فريق NGPT بشكل وثيق مع فريق NPTL، ودمج أفضل ميزات كلا المشروعين في NPTL. تم التخلي عن مشروع NGPT لاحقًا في منتصف عام 2003 بعد دمج أفضل ميزاته في NPTL.

صدرت مكتبة NPTL لأول مرة في نظام Red Hat Linux 9. يُعرف نظام POSIX القديم في لينكس بمواجهته مشاكل مع الخيوط التي ترفض أحيانًا التنازل للنظام، لأنه لا يغتنم فرصة مقاطعتها عند حدوث ذلك، وهو أمر كان نظام ويندوز يتفوق فيه آنذاك. وقد زعمت Red Hat أن NPTL قد حلت هذه المشكلة في مقال نُشر على موقع جافا الإلكتروني حول جافا على Red Hat Linux 9. [ 2 ]

كانت NPTL جزءًا من Red Hat Enterprise Linux منذ الإصدار 3، وفي نواة Linux منذ الإصدار 2.6. وهي الآن جزء متكامل تمامًا من مكتبة GNU C. [ 3 ]

توجد أداة تتبع لـ NPTL تُسمى أداة تتبع خيوط POSIX ( PTT ). كما تم تطوير مجموعة اختبار POSIX مفتوحة المصدر ( OPTS ) لاختبار مكتبة NPTL وفقًا لمعيار POSIX.

تصميم

مثل مكتبة LinuxThreads، تُعدّ NPTL مكتبة خيوط 1:1. تتطابق الخيوط التي تُنشئها المكتبة (عبر pthread_create ) تطابقًا تامًا مع الكيانات القابلة للجدولة في النواة ( العمليات ، في حالة لينكس). [ 4 ] : ​​226. هذا هو أبسط نماذج الخيوط الثلاثة (1:1، N:1، وM:N). [ 4 ] : ​​215-216. تُنشأ الخيوط الجديدة باستخدام استدعاء النظام clone() الذي يُستدعى من خلال مكتبة NPTL. تعتمد NPTL على دعم النواة لـ futexes لتنفيذ أقفال مساحة المستخدم بكفاءة أكبر. [ 4 ] : ​​182

انظر أيضاً

مراجع

  1. pthreads(7) — صفحة دليل لينكس
  2. ريد هات لينكس 9 ومنصة جافا 2، الإصدار القياسي 1.4.2: مزيج رابح
  3. إصدار مكتبة GNU C الإصدار 2.3.3
  4. 1 2 3 روبرت لوف (2013). برمجة أنظمة لينكس (  الطبعة الثانية). دار نشر أورايلي ميديا. رقم ISBN 978-1449339531.
  • أداة NPTL Trace Tool مفتوحة المصدر لتتبع وتصحيح تطبيقات متعددة الخيوط باستخدام NPTL.