انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: چگونگی تغییر اولویت پروسه‌ها در لینوکس  (دفعات بازدید: 5038 بار)

0 کاربر و 4 مهمان درحال مشاهده موضوع.

آفلاین فاراب

  • High Hero Member
  • *
  • ارسال: 1352
  • آزادی
    • پروفایل لینکداین
بصورت پیشفرض لینوکس بسیاری از پروسه‌ها را در هنگام اجرا با اولویت «0» در نظر میگیرد که به معنای بالاترین اولویت اجرا میباشد. به عنوان یک قانون، همواره عدد کوچکتر بیانگر اولویت بالاتر است. اگر در حال اجرای برنامه‌ای هستید که در به اختیار گرفتن منبع دچار گرسنگی است، آنگاه این مکانیزم اولویت بندی، معنا پیدا میکند. در بسیاری از موارد شما مجبورید به توزیع لینوکس خود بفهمانید که چه پروسه‌ای با چه اولویتی اجرا شود تا تخصیص منابع با نیاز آن برنامه هماهنگ شود.
در اوبونتو برای این منظور دو راه گرافیکی و خط‌فرمانی در نظر گرفته شده است:

۱- استفاده از System Monitor


به مسیر System > Administration > System Monitor بروید و در زبانه‌ی "Processes" بر روی هر پروسه‌ای که قصد تعویض اولویت آنرا دارید، راست کلیک کرده و اولویت مورد نظرتمان را با انتخاب "Change priority" اعمال کنید. دقت داشته باشید که اولویت‌ها در ستون "Nice" به نمایش در‌می‌آیند.

روش فوق در دسکتاپ Gnome مصداق دارد اما در مورد KDE هم روش بسیار شبیه به همین است.


۲- استفاده از Terminal
بسادگی کد زیر را در ترمینال وارد کنید:

sudo nice <process_name> <priority> &
برای مثال ما قصد داریم به Firefox اولویت 5 را بدهیم:

sudo nice firefox 5 &




ترجمه: فاراب
منبع: http://webupd8.blogspot.com/2009/07/how-to-change-process-priority-in-linux.html
Godisnowhere

آفلاین ناربه

  • ناظر انجمن
  • *
  • ارسال: 2033
  • جنسیت : پسر
پاسخ به: چگونگی تغییر اولویت پروسه‌ها در لینوکس
« پاسخ #1 : 12 امرداد 1388، 07:32 ب‌ظ »
ممنون. این کار معمولا زمانی مورد استفاده قرار میگیره که پروسه های زیادی باشن. درسته؟ در غیر اینصورت زیاد فرقی نمیکنه در حالت معمولی priority چه پروسه ای بالا باشه.

آفلاین فاراب

  • High Hero Member
  • *
  • ارسال: 1352
  • آزادی
    • پروفایل لینکداین
پاسخ به: چگونگی تغییر اولویت پروسه‌ها در لینوکس
« پاسخ #2 : 13 امرداد 1388، 02:26 ق‌ظ »
ممنون. این کار معمولا زمانی مورد استفاده قرار میگیره که پروسه های زیادی باشن. درسته؟ در غیر اینصورت زیاد فرقی نمیکنه در حالت معمولی priority چه پروسه ای بالا باشه.

دقیقا. البته مقاصد خاص رُ هم میشه براش در نظر گرفت که من در مقدمه ذکر نکردم. مثلا تصور کنید قصد دارید مثلا در کار‌های شبیه سازی، یک پروسه‌ی خاص، زمانی که پروسه‌های دیگه بطور ناگهانی وارد سیستم میشوند، هیچ وقت دچار گرسنگی نشه تا در کار کل سیستم اخلال ایجاد نشه. یا زمانی که یک منبع به مقدار بسیار محدود در سیستم موجود هست. یا مثال‌هایی از این دست. در اینصورت با تنظیم اولویت پروسه‌ها بصورت دستی، میتونید مقصود خودتون رُ مرتفع کنید.
البته سیستم عامل وظیفه داره این کار رُ به بهترین نحو و با الگریتم‌هایی که با اونا آشنایی دارید مثل Round Robin زمانبندی تخصیص منابع به پروسه‌ها رُ انجام بده تا هیچ موقع گرسنگی پیش نیاد اما برای برنامه نویس حرفه‌ای سیستم گاهی پیش میاد که یک پروسه‌ی حیاتی اتفاق میافته که هیچ موقع نباید در صف‌های پردازش قرار بگیره.
شبیه سازی یک دیگ‌بخار رُ در نظر بگیرید که وظیفه‌ی پردازش اطلاعات اون رُ برنامه‌ی ما بر عهده داره. اطلاعاتی که سنسور حرارتی به ما میده، از اونجا که اگه دیر بهش پاسخ داده نشه ممکنه به انفجار دیگ منجر بشه، باید بلافاصله و با بالاترین اولویت پردازش بشه.
Godisnowhere

آفلاین جادی

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1606
    • در دفاع از آزادی بیان
پاسخ به: چگونگی تغییر اولویت پروسه‌ها در لینوکس
« پاسخ #3 : 13 امرداد 1388، 10:22 ق‌ظ »
کاربردهای مرسوم تری که همیشه هم باید استفاده بشه بک آپ گرفتن از سرورها و اینجور کارها است. شما می خواهید کلی فایل رو تار کنید و بعد فشرده. این پروسه رو به خوبی می شه با اولویت کم (عدد بالا) اجرا کرد تا توی کارهای مرسوم سرور مشکلی پیش نیاره.
آزادی کیبورد حق هر انسان است - جادی

آفلاین فاراب

  • High Hero Member
  • *
  • ارسال: 1352
  • آزادی
    • پروفایل لینکداین
پاسخ به: چگونگی تغییر اولویت پروسه‌ها در لینوکس
« پاسخ #4 : 13 امرداد 1388، 09:12 ب‌ظ »
کاربردهای مرسوم تری که همیشه هم باید استفاده بشه بک آپ گرفتن از سرورها و اینجور کارها است. شما می خواهید کلی فایل رو تار کنید و بعد فشرده. این پروسه رو به خوبی می شه با اولویت کم (عدد بالا) اجرا کرد تا توی کارهای مرسوم سرور مشکلی پیش نیاره.

دقیقا. این هم میتونه یکی از کاربرد‌های تغییر اولویت باشه. یعنی شما با هر روشی که میخواهید، به سرور راه دور Remote Login میکنید. سپس اینبار بجای بالابردن اولویت پروسه‌ی مورد نظر که قصد دارید در سمت سرور اجرا بشه و به جهت کاستن از فشار بر روی سرور، اولویت کمتری (عدد بالاتری) رُ برای اونا در نظر میگیرید تا سرور بتونه به وظایفی که از سمت کلاینت‌ها میرسه جواب بده و در صورتی که بیکار بود به انجام پروسه‌ی ما برسه!
ممنونم جادی جان.
Godisnowhere

آفلاین ناربه

  • ناظر انجمن
  • *
  • ارسال: 2033
  • جنسیت : پسر
پاسخ به: چگونگی تغییر اولویت پروسه‌ها در لینوکس
« پاسخ #5 : 13 امرداد 1388، 09:49 ب‌ظ »
حالا یه چیزه دیگه. اگه کلا بخوایم Priority یک پروسه رو همیشه بصورت Default بگذاریم میشه؟

آفلاین فاراب

  • High Hero Member
  • *
  • ارسال: 1352
  • آزادی
    • پروفایل لینکداین
پاسخ به: چگونگی تغییر اولویت پروسه‌ها در لینوکس
« پاسخ #6 : 13 امرداد 1388، 10:59 ب‌ظ »
حالا یه چیزه دیگه. اگه کلا بخوایم Priority یک پروسه رو همیشه بصورت Default بگذاریم میشه؟

یعنی قبل از تولید یه پروسه توسط پدر یا سیستم، اولویت اونو تنظیم کرده باشیم درسته؟
در حالت معمولی که فکر نکنم بشه چون هنوز پروسه اجرا نشده که اولویتش تنظیم بشه. اما فکر میکنم بشه یه اسکریپت سیستمی برای این منظور نوشت که مثلا اگر پروسه‌ی مورد نظر ما با این اسم یا با این ID وارد حافظه شد، بلافاصله اولویتش تغییر کنه.
Godisnowhere

آفلاین Farshid

  • High Sr. Member
  • *
  • ارسال: 613
  • جنسیت : پسر
پاسخ به: چگونگی تغییر اولویت پروسه‌ها در لینوکس
« پاسخ #7 : 14 امرداد 1388، 12:13 ب‌ظ »
درود

منم ی سوال دارم: بالاترین اولویت برای پردازه چه عددی رو داره؟ (فاراب گفت 0 اما تو اون سیستم مانیتور 5- هم هست از طرفی به ی پردازه 5 هم داده شده!!)

بازه‌ی این اعداد مشخصه؟



پ.ن:: فاراب خیلی ممنون عالی بود ;)
معنای واقعی اوبونتو این است که "آدمی به کمک انسانهای دیگر به گوهر آدمیت میرسد"

آفلاین جادی

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1606
    • در دفاع از آزادی بیان
پاسخ به: چگونگی تغییر اولویت پروسه‌ها در لینوکس
« پاسخ #8 : 14 امرداد 1388، 02:58 ب‌ظ »
عدد در سطح کرنل، بین منفی بیست تا نوزده است.
آزادی کیبورد حق هر انسان است - جادی