مدیریت پردازشهای سیستم توسط کرنل
این مقاله بخشی از کتاب لینوکس ما بوده و شما برای مطالعه کامل آن میتوانید به بخش محصولات مراجعه فرمایید.
زمان مطالعه: 5 دقیقه
لینوکس یکی از مهمترین پیشرفتهای تکنولوژیکی قرن بیست و یکم است. توسعه لینوکس فراتر از تأثیر آن بر رشد اینترنت و جایگاه آن به عنوان یک فناوری توانمند به الگویی تبدیل شده که نشان میدهد پروژههای مشارکتی چگونه میتوانند از کارهایی که افراد و شرکتها به تنهایی انجام میدهند، پیشی بگیرند. سیستم عامل لینوکس جهان را در برگرفته و کاربران میتوانند این نوع سیستم را تقریبا در همه جا پیدا کنند. سیستم عامل لینوکس را میتوان در تلفن، یخچال، کنسولهای بازی (PlayStation) و یا سرورهای لینوکس (که سایتهای معروف اینترنتی را اجرا میکنند) مشاهده کرد.
سیستم عامل متشکل از یک کرنل و یکسری ابزارهای مختلف است. بخشهای اصلی لینوکس از سه لایهی تشکیل شده که شامل موارد زیر میباشد و هر کدام کار خاصی را انجام میدهند.
- لایهی سختافزار
- لایهی کرنل (هسته)
- لایهی کاربر (شامل ابزارهای GNU، محیط دسکتاپ گرافیکی، برنامههای کاربردی مانند سرویس FTP و غیره است)
لایهی کرنل در سیستم عامل لینوکس
کرنل، هسته سیستم لینوکس بوده و کلیه سختافزارها و نرمافزارهای سیستم کامپیوتر را کنترل میکند. همچنین در صورت لزوم سختافزاری را برای فرآیندی اختصاص و همچنین نرمافزاری را هم اجرا میکند.
اگر دنیای لینوکس را دنبال کرده باشید بدون شک نام لینوس توروالد را شنیدهاید. توروالدز در دوران تحصیل در دانشگاه Helsiki اولین نرمافزار کرنل لینوکس را ایجاد کرد. او علاقهمند بود که این پروژه یک کپی از سیستم عامل یونیکس (در آن زمان یک سیستم عامل محبوب و گران قیمت در بسیاری از دانشگاهها بود) باشد. همچنین پس از توسعه کرنل لینوکس آن را در اینترنت منتشر کرد و برای بهبود آن پیشنهاداتی را خواستار شد. سپس بعد از مدتی پیشنهادهایی از دانشجویان و همچنین برنامهنویسان حرفهای از سراسر جهان دریافت کرد و او با در نظر گرفتن نظرات مختلف تغییراتی را در کد اصلی ایجاد میکرد تا به نسخه نهایی آن رسید. به طور کلی کرنل چهار وظیفه اصلی دارد که شامل موارد زیر است.
مدیریت پردازشهای سیستم توسط کرنل
سیستم عامل لینوکس هر برنامه در حال اجرا را به عنوان یک پردازش در نظر میگیرد. یک پردازش میتواند در background و یا در foreground اجرا شود. کرنل سیستم لینوکس کلیه پردازشهای در حال اجرای را تا اتمام آن مدیریت و کنترل میکند.
مدیریت و کنترل پردازشها شامل تعیین الگوی اجرای پردازشها و تخصیص منابع به آنها میباشد. همچنین بعضی مواقع به یک پردازش در حال اجرا وقفه داده میشود که در اینصورت کرنل پردازش دیگری را برای اجرا در نظر میگیرد و پردازش فعلی را به حالت غیر اجرا در میآورد.
نکته) کرنل از تداخل بین پردازشها جلوگیری میکند.
کاربران با استفاده از دستور ps میتوانند پردازشهای در حالا اجرای سیستم را مشاهده کنند.
ps ax PID TTY STAT TIME COMMAND 1 ? Ss 0:00 /sbin/init maybe-ubiquity 2 ? S 0:00 [kthreadd] 3 ? I< 0:00 [rcu_gp] 4 ? I< 0:00 [rcu_par_gp] 5 ? I 0:00 [kworker/0:0-memcg_kmem_cache] 6 ? I< 0:00 [kworker/0:0H-kblockd] 7 ? I 0:00 [kworker/0:1-events] 8 ? I 0:00 [kworker/u2:0-events_power_efficient] . . . 1033 tty1 S 0:00 -bash 1054 tty1 R+ 0:00 ps ax