امیرحسین کریم پور
مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

Nice Level چیست؟ بررسی مفهوم Nice Level یک پردازش در لینوکس

تقریبا می توان گفت که در همه جا بحث اولویت وجود دارد و وجود خواهد داشت چه در زندگی روزمره ما و چه در تکنولوژی هایی که برای اشتراک گذاری منابع اطلاعاتی با آنها سر و کار داریم. یک مثال از دنیای واقعی بزنیم پیش زمینه خوبی را برای توضیح ماجرای اصلی مان فراهم میکند ، فرض کنید سه نفر به طور همزمان به شما تلفن کنند ( هر چند که میدانیم این کار امکان پذیر نیست ولی خب مثالی بهتر از این به ذهنم نرسید ) ، که این سه نفر به ترتیب مدیر شرکتی که در آن مشغول به کار هستید .

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

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

سیستم های لینوکسی قابلیتی را دارند که تعداد زیادی Process یا Job را به طور همزمان اجرا کنند. حتی اگر هم CPU دارای پردازنده یا Core های متعددی باشد تعداد پراسس ها بیشتر از تعداد هسته های CPU میباشد. حال این وظیفه کرنل سیستم عامل لینوکس است که پراسس های فعال را با توجه به تعداد هسته های CPU و توان پردازشی آنها به طور مناسب توزیع و مدیریت کند. به طور پیشفرض تمام پراسس ها در سیستم عامل لینوکس از لحاظ زمان اجرا و مدیریت شدن از اهمیت یکسانی برخوردارند. حال اگر ما بخواهیم یک پراسس از بقیه پراسس ها زودتر اجرایی شود چه باید بکنیم ؟ اینجاست که بحث Nice Level به میان می آید ...

بیشترین مقدار Nice Level برابر 20+(کمترین اولویت برای پردازش) و کمترین مقدار آن برابر 19-(بیشترین اولویت برای پردازش) میباشد.به طور معمول هر پراسسی که منابع اشتراکی را بیشتر در اختیار دیگر پراسس ها قرار میدهد Nice Level اش از بقیه پراسس ها بیشتر است اما در مقابل ، اگر پراسسی منابعش محدود به خودش باشد Nice Level آن از همه کمتر است یا بعبارتی دارای اولویت بیشتری است.به طور کلی Nice Process ها پراسس هایی هستند که کمترین منابع حافظه RAM و CPU را به خود اختصاص میدهند.

Nice Level پراسس های نرمال یا همان پراسس هایی که در حالت عادی اجرا میشوند برابر صفر است. سیستم عامل لینوکس به منظور اولویت بندی Process ها نرم افزاری را در خود دارد تا بتوان اولویت پراسس ها را با توجه به سطح حساسیت شان معین کرد.نرم افزار محبوبی که برای این کار استفاده میشود nice نام دارد.نرم افزار دیگری که برای تغییر اولویت یا Priority یک Process یا Job در حال اجرا در سیستم عامل لینوکس بکار میرود renice نام دارد.برای تنظیم یک Nice Level دلخواه برای یک پراسس از دستور زیر استفاده کنید :

:~# nice -+12 bash

در دستور فوق من مقدار Nice Level شل لینوکسم یا همان bash را برابر عدد 12 در نظر گرفتم. دقت کنید که "منفی مثبت 12 نخوانید" علامت خط تیره در اینجا برای وارد کردن پارامتر ما که در اینجا مقدار Nice Level میباشد الزامی است.در مثال زیر ما مقدار 12- (منفی 12) را برای همین پراسس تنظیم میکنیم :

:~# nice --12 bash

دستور فوق را میتوانید به شکل زیر هم اجرا کنید :

:~# nice -n -12 bash

نحوه استفاده از دستور renice را هم با یک مثال ذکر میکنیم و به این موضوع خاتمه میدهیم :

:~# renice 14 -p 3272

پیشتر نیز ذکر کردیم که دستور renice برای تغییر دادن Nice Level یک پراسس در حال اجرا میباشد.دستور فوق مقدار Nice Level پراسسی که PID یا Process ID آن 3272 میباشد را برابر 14 در نظر میگیرد.

نویسنده : امیرحسین کریم پور

منبع : جزیره لینوکس و سیستم های متن باز وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر نام نویسنده و منبع دارای اشکال اخلاقی میباشد


امیرحسین کریم پور
امیرحسین کریم پور

مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

امیرحسین کریم پور ، مدیر ارشد توسینسو ، متخصص شبکه ، تخصص در حوزه سیستم عامل های کلاینت و سرور مایکروسافت و سرویس های مربوطه ، سیستم عامل لینوکس و... ، سابقه کار با سازمان ها و شرکت های مختلف در زمینه سرویس های مایکروسافت در قالب پروژه ، مشاوره و آموزش. علاقه مند به حوزه امنیت اطلاعات و تست نفوذ سنجی

نظرات