.TH "pmqtest" "8" "0.1" "" "" # SPDX-License-Identifier: GPL-2.0-or-later .SH "نام (NAME)" pmqtest \- راه‌اندازی جفت‌های نخ و سنجش تاخیر ارتباط بین‌فرآیندی با صف‌های پیام POSIX .SH "نحوه استفاده (SYNOPSIS)" .LP pmqtest [-a|-a PROC] [-b USEC] [-d DIST] [-D TIME] [-f TO] [-h] [-i INTV] [--json FILENAME] [-l LOOPS] [-p PRIO] [-q] [-S] [-t|-t NUM] .br .SH "توضیحات (DESCRIPTION)" .LP برنامه .B pmqtest جفت‌هایی از نخ‌ها را آغاز می‌کند که از طریق mq_send/mw_receive() همگام‌سازی می‌شوند و تاخیر میان ارسال و دریافت پیام را می‌سنجد. .SH "گزینه‌ها (OPTIONS)" .TP .B \-a, \-\-affinity[=PROC] اجرا روی پردازنده شماره PROC. اگر PROC مشخص نشود، روی پردازنده فعلی اجرا می‌شود. .TP .B \-b, \-\-breaktrace=USEC ارسال دستور break trace هنگامی که تاخیر > USEC باشد. این گزینه خطایابی برای کنترل ردیاب تاخیر در وصله بی‌درنگ (realtime preemption patch) است. برای پیگیری تاخیرهای بزرگ و غیرمنتظره در یک سیستم کاربرد دارد. .TP .B \-d, \-\-distance=DIST تنظیم فاصله بازه‌های نخ‌ها بر حسب میکروثانیه (پیش‌فرض ۵۰۰ میکروثانیه است). هنگامی که pmqtest با گزینه \-t فراخوانی شود و بیش از یک نخ ایجاد گردد، این مقدار فاصله به بازه زمانی نخ‌ها اضافه می‌شود: Interval(thread N) = Interval(thread N-1) + DIST .TP .B \-D, \-\-duration=TIME تعیین مدت زمان اجرای آزمون. .br افزودن 'm'، 'h' یا 'd' برای مشخص کردن دقیقه، ساعت یا روز. .TP .B \-h, \-\-help نمایش پیام راهنما .TP .B \-f, \-\-forcetimeout=TO تنظیم تاخیر مصنوعی در تابع ارسال برای اجبار به اتمام مهلت زمانی گیرنده، نیازمند گزینه \-T است .TP .B \-i, \-\-interval=INTV تنظیم بازه زمانی پایه نخ‌ها بر حسب میکروثانیه (پیش‌فرض ۱۰۰۰ میکروثانیه است). این مقدار بازه نخ نخست را تعیین می‌کند. همچنین \-d را ببینید. .TP .B \-\-json=FILENAME نوشتن نتایج نهایی در FILENAME با قالب JSON. .TP .B \-l, \-\-loops=LOOPS تنظیم تعداد دورها. پیش‌فرض 0 (بی‌پایان) است. این گزینه برای آزمون‌های خودکار با تعداد چرخه‌های مشخص مفید است. پس از رسیدن به تعداد بازه‌های زمانی زمان‌سنج، pmqtest متوقف می‌شود. .TP .B \-p, \-\-prio=PRIO تنظیم اولویت پردازش. .TP .B \-q, \-\-quiet چاپ خلاصه فقط در هنگام خروج. مناسب برای آزمون‌های خودکار که تنها دریافت خروجی نهایی نیاز است. .TP .B \-S, \-\-smp حالت آزمون برای چندپردازشی متقارن (SMP)، متضمن استفاده از \-a و \-t و اولویت یکسان در تمام نخ‌ها. .TP .B \-t, \-\-threads[=NUM] تنظیم تعداد نخ‌های آزمون (اگر این گزینه داده نشود، پیش‌فرض ۱ است). اگر NUM مشخص شود، به همان تعداد نخ آزمایشی ایجاد می‌شود. اگر NUM مشخص نشود، NUM برابر تعداد پردازنده‌های موجود در نظر گرفته می‌شود. .TP .B \-T, \-\-timeout=TO استفاده از mq_timedreceive() به جای mq_receive() و تعیین مهلت زمانی TO بر حسب ثانیه. .SH "مثال‌ها (EXAMPLES)" مثال زیر روی یک پردازنده ۸-مسیره در حال اجرا بود: .LP .nf # pmqtest -Sp99 -i100 -d0 #0: ID10047, P99, CPU0, I100; #1: ID10048, P99, CPU0, Cycles 153695 #2: ID10049, P99, CPU1, I100; #3: ID10050, P99, CPU1, Cycles 154211 #4: ID10051, P99, CPU2, I100; #5: ID10052, P99, CPU2, Cycles 156823 #6: ID10053, P99, CPU3, I100; #7: ID10054, P99, CPU3, Cycles 158202 #8: ID10055, P99, CPU4, I100; #9: ID10056, P99, CPU4, Cycles 153399 #10: ID10057, P99, CPU5, I100; #11: ID10058, P99, CPU5, Cycles 153992 #12: ID10059, P99, CPU6, I100; #13: ID10060, P99, CPU6, Cycles 156576 #14: ID10061, P99, CPU7, I100; #15: ID10062, P99, CPU7, Cycles 157957 #1 -> #0, Min 1, Cur 8, Avg 5, Max 18 #3 -> #2, Min 1, Cur 4, Avg 5, Max 18 #5 -> #4, Min 1, Cur 5, Avg 5, Max 19 #7 -> #6, Min 1, Cur 4, Avg 4, Max 17 #9 -> #8, Min 1, Cur 9, Avg 5, Max 18 #11 -> #10, Min 1, Cur 8, Avg 5, Max 18 #13 -> #12, Min 1, Cur 4, Avg 5, Max 29 #15 -> #14, Min 1, Cur 8, Avg 4, Max 17 .fi .SH "نویسندگان (AUTHORS)" .LP Carsten Emde .SH "همچنین ببینید (SEE ALSO)" .LP mq_send(3p), mq_receive(3p)