.\" -*- coding: UTF-8 -*- .\" Copyright 2014, Michael Kerrisk .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH sched_setscheduler 2 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم sched_setscheduler, sched_getscheduler \- ضبط وجلب سياسة/معاملات الجدولة .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBint sched_setscheduler(pid_t \fP\fIpid\fP\fB, int \fP\fIpolicy\fP\fB,\fP \fB const struct sched_param *\fP\fIparam\fP\fB);\fP \fBint sched_getscheduler(pid_t \fP\fIpid\fP\fB);\fP .fi .SH الوصف استدعاء النظام \fBsched_setscheduler\fP() يضبط كلاً من سياسة الجدولة ومعاملاتها للخيط الذي يُحدد معرفه في \fIpid\fP. إذا كان \fIpid\fP يساوي صفرًا، تُضبط سياسة الجدولة ومعاملات الخيط المستدعي. .P تُحدد معاملات الجدولة في وسيط \fIparam\fP، وهو مؤشر لبنية بالشكل التالي: .P .in +4n .EX struct sched_param { ... int sched_priority; ... }; .EE .in .P في التنفيذ الحالي، تحتوي البنية على حقل واحد فقط، \fIsched_priority\fP. يعتمد تفسير \fIparam\fP على السياسة المختارة. .P حاليًا، يدعم لينكس سياسات الجدولة "العادية" (أي غير الحقيقية) التالية كقيم يمكن تحديدها في \fIpolicy\fP: .TP 14 \fBSCHED_OTHER\fP .\" In the 2.6 kernel sources, SCHED_OTHER is actually called .\" SCHED_NORMAL. سياسة تقاسم الوقت القياسية (round\-robin)؛ .TP \fBSCHED_BATCH\fP لتنفيذ العمليات بأسلوب "الدفعة"؛ و .TP \fBSCHED_IDLE\fP لتشغيل وظائف خلفية ذات أولوية منخفضة \fIجدًا\fP. .P لكل من السياسات أعلاه، يجب أن يكون \fIparam\->sched_priority\fP مساويًا لـ 0. .P تُدعم أيضًا سياسات "وقت حقيقي" متنوعة، للتطبيقات الخاصة ذات الوقت الحرج التي تحتاج إلى تحكم دقيق في الطريقة التي تُختار بها الخيوط القابلة للتشغيل للتنفيذ. للقواعد التي تحكم متى يمكن لعملية استخدام هذه السياسات، انظر \fBsched\fP(7). سياسات الوقت الحقيقي التي يمكن تحديدها في \fIpolicy\fP هي: .TP 14 \fBSCHED_FIFO\fP سياسة الوارد أولاً، يخرج أولاً؛ و .TP \fBSCHED_RR\fP سياسة الدوري (round\-robin). .P لكل من السياسات أعلاه، يُحدد \fIparam\->sched_priority\fP أولوية جدولة للخيط. هذا رقم في النطاق الذي يُرجعه استدعاء \fBsched_get_priority_min\fP(2) و \fBsched_get_priority_max\fP(2) مع \fIpolicy\fP المحددة. في لينكس، يُرجع هذان الاستدعاءان النظاميان 1 و 99 على التوالي. .P منذ لينكس 2.6.32، يمكن إجراء عملية OR للعلامة \fBSCHED_RESET_ON_FORK\fP في \fIpolicy\fP عند استدعاء \fBsched_setscheduler\fP(). نتيجة لتضمين هذه العلامة، لا ترث العمليات الفرعية المنشأة بواسطة \fBfork\fP(2) سياسات الجدولة المميزة. انظر \fBsched\fP(7) للتفاصيل. .P يُرجع \fBsched_getscheduler\fP() سياسة الجدولة الحالية للخيط المُعرّف بواسطة \fIpid\fP. إذا كان \fIpid\fP يساوي صفرًا، يُسترد سياسة الخيط المستدعي. .SH "قيمة الإرجاع" عند النجاح، يُرجع \fBsched_setscheduler\fP() صفرًا. عند النجاح، يُرجع \fBsched_getscheduler\fP() السياسة للخيط (عدد صحيح غير سالب). عند الخطأ، يُرجع كلا الاستدعاءين \-1، ويُضبط \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEINVAL\fP وسائط غير صالحة: \fIpid\fP سالب أو \fIparam\fP هو NULL. .TP \fBEINVAL\fP (\fBsched_setscheduler\fP()) \fIpolicy\fP ليست إحدى السياسات المعروفة. .TP \fBEINVAL\fP (\fBsched_setscheduler\fP()) \fIparam\fP غير منطقي بالنسبة لـ \fIpolicy\fP المحددة. .TP \fBEPERM\fP لا يمتلك الخيط المستدعي الامتيازات المناسبة. .TP \fBESRCH\fP تعذر العثور على الخيط (thread) الذي معرفه \fIpid\fP. .SH الإصدارات لا يفصل POSIX.1 الأذونات التي يتطلبها خيط غير مميز لاستدعاء \fBsched_setscheduler\fP()، وتختلف التفاصيل عبر الأنظمة. على سبيل المثال، تقول صفحة الدليل Solaris 7 أن معرف المستخدم الحقيقي أو الفعلي للمستدعي يجب أن يطابق معرف المستخدم الحقيقي أو معرف المستخدم المحفوظ للمجموعة المستهدفة. .P سياسة الجدولة والمعاملات هي في الواقع سمات لكل خيط على حدة في لينكس. يمكن تمرير القيمة المُرجعة من استدعاء \fBgettid\fP(2) في الوسيط \fIpid\fP. تحديد \fIpid\fP كـ 0 سيعمل على سمات الخيط المستدعي، وتمرير القيمة المُرجعة من استدعاء \fBgetpid\fP(2) سيعمل على سمات الخيط الرئيسي لمجموعة الخيوط. (إذا كنت تستخدم واجهة برمجة تطبيقات خيوط POSIX، فاستخدم \fBpthread_setschedparam\fP(3) و \fBpthread_getschedparam\fP(3) و \fBpthread_setschedprio\fP(3) بدلاً من استدعاءات النظام \fBsched_*\fP(2).) .SH المعايير POSIX.1\-2024 (لكن انظر الأخطاء أدناه). .P \fBSCHED_BATCH\fP و \fBSCHED_IDLE\fP خاصتان بلينكس. .SH التاريخ POSIX.1\-2001. .SH ملاحظات يمكن العثور على تفاصيل إضافية حول دلالات جميع سياسات الجدولة "العادية" و "الوقت الحقيقي" أعلاه في صفحة الدليل \fBsched\fP(7). تصف تلك الصفحة أيضًا سياسة إضافية، \fBSCHED_DEADLINE\fP، والتي يمكن ضبطها فقط عبر \fBsched_setattr\fP(2). .P الأنظمة المتوافقة مع POSIX التي تتوفر فيها \fBsched_setscheduler\fP() و \fBsched_getscheduler\fP() تُعرف \fB_POSIX_PRIORITY_SCHEDULING\fP في \fI\fP. .SH العلل ينص POSIX.1 على أنه عند النجاح، يجب أن يُرجع \fBsched_setscheduler\fP() سياسة الجدولة السابقة. لا يتوافق \fBsched_setscheduler\fP() في لينكس مع هذا المطلب، لأنه يُرجع دائمًا 0 عند النجاح. .SH "انظر أيضًا" .ad l .nh \fBchrt\fP(1), \fBnice\fP(2), \fBsched_get_priority_max\fP(2), \fBsched_get_priority_min\fP(2), \fBsched_getaffinity\fP(2), \fBsched_getattr\fP(2), \fBsched_getparam\fP(2), \fBsched_rr_get_interval\fP(2), \fBsched_setaffinity\fP(2), \fBsched_setattr\fP(2), \fBsched_setparam\fP(2), \fBsched_yield\fP(2), \fBsetpriority\fP(2), \fBcapabilities\fP(7), \fBcpuset\fP(7), \fBsched\fP(7) .ad .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .