PR_FUTEX_HASH(2const)

الاسم
PR_FUTEX_HASH - ضبط خبيئة futex الخاصة

المكتبة
مكتبة سي المعيارية (libc، -lc)

موجز
#include <linux/prctl.h>  /* تعريف ثوابت PR_* */
#include <sys/prctl.h>

int prctl(PR_FUTEX_HASH, unsigned long op, ...);

الوصف
ضبط سمات الخبيئة الأساسية التي تستخدمها عائلة عمليات futex(2). يستخدم نواة لينكس خبيئة لتوزيع طلبات futex(2) غير المرتبطة على هياكل بيانات مختلفة لتقليل تنازع القفل. الطلبات غير المرتبطة هي طلبات لا ترتبط ببعضها لأنها تستخدم كلمة futex مختلفة. يحمل هيكل البيانات التمثيل داخل النواة للعملية ويتتبع المستخدمين الحاليين الذين هم في قائمة الانتظار وينتظرون الاستيقاظ. كما يوفر مزامنة المنتظرين مقابل الموقظين. يُحدد حجم الخبيئة العامة وقت الإقلاع ويعتمد على عدد وحدات المعالجة المركزية في النظام. بسبب تصادم الخبيئة، يمكن لطلبين غير مرتبطين من futex(2) مشاركة نفس دلو الخبيئة. وهذا بدوره يمكن أن يؤدي إلى تأخيرات في عملية futex(2) بسبب تنازع القفل أثناء الوصول إلى هيكل البيانات. يمكن أن تكون هذه التأخيرات مشكلة في نظام الوقت الحقيقي لأن العمليات العشوائية يمكن أن تشارك الأقفال داخل النواة وليس من الحتمي أي عملية ستكون متورطة.

ينفذ لينكس 6.17 خبيئة خاصة على مستوى العملية تُستخدم من قبل جميع عمليات futex(2) التي تحدد خيار FUTEX_PRIVATE_FLAG كجزء من العملية. بدون أي ضبط، تخصص النواة 16 فتحة خبيئة بمجرد إنشاء الخيط الأول. إذا استمرت العملية في إنشاء خيوط، تحاول النواة تغيير حجم الخبيئة الخاصة بناءً على عدد الخيوط ووحدات المعالجة المركزية المتاحة في النظام. تزيد النواة الحجم فقط وتتأكد من أنه لا يتجاوز حجم الخبيئة العامة.

يمكن للمستخدم ضبط حجم الخبيئة الخاصة مما يعطل أيضًا التغيير الآلي للحجم الذي توفره النواة.

القيمة في op هي أحد الخيارات أدناه.

PR_FUTEX_HASH_GET_SLOTS
PR_FUTEX_HASH_SET_SLOTS

قيمة الإرجاع
عند النجاح، تُرجع هذه الاستدعاءات قيمة غير سالبة. عند الخطأ، تُرجع -1، ويُضبط errno للإشارة إلى الخطأ.

المعايير
لينكس.

التاريخ
لينكس 6.17.

انظر أيضًا
prctl(2), futex(2), PR_FUTEX_HASH_GET_SLOTS(2const), PR_FUTEX_HASH_SET_SLOTS(2const)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.