.\" -*- coding: UTF-8 -*- .\" Copyright 2006, International Business Machines Corp. .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH ioprio_set 2 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم ioprio_get, ioprio_set \- الحصول/تعيين فئة جدولة الإدخال/الإخراج وأولويته .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP/* تعريف ثوابت \fBIOPRIO_*\fP */ \fB#include \fP/* تعريف ثوابت \fBSYS_*\fP */ \fB#include \fP .P \fBint syscall(SYS_ioprio_get, int \fP\fIwhich\fP\fB, int \fP\fIwho\fP\fB);\fP \fBint syscall(SYS_ioprio_set, int \fP\fIwhich\fP\fB, int \fP\fIwho\fP\fB, int \fP\fIioprio\fP\fB);\fP .fi .P \fIملاحظة\fP: لا توفر glibc أغلفة لنداءات النظام هذه، مما يستلزم استخدام \fBsyscall\fP(2). .SH الوصف استدعاءات النظام \fBioprio_get\fP() و \fBioprio_set\fP() تحصل وتعين فئة جدولة الإدخال/الإخراج وأولويته لواحد أو أكثر من الخيوط. .P الوسيطان \fIwhich\fP و \fIwho\fP يحددان الخيط (الخيوط) التي تعمل عليها استدعاءات النظام. الوسيط \fIwhich\fP يحدد كيفية تفسير \fIwho\fP، وله إحدى القيم التالية: .TP \fBIOPRIO_WHO_PROCESS\fP \fIwho\fP هو معرف عملية أو معرف خيط يحدد عملية أو خيطًا واحدًا. إذا كان \fIwho\fP يساوي 0، فاعمل على الخيط المستدعي. .TP \fBIOPRIO_WHO_PGRP\fP \fIwho\fP هو معرف مجموعة عملية يحدد جميع أعضاء مجموعة عملية. إذا كان \fIwho\fP يساوي 0، فاعمل على مجموعة العملية التي يكون المستدعي عضوًا فيها. .TP \fBIOPRIO_WHO_USER\fP .\" FIXME . Need to document the behavior when 'who" is specified as 0 .\" See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=652443 \fIwho\fP هو معرف مستخدم يحدد جميع العمليات التي لها UID حقيقي مطابق. .P إذا تم تحديد \fIwhich\fP كـ \fBIOPRIO_WHO_PGRP\fP أو \fBIOPRIO_WHO_USER\fP عند استدعاء \fBioprio_get\fP()، وتطابق أكثر من عملية مع \fIwho\fP، فإن الأولوية المعادة ستكون الأعلى الموجودة بين جميع العمليات المتطابقة. يقال أن أولوية ما أعلى من أخرى إذا كانت تنتمي إلى فئة أولوية أعلى (\fBIOPRIO_CLASS_RT\fP هي أعلى فئة أولوية؛ \fBIOPRIO_CLASS_IDLE\fP هي الأدنى) أو إذا كانت تنتمي إلى نفس فئة الأولوية مثل العملية الأخرى ولكن لها مستوى أولوية أعلى (رقم أولوية أقل يعني مستوى أولوية أعلى). .P الوسيط \fIioprio\fP المعطى لـ \fBioprio_set\fP() هو قناع بت يحدد كلاً من فئة الجدولة والأولوية التي سيتم تعيينها للعملية (العمليات) الهدف. تُستخدم الماكرو التالية لتجميع وتحليل قيم \fIioprio\fP: .TP \fBIOPRIO_PRIO_VALUE(\fP\fIclass\fP\fB, \fP\fIdata\fP\fB)\fP بإعطاء \fIclass\fP جدولة وأولوية (\fIdata\fP)، يجمع هذا الماكرو القيمتين لإنتاج قيمة \fIioprio\fP، والتي يتم إرجاعها كنتيجة للماكرو. .TP \fBIOPRIO_PRIO_CLASS(\fP\fImask\fP\fB)\fP بإعطاء \fImask\fP (قيمة \fIioprio\fP)، يُرجع هذا الماكرو مكون فئة الإدخال/الإخراج الخاص به، أي إحدى القيم \fBIOPRIO_CLASS_RT\fP أو \fBIOPRIO_CLASS_BE\fP أو \fBIOPRIO_CLASS_IDLE\fP. .TP \fBIOPRIO_PRIO_DATA(\fP\fImask\fP\fB)\fP بإعطاء \fImask\fP (قيمة \fIioprio\fP)، يُرجع هذا الماكرو مكون الأولوية (\fIdata\fP) الخاص به. .P انظر قسم NOTES لمزيد من المعلومات حول فئات الجدولة والأولويات، بالإضافة إلى معنى تحديد \fIioprio\fP كـ 0. .P يتم دعم أولويات الإدخال/الإخراج للقراءات والكتابات المتزامنة (\fBO_DIRECT\fP، \fBO_SYNC\fP). لا يتم دعم أولويات الإدخال/الإخراج للكتابات غير المتزامنة لأنها تصدر خارج سياق البرنامج الذي يُوسخ الذاكرة، وبالتالي لا تنطبق الأولويات الخاصة بالبرنامج. .SH "قيمة الإرجاع" عند النجاح، يُرجع \fBioprio_get\fP() قيمة \fIioprio\fP للعملية ذات أعلى أولوية إدخال/إخراج من بين أي من العمليات التي تطابق المعايير المحددة في \fIwhich\fP و \fIwho\fP. عند الخطأ، يتم إرجاع \-1، ويتم تعيين \fIerrno\fP للإشارة إلى الخطأ. .P عند النجاح، يُرجع \fBioprio_set\fP() 0. عند الخطأ، يتم إرجاع \-1، ويتم تعيين \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEINVAL\fP قيمة غير صالحة لـ \fIwhich\fP أو \fIioprio\fP. راجع قسم NOTES لفئات الجدولة المتاحة ومستويات الأولوية لـ \fIioprio\fP. .TP \fBEPERM\fP لا تمتلك العملية المستدعية الامتياز اللازم لتعيين \fIioprio\fP هذا للعملية (العمليات) المحددة. راجع قسم NOTES لمزيد من المعلومات حول الامتيازات المطلوبة لـ \fBioprio_set\fP(). .TP \fBESRCH\fP لم يتم العثور على عملية (عمليات) تطابق المواصفات في \fIwhich\fP و \fIwho\fP. .SH المعايير لينكس. .SH التاريخ لينكس 2.6.13. .SH ملاحظات يمكن لعمليتين أو أكثر أو خيوط مشاركة سياق إدخال/إخراج. ستكون هذه هي الحالة عندما يتم استدعاء \fBclone\fP(2) مع العلم \fBCLONE_IO\fP. ومع ذلك، بشكل مبدئي، لن تشارك الخيوط المميزة لعملية ما نفس سياق الإدخال/الإخراج. هذا يعني أنه إذا كنت تريد تغيير أولوية الإدخال/الإخراج لجميع الخيوط في عملية ما، فقد تحتاج إلى استدعاء \fBioprio_set\fP() على كل خيط. معرف الخيط الذي ستحتاجه لهذه العملية هو الذي يتم إرجاعه بواسطة \fBgettid\fP(2) أو \fBclone\fP(2). .P يكون لاستدعاءات النظام هذه تأثير فقط عند استخدامها مع جدولة إدخال/إخراج تدعم أولويات الإدخال/الإخراج. اعتبارًا من النواة 2.6.17، جدولة الإدخال/الإخراج الوحيدة من هذا القبيل هي جدولة الاصطفاف العادل تمامًا (CFQ). .P .\" commit 8ec680e4c3ec818efd1652f15199ed1c216ab550 إذا لم يتم تعيين جدولة إدخال/إخراج لخيط، فبشكل مبدئي ستتبع أولوية الإدخال/الإخراج قيمة nice لوحدة المعالجة المركزية (\fBsetpriority\fP(2)). قبل Linux 2.6.24، بمجرد تعيين أولوية إدخال/إخراج باستخدام \fBioprio_set\fP()، لم تكن هناك طريقة لإعادة تعيين سلوك جدولة الإدخال/الإخراج إلى المبدئي. منذ Linux 2.6.24، يمكن استخدام تحديد \fIioprio\fP كـ 0 لإعادة التعيين إلى سلوك جدولة الإدخال/الإخراج المبدئي. .SS "اختيار جدول إدخال/إخراج" يتم اختيار جداول الإدخال/الإخراج على أساس كل جهاز عبر الملف الخاص \fI/sys/block/\fPdevice\fI/queue/scheduler\fP. .P يمكن للمرء عرض جدول الإدخال/الإخراج الحالي عبر نظام الملفات \fI/sys\fP. على سبيل المثال، يعرض الأمر التالي قائمة بجميع الجداول المحملة حالياً في النواة: .P .in +4n .EX $\fB cat /sys/block/sda/queue/scheduler\fP noop anticipatory deadline [cfq] .EE .in .P الجدول المحاط بأقواس هو المستخدم فعلياً للجهاز (\fIsda\fP في المثال). يتم تعيين جدول آخر بكتابة اسم الجدول الجديد إلى هذا الملف. على سبيل المثال، سيضبط الأمر التالي الجدول للجهاز \fIsda\fP إلى \fIcfq\fP: .P .in +4n .EX $\fB su\fP Password: #\fB echo cfq > /sys/block/sda/queue/scheduler\fP .EE .in .\" .SS "جدول الإدخال/الإخراج للطابور العادل تماماً (CFQ)" منذ الإصدار 3 (المعروف أيضًا باسم CFQ Time Sliced)، يطبق CFQ مستويات nice للإدخال/الإخراج مشابهة لتلك الخاصة بجدولة وحدة المعالجة المركزية. يتم تجميع مستويات nice هذه في ثلاث فئات جدولة، تحتوي كل منها على مستوى أولوية واحد أو أكثر: .TP \fBIOPRIO_CLASS_RT\fP (1) هذه هي فئة الإدخال/الإخراج في الوقت الحقيقي. تُعطى فئة الجدولة هذه أولوية أعلى من أي فئة أخرى: تُعطى العمليات من هذه الفئة وصولاً أولياً إلى القرص في كل مرة. وبالتالي، يجب استخدام فئة الإدخال/الإخراج هذه بحذر: يمكن لعملية إدخال/إخراج واحدة في الوقت الحقيقي أن تجوع النظام بأكمله. ضمن فئة الوقت الحقيقي، هناك 8 مستويات من بيانات الفئة (الأولوية) تحدد بالضبط مقدار الوقت الذي تحتاجه هذه العملية للقرص في كل خدمة. أعلى مستوى أولوية في الوقت الحقيقي هو 0؛ وأدناها هو 7. في المستقبل، قد يتغير هذا ليكون أكثر قابلية للربط المباشر بالأداء، عن طريق تمرير معدل بيانات مرغوب بدلاً من ذلك. .TP \fBIOPRIO_CLASS_BE\fP (2) هذه هي فئة الجدولة بأفضل جهد، وهي المبدئية لأي عملية لم تضبط أولوية إدخال/إخراج محددة. تحدد بيانات الفئة (الأولوية) مقدار عرض النطاق الترددي للإدخال/الإخراج الذي ستحصل عليه العملية. مستويات أولوية أفضل جهد مماثلة لقيم nice لوحدة المعالجة المركزية (انظر \fBgetpriority\fP(2)). يحدد مستوى الأولوية أولوية نسبية للعمليات الأخرى في فئة الجدولة بأفضل جهد. تتراوح مستويات الأولوية من 0 (الأعلى) إلى 7 (الأدنى). .TP \fBIOPRIO_CLASS_IDLE\fP (3) هذه هي فئة الجدولة الخاملة. تحصل العمليات التي تعمل عند هذا المستوى على وقت الإدخال/الإخراج فقط عندما لا يحتاج أي شخص آخر إلى القرص. ليس للفئة الخاملة بيانات فئة. مطلوب الانتباه عند تعيين فئة الأولوية هذه لعملية، لأنها قد تصبح جائعة إذا كانت العمليات ذات الأولوية الأعلى تصل باستمرار إلى القرص. .P ارجع إلى ملف مصدر النواة \fIDocumentation/block/ioprio.rst\fP لمزيد من المعلومات حول جدول الإدخال/الإخراج CFQ وبرنامج مثال. .SS "الأذونات المطلوبة لضبط أولويات الإدخال/الإخراج" يُمنح الإذن لتغيير أولوية عملية أو يُرفض بناءً على معيارين: .TP \fBملكية العملية\fP يمكن لعملية غير مميزة ضبط أولوية الإدخال/الإخراج فقط لعملية يتطابق UID الحقيقي الخاص بها مع UID الحقيقي أو الفعال للعملية المستدعية. يمكن لعملية لديها القدرة \fBCAP_SYS_NICE\fP تغيير أولوية أي عملية. .TP \fBما هي الأولوية المرغوبة\fP تتطلب محاولات ضبط أولويات عالية جداً (\fBIOPRIO_CLASS_RT\fP) القدرة \fBCAP_SYS_ADMIN\fP. حتى Linux 2.6.24 كان مطلوباً أيضًا \fBCAP_SYS_ADMIN\fP لضبط أولوية منخفضة جداً (\fBIOPRIO_CLASS_IDLE\fP)، ولكن منذ Linux 2.6.25، لم يعد هذا مطلوباً. .P يجب أن يتبع استدعاء \fBioprio_set\fP() كلا القاعدتين، وإلا سيفشل الاستدعاء مع الخطأ \fBEPERM\fP. .SH العلل .\" 6 May 07: Bug report raised: .\" https://www.sourceware.org/bugzilla/show_bug.cgi?id=4464 .\" Ulrich Drepper replied that he wasn't going to add these .\" to glibc. لا يوفر glibc بعد ملف رأس مناسب يعرف نماذج الدوال والماكرو الموصوفة في هذه الصفحة. يمكن العثور على تعريفات مناسبة في \fIlinux/ioprio.h\fP. .SH "انظر أيضًا" \fBionice\fP(1), \fBgetpriority\fP(2), \fBopen\fP(2), \fBcapabilities\fP(7), \fBcgroups\fP(7) .P \fIDocumentation/block/ioprio.rst\fP في شجرة مصدر نواة Linux .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .