همه‌چی دربارهٔ زمان‌بندی کارها: سیستم‌عامل‌ها، کلاسترها و فریم‌ورک‌های داده‌ بزرگ!

Fall Back

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

توی این مقاله قراره با دنیای جالب و گستردهٔ زمان‌بندی توی سه تا حوزه آشنا بشیم: سیستم‌عامل‌ها، کلاسترها (که مثلاً یه مجموعه سرور هست که با هم کار می‌کنن)، و فریم‌ورک‌های داده‌ بزرگ (Big Data Frameworks یعنی پلتفرم‌هایی مثلاً مثل Hadoop یا Spark که داده‌های خیلی حجیم رو پردازش و مدیریت می‌کنن).

دسته‌بندی زمان‌بندها چجوریه؟
محققای این مقاله با کلی تحقیق اومدن یه دسته‌بندی (taxanomy یعنی طبقه‌بندی و نظم دادن به مفاهیم) درست کردن از همه زمان‌بندهای معروف و رایج. این دسته‌بندی بر اساس معماری (یعنی ساختار کلی سیستم) و طراحی (design یعنی همون مهندسی پشت پرده‌اش) بوده. یعنی مثلا زمان‌بندی‌کننده‌ای که توی سیستم‌عامل استفاده میشه، با اون چیزی که توی کلاستر یا بیگ دیتا کار می‌کنه کلی فرق داره و هدف همشون اینه که کارها رو به بهترین شکل بین منابع سیستم پخش کنن.

نکته اصلی این مقاله اینه که فقط نیومده اسم این زمان‌بندها رو لیست کنه؛ بلکه رفته سراغ فاکتورهایی که روی کارایی (throughput یعنی حجم کاری که سیستم می‌تونه تو یه مدت انجام بده) و اسکیل‌پذیری (scalability یعنی اینکه سیستم چقدر راحت می‌تونه بزرگ بشه و کارای بیشتر رو هندل کنه) تاثیر می‌ذارن.

چی باعث پیشرفت زمان‌بندها شد؟
کلاً تو این سال‌ها با پیشرفت نیازها (مثلاً وقتی سرورها از حالت تکی رفتن به کلاسترهای بزرگ یا داده‌های عظیم)، زمان‌بندها هم پیشرفت کردن. مقاله میگه کلی بهبود مرحله‌ای و تدریجی داشتیم که باعث شده نسخه‌های جدیدتر، هم سریع‌تر باشن و هم راحت‌تر بتونن چندتا وظیفه رو موازی باهم هندل کنن. مثلاً بعضی‌هاشون اول فقط به چند هسته CPU فکر می‌کردن، اما الان باید چند هزار سرور رو با هم آشتی بدن!

تمرکز ویژه روی Google Borg
یه قسمت خیلی جذاب دربارهٔ یه سیستم مشهور به اسم Google Borg هست. Borg همون سیستم پیشرفتهٔ گوگله که برنامه‌های شرکت رو تو هزاران سرور زمان‌بندی می‌کنه. Borg واقعاً یکی از بهترین‌ها تو این زمینه‌ست و ازش کلی مقاله و اطلاعات عمومی منتشر شده (چون خیلی از این سیستم‌ها مخصوص شرکت‌های بزرگن و اطلاعاتشون محرمانه می‌مونه). Borg باعث شد بقیه هم راهش رو دنبال کنن.

در نتیجه …
در کل این مقاله یه راهنمای باحال برای فهمیدن اینه که پشت زمان‌بندی کارها تو دنیای کامپیوتر دقیقاً چه خبره، چی باعث بهتر شدن سیستم‌ها شده و حتی چرا گوگل تو این حوزه پیشتازه! پس اگه دوست داری بدونی پرده پشت برنامه‌ریزی تو کامپیوترها چطور کار می‌کنه، این بحث زمان‌بندی رو از دست نده!

منبع: +