'\" t .\" Title: taskset .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.26 .\" Date: 2026-09-02 .\" Manual: دستورات کاربری .\" Source: util-linux 2.42.3 .\" Language: Persian .\" .TH "TASKSET" "1" "2026-09-02" "util\-linux 2.42.3" "دستورات کاربری" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "نام (NAME)" taskset \- دریافت یا تنظیم وابستگی پردازنده یک فرایند .SH "خلاصه دستور (SYNOPSIS)" .sp \fBtaskset\fP [options] \fImask command\fP [\fIargument\fP.\|.\|.] .sp \fBtaskset\fP [options] \fB\-p\fP [\fImask\fP] \fIpid\fP .SH "توضیحات (DESCRIPTION)" .sp دستور \fBtaskset\fP برای تنظیم یا دریافت وابستگی پردازنده (CPU affinity) یک فرایند در حال اجرا بر اساس شناسه فرایند (\fIpid\fP) آن، یا برای اجرای یک \fIcommand\fP جدید با وابستگی پردازنده مشخص به کار می‌رود. وابستگی پردازنده ویژگی‌ای از زمان‌بند است که یک فرایند را به مجموعه مشخصی از پردازنده‌ها در سیستم متصل می‌کند. زمان‌بند لینوکس به وابستگی پردازنده تعیین‌شده پایبند خواهد بود و فرایند روی هیچ پردازنده دیگری اجرا نخواهد شد. توجه داشته باشید که زمان‌بند لینوکس از وابستگی طبیعی پردازنده نیز پشتیبانی می‌کند: زمان‌بند تلاش می‌کند به دلایل کارایی تا جای ممکن فرایندها را روی همان پردازنده نگه دارد. بنابراین، تحمیل یک وابستگی پردازنده خاص تنها در کاربردهای ویژه‌ای مفید است. وابستگی برخی فرایندها مانند ریسه‌های به ازای پردازنده هسته (kernel per\-CPU threads) قابل تنظیم نیست. .sp وابستگی پردازنده به صورت یک ماسک بیتی (bitmask) نمایش داده می‌شود، که در آن کم‌ارزش‌ترین بیت متناظر با نخستین پردازنده منطقی و باارزش‌ترین بیت متناظر با آخرین پردازنده منطقی است. ممکن است همه پردازنده‌ها روی یک سیستم موجود نباشند، اما یک ماسک می‌تواند پردازنده‌های بیشتری نسبت به موارد موجود را مشخص کند. ماسک دریافت‌شده تنها بیت‌هایی را منعکس می‌کند که متناظر با پردازنده‌های موجود فیزیکی روی سیستم هستند. اگر یک ماسک نامعتبر داده شود (یعنی ماسکی که با هیچ پردازنده معتبری روی سیستم فعلی تطابق ندارد) خطایی بازگردانده می‌شود. ماسک‌ها می‌توانند در مبنای شانزده (با یا بدون پیشوند "0x") یا به صورت فهرستی از پردازنده‌ها با گزینه \fB\-\-cpu\-list\fP مشخص شوند. برای مثال، .sp \fB0x00000001\fP .RS 4 پردازنده شماره 0 است، .RE .sp \fB0x00000003\fP .RS 4 پردازنده‌های شماره 0 و 1 است، .RE .sp \fBFFFFFFFF\fP .RS 4 پردازنده‌های شماره 0 تا 31 است، .RE .sp \fB0x32\fP .RS 4 پردازنده‌های شماره 1، 4 و 5 است، .RE .sp \fB\-\-cpu\-list 0\-2,6\fP .RS 4 پردازنده‌های شماره 0، 1، 2 و 6 است. .RE .sp \fB\-\-cpu\-list 0\-10:2\fP .RS 4 پردازنده‌های شماره 0، 2، 4، 6، 8 و 10 است. پسوند ":N" گام (stride) را در محدوده مشخص می‌کند؛ برای مثال 0\-10:3 به صورت فهرست 0,3,6,9 تفسیر می‌شود. .RE .sp هنگامی که \fBtaskset\fP به پایان می‌رسد، تضمین می‌شود که برنامه ارائه‌شده روی یک پردازنده مجاز زمان‌بندی شده است. .SH "گزینه‌ها (OPTIONS)" .sp \fB\-a\fP, \fB\-\-all\-tasks\fP .RS 4 تنظیم یا دریافت وابستگی پردازنده تمام وظایف (ریسه‌ها) برای یک PID مشخص. .RE .sp \fB\-c\fP, \fB\-\-cpu\-list\fP .RS 4 تفسیر \fImask\fP به صورت فهرست عددی پردازنده‌ها به جای ماسک بیتی. اعداد با کاما از هم جدا می‌شوند و می‌توانند شامل محدوده باشند. برای مثال: \fB0,5,8\-11\fP. .RE .sp \fB\-p\fP, \fB\-\-pid\fP .RS 4 عملیات روی یک PID موجود و عدم راه‌اندازی وظیفه جدید. اگر PID برابر با صفر باشد، روی فرایند خود \fBtaskset\fP عمل می‌کند. .RE .sp \fB\-h\fP, \fB\-\-help\fP .RS 4 نمایش متن راهنما و خروج. .RE .sp \fB\-V\fP, \fB\-\-version\fP .RS 4 نمایش نسخه و خروج. .RE .SH "نحوه استفاده (USAGE)" .sp رفتار پیش‌فرض، اجرای یک دستور جدید با یک ماسک وابستگی مشخص است: .RS 4 \fBtaskset\fP \fImask\fP \fIcommand\fP [\fIarguments\fP] .RE .sp همچنین می‌توانید وابستگی پردازنده یک وظیفه موجود را دریافت کنید: .RS 4 \fBtaskset \-p\fP \fIpid\fP .RE .sp یا آن را تنظیم نمایید: .RS 4 \fBtaskset \-p\fP \fImask pid\fP .RE .sp هنگامی که یک cpu\-list برای یک فرایند موجود مشخص می‌شود، گزینه‌های \fB\-p\fP و \fB\-c\fP باید با هم گروه‌بندی شوند: .RS 4 \fBtaskset \-pc\fP \fIcpu\-list pid\fP .RE .sp فرم \fB\-\-cpu\-list\fP تنها برای راه‌اندازی دستورات جدید کاربرد دارد: .RS 4 \fBtaskset \-\-cpu\-list\fP \fIcpu\-list command\fP .RE .SH "دسترسی‌ها (PERMISSIONS)" .sp یک کاربر می‌تواند وابستگی پردازنده فرایندی متعلق به همان کاربر را تغییر دهد. کاربر برای تغییر وابستگی پردازنده فرایند متعلق به کاربری دیگر باید دارای قابلیت \fBCAP_SYS_NICE\fP باشد. یک کاربر می‌تواند ماسک وابستگی هر فرایندی را دریافت کند. .SH "وضعیت خروج (EXIT STATUS)" .sp \fBtaskset\fP در حالت دریافت وابستگی، تا زمانی که PID ارائه‌شده وجود داشته باشد مقدار 0 را برمی‌گرداند. .sp \fBtaskset\fP در حالت تنظیم وابستگی، تا زمانی که فراخوانی سیستمی \fBsched_setaffinity\fP(2) زیربنایی مقدار 0 بازگرداند، 0 برمی‌گرداند. موفقیت دستور تضمین نمی‌کند که ریسه مشخص‌شده حتماً به پردازنده(های) تعیین‌شده منتقل شده باشد، بلکه فقط تضمین می‌کند که ریسه به پردازنده‌ای خارج از ماسک وابستگی جدید منتقل نخواهد شد. برای مثال، وابستگی ریسه هسته kswapd قابل تنظیم است، اما ممکن است ریسه فوراً منتقل نشود و هیچ تضمینی نیست که هرگز منتقل شود: .sp $ ps ax \-o comm,psr,pid | grep kswapd .br kswapd0 4 82 .br $ sudo taskset \-p 1 82 .br pid 82\(cqs current affinity mask: 1 .br pid 82\(cqs new affinity mask: 1 .br $ echo $? .br 0 .br $ ps ax \-o comm,psr,pid | grep kswapd .br kswapd0 4 82 .br $ taskset \-p 82 .br pid 82\(cqs current affinity mask: 1 .br .sp در مقابل، هنگامی که کاربر یک وابستگی غیرمجاز را مشخص کند، taskset خطایی را چاپ کرده و 1 برمی‌گرداند: .sp $ ps ax \-o comm,psr,pid | grep ksoftirqd/0 .br ksoftirqd/0 0 14 .br $ sudo taskset \-p 1 14 .br pid 14\(cqs current affinity mask: 1 .br taskset: failed to set pid 14\(cqs affinity: Invalid argument .br $ echo $? .br 1 .br .SH "مثال‌ها (EXAMPLES)" .sp چاپ وابستگی پردازنده فعلی به عنوان یک فهرست. .sp $ taskset \-pc 0 .br pid 1355988\(cqs current affinity list: 0\-47 .br .SH "نویسندگان (AUTHORS)" .sp نوشته‌شده توسط Robert M. Love. .SH "حق نشر (COPYRIGHT)" .sp حق نشر © 2004 Robert M. Love. این یک نرم‌افزار آزاد است؛ برای شرایط کپی‌برداری به سورس‌کد مراجعه کنید. هیچ‌گونه ضمانتی وجود ندارد؛ حتی برای قابلیت فروش یا تناسب با یک هدف خاص. .SH "همچنین ببینید (SEE ALSO)" .sp \fBchrt\fP(1), \fBnice\fP(1), \fBrenice\fP(1), \fBsched_getaffinity\fP(2), \fBsched_setaffinity\fP(2) .sp برای توضیحات طرح زمان‌بندی لینوکس به \fBsched\fP(7) مراجعه کنید. .SH "گزارش باگ‌ها (REPORTING BUGS)" .sp برای گزارش باگ‌ها، از \c .URL "https://github.com/util\-linux/util\-linux/issues" "ردیاب مشکلات" "." .SH "در دسترس بودن (AVAILABILITY)" .sp دستور \fBtaskset\fP بخشی از بسته util\-linux است که می‌توان آن را از \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux" "بایگانی هسته لینوکس" "." دانلود کرد.