.\" Text automatically generated by txt2man-1.4.5 .TH "SCHEDTOOL" 8 "1 November 2006" "" "System Manager's Manual" .SH "نام (NAME)" \fBschedtool \fP\- پرس‌وجو و تنظیم پارامترهای زمان‌بندی پردازنده .SH "خلاصه دستور (SYNOPSIS)" .nf .fam C .TP \fBschedtool\fP [\fB\-0\fP|\fB\-N\fP] [\fB\-1\fP|\fB\-F\fP] [\fB\-2\fP|\fB\-R\fP] [\fB\-3\fP|\fB\-B\fP] [\fB\-4\fP|\fB\-I\fP] [\fB\-5\fP|\fB\-D\fP] [\fB\-M\fP \fIpolicy\fP] [\fB\-a\fP \fIaffinity\fP] [\fB\-p\fP \fIprio\fP] [\fB\-n\fP \fInice_level\fP] [\fB\-e\fP \fIcommand [arg ...]\fP] [\fB\-r\fP] [\fB\-v\fP] [\fB\-h\fP] [LIST OF \fIPIDs\fP] .fam T .fi .SH "توضیحات (DESCRIPTION)" ابزار \fBschedtool\fP می‌تواند تمام پارامترهای زمان‌بندی پردازنده (CPU) را که لینوکس قادر به تنظیم آن‌هاست پیکربندی کرده یا اطلاعات مربوط به فرآیندهای داده‌شده را نمایش دهد. .P وظایف طولانی‌مدت و غیرتعاملی ممکن است از SCHED_BATCH بهره‌مند شوند، زیرا برش‌های زمانی طولانی‌تر هستند، زمان سیستمی کمتری برای محاسبه فرآیند قابل‌اجرای بعدی هدر می‌رود و حافظه‌های نهان پایدار می‌مانند. .P برنامه‌های صوتی/تصویری یا سایر برنامه‌های نزدیک به بی‌درنگ (near-realtime) در صورت تنظیم روی SCHED_RR ممکن است با پرش و وقفه کمتری اجرا شوند. از سوییچ اولویت ایستا \fB\-p\fP برای تعیین سلسله‌مراتب بین فرآیندها استفاده کنید. .TP ابزار \fBschedtool\fP اکنون از تنظیم وابستگی پردازنده (CPU-affinity) که در لینوکس 2.5.8 معرفی شد پشتیبانی می‌کند. .SH "گزینه‌ها (OPTIONS)" .TP .B \fB\-N\fP یا \fB\-0\fP تنظیم تمام \fIPID\fPها به SCHED_NORMAL/OTHER .TP .B \fB\-F\fP یا \fB\-1\fP به SCHED_FIFO (نیازمند مجوزهای مدیر سیستم/root) .TP .B \fB\-R\fP یا \fB\-2\fP به SCHED_RR (نیازمند مجوزهای مدیر سیستم/root) .TP .B \fB\-B\fP یا \fB\-3\fP به SCHED_BATCH .TP .B \fB\-I\fP یا \fB\-4\fP به SCHED_ISO .TP .B \fB\-D\fP یا \fB\-5\fP به SCHED_IDLEPRIO .TP .B \fB\-M\fP \fIpolicy\fP برای حالت دستی/خام؛ policy شماره سیاست زمان‌بندی است (برای 0 تا 4 به بالا مراجعه کنید). این گزینه بیشتر برای توسعه‌دهندگان هسته است که می‌خواهند پیاده‌سازی‌های جدید خود را بیازمایند. .TP .B \fB\-p\fP \fIprio\fP مشخص کردن اولویت ایستا که برای SCHED_FIFO و SCHED_RR \fBالزامی\fP است. معمولاً در محدوده ۱ تا ۹۹ قرار دارد. .TP .B \fB\-a\fP \fIaffinity\fP تنظیم وابستگی (\fIaffinity\fP) شناسه فرآیند به این ماسک بیتی (هگزادسیمال)؛ علاوه بر این، یک حالت فهرستی نیز پشتیبانی می‌شود. .TP .B \fB\-n\fP \fInice_level\fP تنظیم سطح nice شناسه فرآیند؛ به \fBnice(2), nice(1)\fP مراجعه کنید. .TP .B \fB\-e\fP \fIcommand [arg ...]\fP اجرای \fIcommand\fP با پارامترهای زمان‌بندی داده‌شده (تصویر فرآیند schedtool را بازنویسی می‌کند). بخش «مثال‌ها» را ببینید. .TP .B \fB\-r\fP نمایش حداقل و حداکثر اولویت برای هر سیاست. .TP .B \fB\-v\fP نمایش اطلاعات کامل با جزئیات. .TP .B \fB\-h\fP نمایش پیام راهنما .SH "مثال‌ها (EXAMPLES)" برای پرس‌وجوی سیاست‌های ‎$SHELL‎ جاری: .PP .nf .fam C #> schedtool $$ برای پرس‌وجوی برخی \fIPID\fPها، به‌ویژه 1، 2 و 3: .PP .nf .fam C #> schedtool 1 2 3 .fam T .fi برای \fBاجرا کردن\fP mplayer در \fBSCHED_RR\fP با اولویت 20. آرگومان اولویت برای هر دو سیاست SCHED_RR و SCHED_FIFO لازم است: .PP .nf .fam C #> schedtool \-R \-p 20 \-e mplayer -quiet some_file.avi .fam T .fi برای تنظیم پوسته فعلی روی \fBSCHED_BATCH\fP، که تمام برنامه‌های آغازشده توسط پوسته از آن ارث‌بری خواهند کرد: .PP .nf .fam C #> schedtool \-3 $$ .fam T .fi برای تنظیم تمام فرآیندهای با نام 'cpu_hog' روی SCHED_BATCH: .PP .nf .fam C #> schedtool \-3 `pidof cpu_hog` .fam T .fi برای تنظیم \fIوابستگی\fP یک فرآیند فقط به نخستین پردازنده (CPU0): .PP .nf .fam C #> schedtool \-a 0x1 .fam T استفاده از حالت فهرستی و وابستگی به CPU0 و CPU3: .PP .nf .fam C #> schedtool -a 0,3 .fam T .fi ترکیب یک آرگومان \fIوابستگی\fP و یک آرگومان \fIsysasat\fP (سیاست) البته همواره ممکن است: .PP .nf .fam C #> schedtool \-B \-a 0x1 .fam T .fi .SH "ماسک وابستگی (AFFINITY MASK)" آرگومان \fIوابستگی\fP مشخص می‌کند یک فرآیند مجاز است روی کدام پردازنده‌ها (CPUs) اجرا شود. این مقدار از یک ماسک بیتی ساده در مبنای ۱۶ تشکیل شده است. پردازنده CPU0 با کم‌ارزش‌ترین بیت، CPU1 با دومین بیت کم‌ارزش و به همین ترتیب نشان داده می‌شوند، در نتیجه: .PP \fB0x1\fP \-> اجرا فقط روی CPU0 .PP \fB0x2\fP \-> اجرا فقط روی CPU1 .PP \fB0x4\fP \-> اجرا فقط روی CPU2 .PP \fB0x8\fP \-> اجرا فقط روی CPU3 ... و الی آخر. .PP پردازنده‌های چندگانه را می‌توان با استفاده از OR بیتی مقادیر مشخص کرد: .PP \fB0x7\fP \-> اجرا روی CPUهای 0، 1 و 2 اما \fBنه\fP روی 4 .PP \fB0x3\fP \-> اجرا فقط روی CPUهای 0 و 1 .PP حالت پیش‌فرض اجرای یک فرآیند روی همه پردازنده‌ها است، که به صورت این ماسک‌ها خواهد بود: .PP \fB0xf\fP برای هر ۴ پردازنده .PP \fB0xff\fP برای هر ۸ پردازنده .SH "ماسک وابستگی - حالت فهرستی (AFFINITY MASK - LIST MODE)" به‌عنوان جایگزین، حالت فهرستی پشتیبانی می‌شود که در آن می‌توانید پردازنده‌ها را با جداکننده «,» مشخص کنید. دستور زیر ‎‎ را روی CPU0 و CPU1 اجرا می‌کند (معادل \fB0x3\fP): .PP .nf .fam C #> schedtool \-a \fB0,1\fP .SH "بررسی اجمالی سیاست‌ها (POLICY OVERVIEW)" \fBSCHED_NORMAL / SCHED_OTHER\fP این سیاست پیش‌فرض و مناسب برای برنامه‌های معمولی با مقداری تعامل است. عمل پیش‌دستی (preemption) فرآیندهای دیگر را انجام می‌دهد. .PP \fBSCHED_FIFO\fP زمان‌بند خروج به ترتیب ورود (First-In, First-Out)، فقط برای الزامات بی‌درنگ (real-time) استفاده می‌شود. فرآیندها در این کلاس معمولاً توسط دیگران پیش‌دستی نمی‌شوند، آن‌ها باید خودشان از طریق sched_yield() پردازنده را آزاد کنند و به همین دلیل به برنامه‌هایی با طراحی ویژه نیاز دارید. \fBبا احتیاط بسیار زیاد استفاده کنید.\fP \fBنیازمند مجوزهای مدیر سیستم (root) است.\fP .PP \fBSCHED_RR\fP زمان‌بند نوبت‌گردشی (Round-Robin)، همچنین برای الزامات بی‌درنگ استفاده می‌شود. زمان پردازنده به‌صورت نوبت‌گردشی با یک برش زمانی بسیار کوچک‌تر از SCHED_NORMAL اختصاص داده می‌شود و فرآیندها در این گروه نسبت به SCHED_NORMAL در اولویت قرار دارند. برای برنامه‌های صوتی/تصویری نزدیک به اوج نرخ سیستم قابل استفاده است. \fBنیازمند مجوزهای مدیر سیستم (root) است.\fP .PP \fBSCHED_BATCH\fP [از نسخه 2.6.16 در هسته اصلی] سیاست SCHED_BATCH برای برنامه‌های غیرتعاملی و متکی به پردازنده (CPU-bound) طراحی شده است. از برش‌های زمانی طولانی‌تر استفاده می‌کند (برای بهره‌برداری بهتر از حافظه نهان)، اما می‌تواند در هر زمان توسط فرآیندهای دیگر در کلاس‌های دیگر متوقف شود تا تعامل سیستم تضمین گردد. فرآیندها در این کلاس در آخرین مرحله انتخاب می‌شوند اما ممکن است منجر به افزایش چشمگیر سرعت (تا ۳۰۰٪) شوند. هیچ تقویت تعاملی انجام نمی‌شود. .PP \fBSCHED_ISO\fP [نیازمند وصله] سیاست SCHED_ISO طراحی شد تا کلاسی مشابه SCHED_RR در اختیار کاربران قرار دهد. به نقل از Con Kolivas: «این یک سیاست زمان‌بندی بدون انقضا است که برای تضمین یک برش زمانی در محدوده تأخیر معقول و در عین حال جلوگیری از گرسنگی پردازش طراحی شده است. مناسب برای بازی، ویدیو در مرز توانایی سخت‌افزار، ضبط ویدیو و غیره.» .PP \fBSCHED_IDLEPRIO\fP [نیازمند وصله] سیاست SCHED_IDLEPRIO شبیه به SCHED_BATCH است، اما به‌طور صریح طراحی شده تا فقط زمانی را که پردازنده بیکار است مصرف کند. هیچ تقویت تعاملی انجام نمی‌شود. اگر از SCHED_BATCH در هسته‌های ‎-ck‎ استفاده می‌کردید، این چیزی است که از 2.6.16 به بعد می‌خواهید. .SH "نکات (HINTS)" شناسه فرآیند ۰ به معنی «فرآیند جاری» است که در مورد ما، schedtool است. ممکن است هنگام استفاده از سوییچ ‎\-e‎ رخ دهد. .PP مراقب SCHED_FIFO باشید! ممکن است دسترسی سایر فرآیندها به پردازنده را قطع کنید، از جمله پوسته خود را. .PP برای SCHED_BATCH شما \fIقطعاً\fP به یک هسته 2.6 اخیر نیاز دارید. .PP یک نمای کلی کوتاه در SCHED_DESIGN ارائه شده است و پرونده \fBREADME\fP حاوی توضیحات کامل است. پرونده \fBINSTALL\fP همچنین تمام پیش‌نیازها و مکان دریافت وصله‌ها را فهرست کرده است. .PP وابستگی 0x0 هرگز نباید استفاده شود. .SH "همچنین ببینید (SEE ALSO)" \fBsched_setscheduler\fP(2), \fBsched_setaffinity\fP(2), \fBnice\fP(2), \fBnice\fP(1), \fBrenice\fP(3). .SH "اشکالات (BUGS)" شما به مقداری دانش درباره هسته و زمان‌بندی نیاز دارید. نویسنده یک فرد نخبه‌گرای منزوی است. .SH "نویسنده (AUTHOR)" Freek .P لطفاً از طریق قابلیت «ارتباط با نویسنده» در freshmeat.net با من تماس بگیرید ().