آپریٹنگ سسٹم: تین آسان ٹکڑے۔ حصہ 5: منصوبہ بندی: ملٹی لیول فیڈ بیک قطار (ترجمہ)

آپریٹنگ سسٹمز کا تعارف

ارے حبر! میں آپ کی توجہ میں مضامین کی ایک سیریز - میری رائے میں ایک دلچسپ ادب کے تراجم کی طرف لانا چاہتا ہوں - OSTEP۔ یہ مواد یونکس جیسے آپریٹنگ سسٹم کے کام کے بارے میں کافی گہرائی سے بحث کرتا ہے، یعنی پروسیس، مختلف شیڈولرز، میموری، اور اسی طرح کے دوسرے اجزاء کے ساتھ کام جو جدید OS بناتے ہیں۔ آپ یہاں تمام مواد کی اصل دیکھ سکتے ہیں۔ یہاں. براہ کرم نوٹ کریں کہ ترجمہ غیر پیشہ ورانہ طور پر کیا گیا تھا (کافی آزادانہ)، لیکن مجھے امید ہے کہ میں نے عام معنی کو برقرار رکھا ہے۔

اس موضوع پر لیبارٹری کا کام یہاں پایا جا سکتا ہے:

دوسرے حصے:

آپ میرا چینل بھی دیکھ سکتے ہیں۔ ۔ =)

منصوبہ بندی: ملٹی لیول فیڈ بیک قطار

اس لیکچر میں، ہم سب سے مشہور نقطہ نظر میں سے ایک کی ترقی کے مسائل کے بارے میں بات کریں گے
منصوبہ بندی، جسے کہا جاتا ہے۔ ملٹی لیول فیڈ بیک قطار (MLFQ)۔ ایم ایل ایف کیو شیڈیولر کو پہلی بار 1962 میں فرنینڈو جے کورباٹو نے ایک سسٹم میں بیان کیا تھا۔
ہم آہنگ ٹائم شیئرنگ سسٹم (CTSS)۔ یہ کام (بشمول بعد میں کام کرتا ہے۔
ملٹکس) کو بعد میں ٹورنگ ایوارڈ کے لیے نامزد کیا گیا۔ شیڈولر تھا۔
اس کے بعد بہتر ہوا اور ظاہری شکل حاصل کی جو پہلے سے ہی مل سکتی ہے۔
کچھ جدید نظام۔

MLFQ الگورتھم 2 بنیادی اوورلیپنگ مسائل کو حل کرنے کی کوشش کرتا ہے۔
اول، یہ ٹرناراؤنڈ ٹائم کو بہتر بنانے کی کوشش کرتا ہے، جس پر جیسا کہ ہم نے پچھلے لیکچر میں بات کی تھی، سب سے زیادہ قطار کے سر سے شروع کرنے کے طریقہ سے بہتر بنایا جاتا ہے۔
مختصر کام. تاہم، OS نہیں جانتا کہ یہ یا وہ عمل کب تک چلے گا، اور یہ
SJF، STCF الگورتھم کے آپریشن کے لیے ضروری علم۔ دوم، MLFQ کوشش کرتا ہے۔
سسٹم کو صارفین کے لیے جوابدہ بنائیں (مثال کے طور پر، بیٹھنے والوں کے لیے اور
کام کے مکمل ہونے کا انتظار کرتے ہوئے اسکرین کو گھورنا) اور اس طرح وقت کو کم سے کم کریں۔
جواب. بدقسمتی سے، RR جیسے الگورتھم جوابی وقت کو کم کرتے ہیں، لیکن
ٹرناراؤنڈ ٹائم میٹرک پر برا اثر پڑتا ہے۔ لہذا ہمارا مسئلہ: ڈیزائن کیسے کریں۔
شیڈولر جو ہماری ضروریات کو پورا کرے گا اور ساتھ ہی اس کے بارے میں کچھ نہیں جانتا ہے۔
عمل کی نوعیت، عام طور پر؟ شیڈولر کاموں کی خصوصیات کیسے سیکھ سکتا ہے،
جو یہ شروع کرتا ہے اور اس طرح بہتر شیڈولنگ فیصلے کرتا ہے؟

مسئلہ کا نچوڑ: کامل علم کے بغیر کاموں کی ترتیب کی منصوبہ بندی کیسے کی جائے؟
ایک شیڈولر کو کیسے ڈیزائن کیا جائے جو بیک وقت جوابی وقت کو کم سے کم کرے۔
انٹرایکٹو کاموں کے لیے اور ایک ہی وقت میں جانے کے بغیر ٹرناراؤنڈ ٹائم کو کم کرتا ہے۔
کام پر عمل درآمد کے وقت کا علم؟

نوٹ: پچھلے واقعات سے سیکھنا

MLFQ قطار ایک ایسے نظام کی ایک بہترین مثال ہے جس پر تربیت دی جاتی ہے۔
مستقبل کی پیشن گوئی کرنے کے لیے ماضی کے واقعات۔ اس طرح کے نقطہ نظر اکثر ہیں
OS میں پایا جاتا ہے (اور کمپیوٹر سائنس کی بہت سی دوسری شاخیں، بشمول برانچز
ہارڈ ویئر کی پیشن گوئیاں اور کیشنگ الگورتھم)۔ اسی طرح کے دورے
ٹرگر جب کاموں کے طرز عمل کے مراحل ہوتے ہیں اور اس طرح پیش گوئی کی جاتی ہے۔
تاہم، اس تکنیک کے ساتھ محتاط رہنا چاہئے، کیونکہ پیشن گوئی بہت آسان ہے.
غلط ثابت ہو سکتا ہے اور نظام کو اس سے بھی بدتر فیصلے کرنے کی طرف لے جا سکتا ہے۔
بالکل علم کے بغیر ہو گا.

MLFQ: بنیادی اصول

MLFQ الگورتھم کے بنیادی اصولوں پر غور کریں۔ اور اگرچہ اس الگورتھم کے نفاذ
کئی ہیں، بنیادی نقطہ نظر ایک جیسے ہیں.
عمل درآمد میں جس پر ہم غور کریں گے، MLFQ کے کئی ہوں گے۔
علیحدہ قطاریں، جن میں سے ہر ایک کی ترجیح مختلف ہوگی۔ کسی بھی وقت،
عمل درآمد کے لیے تیار کام ایک ہی قطار میں ہے۔ MLFQ ترجیحات کا استعمال کرتا ہے،
یہ فیصلہ کرنے کے لیے کہ کون سا کام انجام دینے کے لیے چلانا ہے، یعنی اعلی کے ساتھ کام
priority (سب سے زیادہ ترجیح کے ساتھ قطار سے ایک کام) سب سے پہلے شروع کیا جائے گا۔
قطار.
بلاشبہ، ایک خاص قطار میں ایک سے زیادہ کام ہو سکتے ہیں، تو
لہذا ان کی ایک ہی ترجیح ہوگی۔ اس صورت میں، طریقہ کار استعمال کیا جائے گا
ان کاموں کے درمیان لانچ کی منصوبہ بندی کے لیے آر آر۔
اس طرح ہم MLFQ کے دو بنیادی اصولوں پر پہنچتے ہیں:

  • اصول 1: اگر ترجیح(A) > ترجیح(B)، ٹاسک A چلے گا (B نہیں چلے گا)
  • اصول 2: اگر ترجیح (A) = ترجیح (B)، A&B RR کا استعمال کرتے ہوئے شروع کیا جاتا ہے۔

مندرجہ بالا کی بنیاد پر، MLFQ کی منصوبہ بندی کرنے کے کلیدی عناصر ہیں۔
ترجیحات ہیں. ہر ایک کو ایک مقررہ ترجیح دینے کی بجائے
ٹاسک، MLFQ مشاہدہ شدہ رویے کے لحاظ سے اپنی ترجیح کو تبدیل کرتا ہے۔
مثال کے طور پر، اگر کی بورڈ ان پٹ کا انتظار کرتے ہوئے کوئی کام مسلسل CPU پر چھوڑ دیتا ہے،
MLFQ عمل کی ترجیح کو بلند رکھے گا کیونکہ ایسا ہی ہے۔
انٹرایکٹو عمل کام کرنا چاہئے. اگر، اس کے برعکس، کام مسلسل ہے اور
کیا سی پی یو طویل مدت کے لیے ہے، ایم ایل ایف کیو اسے نیچے کر دے گا۔
ایک ترجیح اس طرح، MLFQ اس وقت عمل کے رویے کا مطالعہ کرے گا جب وہ چل رہے ہیں۔
اور طرز عمل کا استعمال کریں۔
آئیے ایک مثال بناتے ہیں کہ کسی وقت قطاریں کیسی نظر آتی ہیں۔
وقت اور پھر آپ کو کچھ اس طرح ملتا ہے:
آپریٹنگ سسٹم: تین آسان ٹکڑے۔ حصہ 5: منصوبہ بندی: ملٹی لیول فیڈ بیک قطار (ترجمہ)

اس اسکیم میں، 2 عمل A اور B سب سے زیادہ ترجیح کے ساتھ قطار میں ہیں۔ عمل
C درمیان میں کہیں ہے، اور عمل D قطار کے بالکل آخر میں ہے۔ مندرجہ بالا کے مطابق
MLFQ الگورتھم کی تفصیل، شیڈولر صرف اعلیٰ ترین کاموں کو انجام دے گا۔
RR کے مطابق ترجیح، اور کام C، D کام سے باہر ہو جائیں گے۔
قدرتی طور پر، ایک جامد سنیپ شاٹ اس بات کی مکمل تصویر نہیں دے گا کہ MLFQ کیسے کام کرتا ہے۔
یہ سمجھنا ضروری ہے کہ وقت کے ساتھ تصویر کیسے بدلتی ہے۔

کوشش 1: ترجیح کو کیسے تبدیل کیا جائے۔

اس وقت، آپ کو یہ فیصلہ کرنے کی ضرورت ہے کہ کس طرح MLFQ ترجیحی سطح کو تبدیل کرے گا۔
ٹاسک (اور اس طرح قطار میں کام کی پوزیشن) اس کے لائف سائیکل کے دوران۔ کے لیے
اس میں سے، آپ کو ورک فلو کو ذہن میں رکھنے کی ضرورت ہے: ایک مخصوص رقم
مختصر چلنے کے اوقات کے ساتھ انٹرایکٹو کام (اور اس طرح بار بار ریلیز
CPU) اور کئی لمبے کام جو CPU کو اپنے تمام کام کے وقت استعمال کرتے ہیں۔
اس طرح کے کاموں کے لیے ردعمل کا وقت اہم نہیں ہے۔ اور اس طرح آپ پہلی کوشش کر سکتے ہیں۔
درج ذیل اصولوں کے ساتھ MLFQ الگورتھم کو نافذ کریں:

  • اصول 3: جب کوئی ٹاسک سسٹم میں داخل ہوتا ہے، تو اسے سب سے اونچے نمبر کے ساتھ قطار میں رکھا جاتا ہے۔
  • ترجیح
  • Rule4a: اگر کوئی کام اپنی پوری ٹائم ونڈو استعمال کرتا ہے، تو یہ
  • ترجیح کم ہے.
  • Rule4b: اگر کوئی ٹاسک اپنی ٹائم ونڈو کی میعاد ختم ہونے سے پہلے CPU جاری کرتا ہے، تو یہ
  • اسی ترجیح کے ساتھ رہتا ہے.

مثال 1: ایک طویل مدتی کام

جیسا کہ آپ اس مثال میں دیکھ سکتے ہیں، داخلے پر کام سب سے زیادہ کے ساتھ سیٹ کیا گیا ہے۔
ترجیح 10ms ٹائم ونڈو کے بعد، عمل کو ترجیحی طور پر گھٹا دیا جاتا ہے۔
شیڈولر اگلی ٹائم ونڈو کے بعد، کام کو آخر کار نیچے کر دیا جاتا ہے۔
نظام میں سب سے کم ترجیح، جہاں یہ باقی ہے۔
آپریٹنگ سسٹم: تین آسان ٹکڑے۔ حصہ 5: منصوبہ بندی: ملٹی لیول فیڈ بیک قطار (ترجمہ)

مثال 2: ایک مختصر کام اٹھایا

اب آئیے اس کی ایک مثال دیکھتے ہیں کہ ایم ایل ایف کیو کس طرح ایس جے ایف سے رجوع کرنے کی کوشش کرے گا۔ اس میں
مثال کے طور پر، دو کام: A، جو ایک طویل عرصے سے جاری کام ہے۔
CPU اور B پر قبضہ کرنا، جو ایک مختصر انٹرایکٹو کام ہے۔ فرض کریں۔
کہ ٹاسک B کے پہنچنے تک A پہلے ہی کچھ عرصے سے چل رہا تھا۔
آپریٹنگ سسٹم: تین آسان ٹکڑے۔ حصہ 5: منصوبہ بندی: ملٹی لیول فیڈ بیک قطار (ترجمہ)

یہ گراف منظر نامے کے نتائج کو ظاہر کرتا ہے۔ ٹاسک A، کسی بھی کام کی طرح،
سی پی یو کا استعمال بہت نیچے تھا۔ ٹاسک B وقت T=100 پر پہنچے گا اور آئے گا۔
سب سے زیادہ ترجیحی قطار میں رکھا گیا ہے۔ چونکہ چلنے کا وقت کم ہے،
آخری قطار تک پہنچنے سے پہلے یہ مکمل ہو جائے گا۔

اس مثال سے، آپ کو الگورتھم کے بنیادی مقصد کو سمجھنا چاہئے: چونکہ الگورتھم ایسا نہیں کرتا ہے۔
لمبا کام جانتا ہے یا مختصر، پھر سب سے پہلے وہ فرض کرتا ہے کہ کام
مختصر اور اسے سب سے زیادہ ترجیح دیتا ہے۔ اگر یہ واقعی ایک مختصر کام ہے، تو
یہ تیزی سے چلے گا، ورنہ اگر یہ ایک طویل کام ہے تو یہ آہستہ آہستہ چلے گا۔
ترجیحی طور پر نیچے ہے اور جلد ہی ثابت کرے گا کہ وہ واقعی ایک طویل کام ہے جو نہیں کرتی
جواب کی ضرورت ہے.

مثال 3: I/O کے بارے میں کیا خیال ہے؟

اب آئیے ایک I/O مثال دیکھیں۔ جیسا کہ قاعدہ 4b میں بیان کیا گیا ہے،
اگر کوئی عمل اپنے پروسیسر کے وقت کو مکمل طور پر استعمال کیے بغیر پروسیسر کو جاری کرتا ہے،
پھر یہ اسی ترجیحی سطح پر رہتا ہے۔ اس اصول کا مقصد بہت آسان ہے۔
- اگر انٹرایکٹو کام بہت زیادہ I/O انجام دیتا ہے، مثال کے طور پر، انتظار کرنا
صارف کی اسٹروک یا ماؤس سے، ایسا کام پروسیسر کو آزاد کر دے گا۔
مختص کردہ ونڈو سے پہلے۔ ہم ایسے ترجیحی کام کو چھوڑنا نہیں چاہیں گے،
اور اس طرح یہ اسی سطح پر رہے گا۔
آپریٹنگ سسٹم: تین آسان ٹکڑے۔ حصہ 5: منصوبہ بندی: ملٹی لیول فیڈ بیک قطار (ترجمہ)

اس مثال سے پتہ چلتا ہے کہ الگورتھم اس طرح کے عمل کے ساتھ کیسے کام کرے گا - انٹرایکٹو ٹاسک B، جس پر عمل کرنے سے پہلے صرف 1ms کے لیے CPU کی ضرورت ہوتی ہے۔
I/O عمل اور ایک طویل کام A، جو ہر وقت CPU استعمال کرتا ہے۔
MLFQ عمل B کو سب سے زیادہ ترجیح پر رکھتا ہے جیسا کہ یہ جاری ہے۔
سی پی یو کو جاری کریں۔ اگر B ایک انٹرایکٹو کام ہے، تو اس معاملے میں الگورتھم پہنچ گیا ہے۔
اس کا مقصد انٹرایکٹو کاموں کو تیزی سے شروع کرنا ہے۔

موجودہ MLFQ الگورتھم کے ساتھ مسائل

پچھلی مثالوں میں، ہم نے MLFQ کا ایک بنیادی ورژن بنایا ہے۔ اور ایسا لگتا ہے کہ وہ
اپنا کام اچھی طرح اور منصفانہ طریقے سے کرتا ہے، سی پی یو کے وقت کے درمیان منصفانہ تقسیم کرتا ہے۔
طویل کام اور مختصر کاموں یا کاموں کی اجازت دینا جن تک بہت زیادہ رسائی حاصل ہے۔
تیزی سے کارروائی کرنے کے لیے I/O پر۔ بدقسمتی سے، یہ نقطہ نظر کئی پر مشتمل ہے
سنگین مسائل.
اول, بھوک کا مسئلہ: اگر نظام بہت سے انٹرایکٹو پڑے گا
کاموں میں، وہ تمام CPU وقت استعمال کریں گے اور اس طرح ایک بھی لمبا نہیں۔
کام کو انجام دینے کا موقع نہیں ملے گا (وہ بھوکے مر رہے ہیں)۔

دوم، ہوشیار صارفین اپنے پروگرام لکھ سکتے ہیں تاکہ
شیڈولر کو بیوقوف بنائیں. زبردستی کرنے کے لیے کچھ کرنے میں دھوکہ ہے۔
شیڈیولر عمل کو مزید CPU وقت دینے کے لیے۔ الگورتھم کہ
اوپر بیان کیا گیا ہے اس طرح کے حملوں کے لئے کافی کمزور ہے: وقت کی کھڑکی سے پہلے عملی طور پر
اس سے زیادہ، آپ کو I/O آپریشن کرنے کی ضرورت ہے (کچھ کے لیے، چاہے کوئی بھی فائل ہو)
اور اس طرح CPU کو خالی کریں۔ ایسا سلوک آپ کو اسی میں رہنے کی اجازت دے گا۔
قطار خود اور دوبارہ CPU وقت کا ایک بڑا فیصد حاصل کریں۔ اگر ہو جائے
یہ درست ہے (مثال کے طور پر CPU کو جاری کرنے سے پہلے ونڈو ٹائم کا 99% چلائیں)
ایسا کام صرف پروسیسر کی اجارہ داری کرسکتا ہے۔

آخر میں، ایک پروگرام وقت کے ساتھ اپنے رویے کو تبدیل کر سکتا ہے۔ وہ کام
جو CPU استعمال کرتا ہے وہ انٹرایکٹو بن سکتا ہے۔ ہماری مثال میں، اسی طرح
کاموں کو شیڈولر سے مناسب سلوک نہیں ملے گا، جیسا کہ دوسرے کریں گے۔
(اصل) انٹرایکٹو کام۔

سامعین سے سوال: جدید دنیا میں شیڈیولر پر کیا حملے کیے جا سکتے ہیں؟

کوشش 2: ترجیح میں اضافہ کریں۔

آئیے قوانین کو تبدیل کرنے کی کوشش کریں اور دیکھیں کہ کیا ہم مسائل سے بچ سکتے ہیں۔
بھوک اس سے متعلق کو یقینی بنانے کے لیے ہم کیا کر سکتے ہیں۔
سی پی یو کے کاموں کو ان کا وقت مل جائے گا (چاہے طویل ہی کیوں نہ ہو)۔
مسئلے کے آسان حل کے طور پر، آپ وقتاً فوقتاً تجویز کر سکتے ہیں۔
سسٹم میں اس طرح کے تمام کاموں کی ترجیح میں اضافہ کریں۔ بہت سے طریقے ہیں۔
اس کو حاصل کرنے کے لیے، آئیے مثال کے طور پر کچھ آسان بنانے کی کوشش کریں: ترجمہ
تمام کاموں کو ایک ساتھ سب سے زیادہ ترجیح، اس لیے نیا اصول:

  • قاعدہ 5: کچھ عرصے کے بعد S، سسٹم کے تمام کاموں کو سب سے اونچی قطار میں منتقل کریں۔

ہمارا نیا اصول ایک ساتھ دو مسائل حل کرتا ہے۔ سب سے پہلے، عمل
بھوک نہ مرنے کی ضمانت: سب سے اونچی قطار میں کام اشتراک کریں گے۔
RR الگورتھم کے مطابق پروسیسر کا وقت اور اس طرح تمام عمل موصول ہوں گے۔
پروسیسر کا وقت دوسرا، اگر کچھ عمل جو پہلے استعمال ہوتا ہے۔
صرف پروسیسر انٹرایکٹو بن جاتا ہے، یہ سب سے زیادہ کے ساتھ قطار میں رہے گا۔
ایک بار سب سے زیادہ ترجیح حاصل کرنے کے بعد ترجیح۔
ایک مثال پر غور کریں۔ اس منظر نامے میں، استعمال کرنے والے ایک عمل پر غور کریں۔
آپریٹنگ سسٹم: تین آسان ٹکڑے۔ حصہ 5: منصوبہ بندی: ملٹی لیول فیڈ بیک قطار (ترجمہ)

سی پی یو اور دو انٹرایکٹو، مختصر عمل۔ اعداد و شمار میں بائیں طرف، اعداد و شمار ترجیحی فروغ کے بغیر رویے کو ظاہر کرتا ہے، اور اس طرح نظام پر دو متعامل کاموں کے آنے کے بعد طویل عرصے سے چلنے والا کام بھوکا ہونا شروع ہو جاتا ہے۔ دائیں طرف کے اعداد و شمار میں، ہر 50ms پر ترجیحی اضافہ کیا جاتا ہے اور اس طرح تمام عمل پروسیسر کا وقت حاصل کرنے کی ضمانت دی جاتی ہے اور وقتاً فوقتاً شروع ہو جاتی ہے۔ اس معاملے میں 50ms کو ایک مثال کے طور پر لیا جاتا ہے، حقیقت میں یہ تعداد کچھ زیادہ ہے۔
یہ واضح ہے کہ متواتر اضافہ وقت S کا اضافہ ہوتا ہے۔
منطقی سوال: کیا قدر مقرر کی جائے؟ اچھی طرح سے مستحق میں سے ایک
سسٹم انجینئرز جان اوسٹر ہاؤٹ نے سسٹمز میں اسی طرح کی مقداروں کو وو-ڈو کہا ہے۔
مستقل، کیونکہ انہیں کسی نہ کسی طرح درست کے لیے کالے جادو کی ضرورت تھی۔
ایکسپوژر. اور، بدقسمتی سے، S میں ایسا ذائقہ ہے۔ اگر آپ قیمت بھی مقرر کرتے ہیں۔
بڑے لمبے کام بھوکے مر جائیں گے۔ اور اگر آپ اسے بہت کم کرتے ہیں،
انٹرایکٹو کاموں کو مناسب CPU وقت نہیں ملے گا۔

کوشش 3: بہتر اکاؤنٹنگ

اب ہمارے پاس ایک اور مسئلہ حل کرنا ہے: کیسے نہیں۔
ہمارے شیڈولر کو دھوکہ دینے کی اجازت دیں؟ اس امکان کے مجرم ہیں۔
قواعد 4a, 4b جو کسی کام کو پروسیسر کو آزاد کرکے اپنی ترجیح برقرار رکھنے کی اجازت دیتے ہیں۔
مختص وقت کی میعاد ختم ہونے سے پہلے۔ اس سے کیسے نمٹا جائے؟
اس معاملے میں حل ہر ایک پر CPU وقت کا بہتر اکاؤنٹنگ سمجھا جا سکتا ہے۔
ایم ایل ایف کیو لیول۔ پروگرام کے استعمال کردہ وقت کو بھولنے کے بجائے
مختص وقفہ کے لئے پروسیسر، آپ کو اکاؤنٹ میں لے جانا چاہئے اور اسے محفوظ کرنا چاہئے. کے بعد
اس عمل نے اپنا مقررہ وقت استعمال کر لیا ہے، اسے اگلے پر کم کر دیا جانا چاہیے۔
ترجیحی سطح اب اس سے کوئی فرق نہیں پڑتا کہ عمل اپنا وقت کیسے استعمال کرے گا۔
پروسیسر پر یا کالز کے سیٹ کے طور پر مسلسل کمپیوٹنگ کرنا۔ اس طرح،
قاعدہ 4 کو اس طرح دوبارہ لکھا جانا چاہئے:

  • قاعدہ 4: کسی کام کے موجودہ قطار میں اپنا مختص وقت استعمال کرنے کے بعد (اس بات سے قطع نظر کہ اس نے کتنی بار CPU کو آزاد کیا ہے)، ایسے کام کی ترجیح کم ہو جاتی ہے (یہ قطار سے نیچے چلا جاتا ہے)۔

آئیے ایک مثال دیکھتے ہیں:
آپریٹنگ سسٹم: تین آسان ٹکڑے۔ حصہ 5: منصوبہ بندی: ملٹی لیول فیڈ بیک قطار (ترجمہ)»

اعداد و شمار سے پتہ چلتا ہے کہ اگر آپ شیڈیولر کو دھوکہ دینے کی کوشش کرتے ہیں تو کیا ہوتا ہے۔
اگر یہ پچھلے قواعد 4a کے ساتھ ہوتا تو 4b بائیں طرف نتیجہ ہوتا۔ نئے کے ساتھ
اصول یہ ہے کہ نتیجہ دائیں طرف ہے۔ تحفظ سے پہلے، کوئی بھی عمل مکمل ہونے سے پہلے I/O کو کال کر سکتا ہے۔
اس طرح تحفظ کو چالو کرنے کے بعد، رویے سے قطع نظر CPU پر غلبہ حاصل کریں۔
I/O، وہ پھر بھی قطار میں نیچے جائے گا اور اس طرح بے ایمانی نہیں کر سکے گا۔
CPU وسائل پر قبضہ.

MLFQ اور دیگر مسائل کو بہتر بنانا

مندرجہ بالا بہتری کے ساتھ، نئے مسائل پیدا ہوتے ہیں: اہم میں سے ایک
سوالات - اس طرح کے شیڈولر کو پیرامیٹرائز کیسے کریں؟ وہ. کتنا ہونا چاہیے۔
قطاریں قطار کے اندر پروگرام ونڈو کا سائز کیا ہونا چاہئے؟ کیسے
بھوک سے بچنے کے لیے پروگرام کو اکثر ترجیح دی جانی چاہیے۔
پروگرام کے رویے میں تبدیلی کو مدنظر رکھنا؟ ان سوالات کے لیے، کوئی سادہ نہیں ہے
جواب اور صرف بوجھ اور بعد میں ترتیب کے ساتھ تجربات
شیڈولر کچھ تسلی بخش توازن کا باعث بن سکتا ہے۔

مثال کے طور پر، زیادہ تر MLFQ نفاذ آپ کو مختلف تفویض کرنے کی اجازت دیتے ہیں۔
مختلف قطاروں کے لیے ٹائم سلاٹ۔ اعلی ترجیحی قطاریں عام طور پر ہوتی ہیں۔
مختصر وقفے یہ قطاریں متعامل کاموں پر مشتمل ہیں،
جس کے درمیان سوئچنگ کافی حساس ہے اور اس میں 10 یا اس سے کم وقت لگنا چاہئے۔
MS. اس کے برعکس، کم ترجیحی قطاریں طویل عرصے سے چلنے والے کاموں پر مشتمل ہوتی ہیں جو استعمال کرتی ہیں۔
سی پی یو. اور اس معاملے میں، طویل وقت کے وقفے بہت اچھی طرح سے فٹ ہوتے ہیں (100ms)۔
آپریٹنگ سسٹم: تین آسان ٹکڑے۔ حصہ 5: منصوبہ بندی: ملٹی لیول فیڈ بیک قطار (ترجمہ)

اس مثال میں، 2 کام ہیں جنہوں نے اعلی ترجیحی قطار 20 میں کام کیا ہے۔
ms کو 10ms ونڈوز میں تقسیم کیا گیا ہے۔ درمیانی قطار میں 40ms (20ms ونڈو) اور کم ترجیح والی قطار میں
قطار کا وقت ونڈو 40ms بن گیا جہاں کاموں نے اپنا کام مکمل کیا۔

سولاریس او ایس میں ایم ایل ایف کیو کا نفاذ ٹائم شیئرنگ شیڈولرز کی ایک کلاس ہے۔
شیڈولر میزوں کا ایک سیٹ فراہم کرے گا جو بالکل اس بات کی وضاحت کرتا ہے کہ اسے کیسے ہونا چاہئے۔
اس کی زندگی کے دوران عمل کی ترجیح کو تبدیل کریں، سائز کیا ہونا چاہئے
ونڈو مختص کی جانی ہے اور کام کی ترجیحات کو کتنی بار بڑھانا ہے۔ ایڈمنسٹریٹر
سسٹم اس ٹیبل کے ساتھ تعامل کرسکتا ہے اور شیڈولر کو برتاؤ کرسکتا ہے۔
مختلف طریقے سے پہلے سے طے شدہ طور پر، اس ٹیبل میں بتدریج اضافے کے ساتھ 60 قطاریں ہیں۔
ونڈو کا سائز 20ms (اعلی ترجیح) سے کئی سو ایم ایس (سب سے کم ترجیح) تک، اور
ایک سیکنڈ میں ایک بار تمام کاموں کے فروغ کے ساتھ۔

دوسرے MLFQ شیڈولرز ٹیبل یا کوئی مخصوص استعمال نہیں کرتے ہیں۔
اس باب میں بیان کیے گئے قواعد، اس کے برعکس، وہ ترجیحات کا استعمال کرتے ہوئے حساب لگاتے ہیں۔
ریاضی کے فارمولے مثال کے طور پر، فری بی ایس ڈی میں شیڈولر کے لیے ایک فارمولہ استعمال کرتا ہے۔
عمل کی مقدار کی بنیاد پر موجودہ کام کی ترجیح کا حساب لگانا
CPU استعمال کیا۔ اس کے علاوہ، سی پی یو کا استعمال وقت کے ساتھ سڑ جاتا ہے، اور اس طرح
اس طرح، ترجیحی اضافہ اوپر بیان کردہ سے کچھ مختلف ہے۔ یہ حقیقت ہے
Decay algorithms کہلاتا ہے۔ ورژن 7.1 کے مطابق، FreeBSD ULE شیڈولر استعمال کرتا ہے۔

آخر میں، بہت سے منصوبہ سازوں کے پاس دوسری خصوصیات ہیں۔ مثال کے طور پر، کچھ
نظام الاوقات آپریٹنگ سسٹم کے آپریشن کے لیے اعلیٰ سطح کو محفوظ رکھتے ہیں اور اس طرح
اس طرح، کسی بھی صارف کے عمل کو سب سے زیادہ ترجیح نہیں مل سکتی
نظام کچھ سسٹم آپ کو مدد کے لیے مشورہ دینے کی اجازت دیتے ہیں۔
شیڈولر کو صحیح طریقے سے ترجیح دی جائے۔ مثال کے طور پر، کمانڈ کا استعمال کرتے ہوئے اچھا
آپ کسی کام کی ترجیح کو بڑھا یا گھٹا سکتے ہیں اور اس طرح بڑھا یا گھٹا سکتے ہیں۔
CPU وقت کے لیے پروگرام کے امکانات کو کم کریں۔

MLFQ: خلاصہ

ہم نے ایک منصوبہ بندی کا طریقہ بیان کیا ہے جسے MLFQ کہا جاتا ہے۔ اس کا نام
آپریشن کے اصول میں نتیجہ اخذ کیا گیا ہے - اس میں کئی قطاریں ہیں اور آراء کا استعمال کرتا ہے۔
کسی کام کو ترجیح دینا۔
قواعد کی حتمی شکل مندرجہ ذیل ہوگی:

  • قاعدہ 1: اگر ترجیح(A) > ترجیح(B)، ٹاسک A چلے گا (B نہیں کرے گا)
  • قاعدہ 2: اگر priority(A) = Priority(B)، A&B کو RR کا استعمال کرنا شروع کیا جاتا ہے۔
  • قاعدہ 3: جب کوئی کام سسٹم میں داخل ہوتا ہے، تو اسے سب سے زیادہ ترجیحی قطار میں رکھا جاتا ہے۔
  • قاعدہ 4: کسی کام کے موجودہ قطار میں اپنا مختص وقت استعمال کرنے کے بعد (اس بات سے قطع نظر کہ اس نے کتنی بار CPU کو آزاد کیا ہے)، ایسے کام کی ترجیح کم ہو جاتی ہے (یہ قطار سے نیچے چلا جاتا ہے)۔
  • قاعدہ 5: کچھ عرصے کے بعد S، سسٹم کے تمام کاموں کو سب سے اونچی قطار میں منتقل کریں۔

MLFQ مندرجہ ذیل وجہ سے دلچسپ ہے - بجائے اس کے کہ اس کے بارے میں علم کی ضرورت ہو۔
پہلے سے کام کی نوعیت، الگورتھم کام کے ماضی کے رویے کو سیکھتا ہے اور سیٹ کرتا ہے۔
اس کے مطابق ترجیحات اس طرح، وہ ایک ساتھ دو کرسیوں پر بیٹھنے کی کوشش کرتا ہے - چھوٹے کاموں (SJF، STCF) کے لیے کارکردگی حاصل کرنے کے لیے اور ایمانداری سے لمبی لمبی دوڑیں،
سی پی یو لوڈنگ جابز۔ لہذا، بہت سے نظام، بشمول BSD اور ان کے مشتقات،
سولاریس، ونڈوز، میک شیڈیولر کے طور پر الگورتھم کی کچھ شکل استعمال کرتے ہیں۔
MLFQ بطور بیس لائن۔

اضافی مواد:

  1. manpages.debian.org/stretch/manpages/sched.7.en.html
  2. en.wikipedia.org/wiki/Scheduling_(کمپیوٹنگ)
  3. pages.lip6.fr/Julia.Lawall/atc18-bouron.pdf
  4. www.usenix.org/legacy/event/bsdcon03/tech/full_papers/roberson/roberson.pdf
  5. chebykin.org/freebsd-process-scheduling

ماخذ: www.habr.com

نیا تبصرہ شامل کریں