آپريٽنگ سسٽم: ٽي آسان ٽڪرا. حصو 5: منصوبه بندي: گھڻن سطحي راءِ جي قطار (ترجمو)

آپريٽنگ سسٽم جو تعارف

اي حبر! مان توهان جي ڌيان ۾ مضمونن جو هڪ سلسلو آڻڻ چاهيان ٿو - منهنجي خيال ۾ هڪ دلچسپ ادب جو ترجمو - OSTEP. هي مواد يونڪس جهڙو آپريٽنگ سسٽم جي ڪم تي تمام گهڻي بحث ڪري ٿو، يعني، پروسيس سان ڪم، مختلف شيڊولرز، ميموري، ۽ ٻيا ساڳيا حصا جيڪي جديد او ايس ٺاهيندا آهن. توھان ھتي ڏسي سگھوٿا سڀ مواد جو اصل هتي. مهرباني ڪري نوٽ ڪريو ته ترجمو غير پروفيشنل (بلڪل آزاديءَ سان) ڪيو ويو، پر اميد اٿم ته مون عام معنيٰ برقرار رکي.

هن موضوع تي ليبارٽري ڪم هتي ڳولهي سگهجي ٿو:

ٻيا حصا:

توھان پڻ چيڪ ڪري سگھو ٿا منھنجي چينل تي ٽيليگرام =)

منصوبه بندي: ملٽي-سطح راءِ جي قطار

هن ليڪچر ۾، اسان سڀ کان وڌيڪ مشهور طريقن مان هڪ کي ترقي ڪرڻ جي مسئلن بابت ڳالهائينداسين
رٿابندي، جنهن کي سڏيو ويندو آهي ملٽي-سطح راءِ جي قطار (MLFQ). MLFQ شيڊيولر پهريون ڀيرو 1962 ۾ فرننڊو جي ڪورباٽو طرفان هڪ سسٽم ۾ بيان ڪيو ويو
مطابقت واري وقت شيئرنگ سسٽم (CTSS). اهي ڪم (بشمول بعد ۾ ڪم
ملٽيڪس) بعد ۾ ٽريننگ انعام لاء نامزد ڪيا ويا. شيڊيولر هو
تنهن کان پوء بهتر ۽ ظاهري حاصل ڪئي جيڪا اڳ ۾ ئي ملي سگهي ٿي
ڪجهه جديد نظام.

MLFQ الگورتھم 2 بنيادي اوورليپنگ مسئلن کي حل ڪرڻ جي ڪوشش ڪري ٿو.
پهريون ڀيرو, اهو موٽڻ واري وقت کي بهتر ڪرڻ جي ڪوشش ڪري ٿو، جيڪو، جيئن اسان گذريل ليڪچر ۾ بحث ڪيو آهي، سڀ کان وڌيڪ قطار جي سر تي شروع ڪرڻ جي طريقي سان بهتر ڪيو ويو آهي.
مختصر ڪم. بهرحال، او ايس کي خبر ناهي ته هي يا اهو عمل ڪيترو وقت هلندو، ۽ هي
SJF، STCF الگورتھم جي آپريشن لاء ضروري ڄاڻ. ٻيو، MLFQ ڪوشش ڪري ٿو
سسٽم کي صارفين لاءِ جوابده بڻايو (مثال طور، انهن لاءِ جيڪي ويٺي ۽
اسڪرين تي گھورڻ دوران ڪم مڪمل ٿيڻ جي انتظار ۾) ۽ اھڙيءَ طرح وقت گھٽايو
جواب. بدقسمتي سان، آر آر وانگر الگورتھم جوابي وقت گھٽائي ٿو، پر
موٽڻ واري وقت جي ميٽرڪ تي خراب اثر آهي. تنهن ڪري اسان جو مسئلو: ڊزائين ڪيئن ڪجي
شيڊولر جيڪو اسان جي گهرجن کي پورو ڪندو ۽ ساڳئي وقت بابت ڪجھ به نه ڄاڻندو
عمل جي فطرت، عام طور تي؟ شيڊيولر ڪيئن سکي سگھي ٿو ڪمن جون خاصيتون،
جيڪو اهو شروع ڪري ٿو ۽ اهڙي طرح بهتر شيڊولنگ فيصلا ڪري ٿو؟

مسئلي جو بنياد: مڪمل ڄاڻ کان سواء ڪمن جي سيٽنگ کي ڪيئن پلان ڪرڻ؟
هڪ شيڊولر ڪيئن ٺاهيو جيڪو هڪ ئي وقت ۾ جوابي وقت کي گھٽائي ٿو
انٽرايڪٽو ڪمن لاءِ ۽ ساڳئي وقت گھٽ ۾ گھٽ ڦيرڦار جي وقت کي بغير ڄاڻڻ جي
ڪم جي عمل جي وقت جي ڄاڻ؟

نوٽ: گذريل واقعن مان سکيا

MLFQ قطار هڪ سسٽم جو هڪ بهترين مثال آهي جنهن تي تربيت ڪئي وئي آهي
ماضي جا واقعا مستقبل جي اڳڪٿي ڪرڻ لاءِ. اهڙا طريقا اڪثر آهن
OS (۽ ڪمپيوٽر سائنس ۾ ڪيتريون ئي ٻيون شاخون، بشمول شاخون
هارڊويئر اڳڪٿيون ۽ ڪيشنگ الگورتھم). هڪجهڙا پنڌ
ٽرگر جڏهن ڪمن ۾ رويي جا مرحلا هوندا آهن ۽ اهڙيءَ طرح اڳڪٿي ڪري سگهجن ٿا.
تنهن هوندي به، هن ٽيڪنڪ سان محتاط هجڻ گهرجي، ڇاڪاڻ ته اڳڪٿيون تمام آسان آهن.
ٿي سگهي ٿو غلط ٿي سگهي ٿو ۽ سسٽم جي اڳواڻي کان وڌيڪ خراب فيصلا ڪرڻ لاء
بلڪل بي خبر هوندو.

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

MLFQ الگورتھم جي بنيادي قاعدن تي غور ڪريو. ۽ جيتوڻيڪ هن الگورتھم جي نفاذ
اتي ڪيترائي آھن، بنيادي طريقا ساڳيا آھن.
عمل درآمد ۾ جيڪو اسان غور ڪنداسين، MLFQ جا ڪيترائي هوندا
الڳ قطارون، جن مان هر هڪ کي الڳ ترجيح هوندي. هر وقت،
عمل لاءِ تيار ڪيل ڪم ساڳئي قطار ۾ آهي. MLFQ ترجيحات استعمال ڪري ٿو،
فيصلو ڪرڻ لاءِ ڪھڙو ڪم سرانجام ڏيڻ لاءِ، يعني اعلي ڪم سان
priority (سڀ کان وڌيڪ ترجيح سان قطار مان ھڪڙو ڪم) پھريون ڀيرو شروع ڪيو ويندو
قطار.
يقينا، هڪ خاص قطار ۾ هڪ کان وڌيڪ ڪم ٿي سگهي ٿو، تنهنڪري
تنهنڪري انهن کي ساڳي ترجيح هوندي. هن معاملي ۾، ميڪانيزم استعمال ڪيو ويندو
انهن ڪمن جي وچ ۾ لانچ پلاننگ لاء آر آر.
اھڙيءَ طرح اسان MLFQ لاءِ ٻن بنيادي قاعدن تي پھتا آھيون:

  • اصول 1: جيڪڏهن ترجيح (A) > ترجيح (B)، ٽاسڪ A هلندو (B نه ٿيندو)
  • اصول 2: جيڪڏهن priority(A) = Priority(B)، A&B RR استعمال ڪرڻ شروع ڪيا ويا آهن

مٿين بنيادن تي، MLFQ جي منصوبابندي ڪرڻ جا اھم عنصر آھن
ترجيحات آهن. هر هڪ کي مقرر ترجيح ڏيڻ بدران
ڪم، MLFQ ان جي ترجيحات کي تبديل ڪري ٿو جيڪو مشاهدو ڪيل رويي جي بنياد تي.
مثال طور، جيڪڏهن ڪي بورڊ ان پٽ جي انتظار ۾ هڪ ڪم مسلسل سي پي يو تي ڇڏي ٿو،
MLFQ پروسيس کي اوليت برقرار رکندو ڇو ته اهو ڪيئن آهي
مداخلت واري عمل کي ڪم ڪرڻ گهرجي. جيڪڏهن، ان جي ابتڙ، ڪم مسلسل آهي ۽
سي پي يو ڊگھي عرصي لاءِ سخت آھي، MLFQ ان کي گھٽائي ڇڏيندو
هڪ ترجيح. اهڙيء طرح، MLFQ عملن جي رويي جو مطالعو ڪندو جڏهن اهي هلائي رهيا آهن.
۽ رويي کي استعمال ڪريو.
اچو ته هڪ مثال ڏيون ته ڪنهن نقطي تي قطارون ڪهڙيون نظر اچن ٿيون
وقت ۽ پوءِ توھان ڪجھ حاصل ڪريو ھن وانگر:
آپريٽنگ سسٽم: ٽي آسان ٽڪرا. حصو 5: منصوبه بندي: گھڻن سطحي راءِ جي قطار (ترجمو)

هن اسڪيم ۾، 2 عمل A ۽ B سڀ کان وڌيڪ ترجيح سان قطار ۾ آهن. عمل
سي وچ ۾ ڪٿي آهي، ۽ پروسيس ڊي قطار جي بلڪل آخر ۾ آهي. مٿين جي مطابق
MLFQ الورورٿم جي وضاحت، شيڊولر صرف اعلي سان ڪمن کي انجام ڏيندو
آر آر جي مطابق ترجيح، ۽ ڪم سي، ڊي ڪم کان ٻاهر ٿي ويندا.
قدرتي طور تي، هڪ جامد سنيپ شاٽ مڪمل تصوير نه ڏيندو ته ڪيئن MLFQ ڪم ڪري ٿو.
اهو سمجهڻ ضروري آهي ته تصوير وقت سان ڪيئن بدلجي ٿي.

ڪوشش 1: ترجيح ڪيئن بدلجي

هن نقطي تي، توهان کي فيصلو ڪرڻو پوندو ته ڪيئن MLFQ ترجيحي سطح کي تبديل ڪندو
ڪم (۽ اهڙيء طرح قطار ۾ ڪم جي پوزيشن) ان جي زندگي جي چڪر دوران. لاءِ
انهي مان، توهان کي ڪم جي فلو کي ذهن ۾ رکڻ جي ضرورت آهي: هڪ خاص رقم
مختصر هلندڙ وقتن سان گڏ ڪم ڪندڙ ڪم (۽ اهڙيءَ طرح بار بار ڇڏڻ
سي پي يو) ۽ ڪيترائي ڊگھا ڪم جيڪي سي پي يو کي استعمال ڪن ٿا انهن جي ڪم ڪندڙ وقت، جڏهن ته
اهڙن ڪمن لاءِ جوابي وقت اهم نه آهي. ۽ تنهنڪري توهان پهرين ڪوشش ڪري سگهو ٿا
هيٺ ڏنل قاعدن سان MLFQ الگورتھم کي لاڳو ڪريو:

  • ضابطو 3: جڏهن ڪو ڪم سسٽم ۾ داخل ٿئي ٿو، اهو سڀ کان وڌيڪ قطار ۾ رکيل آهي
  • ترجيح.
  • Rule4a: جيڪڏهن ڪو ڪم پنهنجي پوري وقت واري ونڊو کي استعمال ڪري، پوءِ اهو
  • ترجيح گھٽجي وئي آھي.
  • Rule4b: جيڪڏهن ڪو ٽاسڪ سي پي يو کي جاري ڪري ٿو ان جي ٽائيم ونڊو ختم ٿيڻ کان اڳ، پوءِ اهو
  • ساڳي ترجيح سان رهي ٿو.

مثال 1: اڪيلو ڊگهو ڪم

جئين توهان هن مثال ۾ ڏسي سگهو ٿا، داخلا تي ڪم تمام اعلي سان مقرر ڪيو ويو آهي
ترجيح. 10ms ٽائيم ونڊو کان پوء، عمل کي ترجيح ۾ گھٽ ڪيو ويو آهي.
شيڊيولر ايندڙ وقت جي ونڊو کان پوء، ڪم آخر ۾ گھٽجي ويو آهي
سسٽم ۾ سڀ کان گهٽ ترجيح، جتي اهو رهي ٿو.
آپريٽنگ سسٽم: ٽي آسان ٽڪرا. حصو 5: منصوبه بندي: گھڻن سطحي راءِ جي قطار (ترجمو)

مثال 2: هڪ مختصر ڪم ورتو

ھاڻي اچو ته ھڪڙو مثال ڏسون ته ڪيئن MLFQ SJF ڏانھن وڃڻ جي ڪوشش ڪندو. هن ۾
مثال طور، ٻه ڪم: الف، جيڪو مسلسل ڊگهو ڪم آهي
سي پي يو ۽ بي تي قبضو ڪرڻ، جيڪو هڪ مختصر انٽرويو ڪم آهي. فرض ڪريو
جنهن وقت A ٽاسڪ B جي پهچندي ڪجهه وقت لاءِ هلي رهيو هو.
آپريٽنگ سسٽم: ٽي آسان ٽڪرا. حصو 5: منصوبه بندي: گھڻن سطحي راءِ جي قطار (ترجمو)

هي گراف منظر جي نتيجن کي ڏيکاري ٿو. ٽاسڪ A، ڪنهن به ڪم وانگر،
CPU استعمال ڪرڻ تمام تري ۾ هو. ٽاسڪ B وقت تي پهچندو T = 100 ۽ ٿيندو
سڀ کان وڌيڪ ترجيح واري قطار ۾ رکيل. جيئن ته هلندڙ وقت ننڍو آهي،
اهو آخري قطار تائين پهچڻ کان اڳ مڪمل ٿيندو.

هن مثال مان، توهان کي الورورٿم جو بنيادي مقصد سمجهڻ گهرجي: ڇو ته الورورٿم نه آهي
ڊگھو ڪم ڄاڻي ٿو يا ننڍو، پوءِ سڀ کان اول اھو فرض ٿو ڪري
مختصر ۽ ان کي اعليٰ ترجيح ڏئي ٿو. جيڪڏهن اهو واقعي هڪ مختصر ڪم آهي، پوء
اهو جلدي تي عمل ڪندو، ٻي صورت ۾ جيڪڏهن اهو هڪ ڊگهو ڪم آهي ته اهو سست ٿي ويندو
ترجيح ۾ هيٺ ۽ جلد ئي ثابت ڪندو ته هوء واقعي هڪ ڊگهو ڪم آهي جيڪو نه ڪندو
جواب جي ضرورت آهي.

مثال 3: I/O بابت ڇا؟

هاڻي اچو ته هڪ I/O مثال ڏسو. جيئن ضابطي 4b ۾ بيان ڪيو ويو آهي،
جيڪڏهن هڪ عمل پروسيسر کي مڪمل طور تي پروسيسر وقت استعمال ڪرڻ کان سواء جاري ڪري ٿو،
پوءِ اها ساڳي ترجيحي سطح تي رهي ٿي. هن قاعدي جو مقصد تمام سادو آهي.
- جيڪڏهن انٽرويو نوڪري تمام گهڻو I/O انجام ڏئي ٿو، مثال طور، انتظار ڪرڻ
صارف جي ڪي اسٽروڪ يا مائوس کان، اهڙي ڪم پروسيسر کي آزاد ڪندو
مختص ٿيل ونڊو کان اڳ. اسان اهڙي ترجيحي ڪم کي ڇڏڻ نٿا چاهيون،
۽ اهڙيء طرح اهو ساڳيو سطح تي رهندو.
آپريٽنگ سسٽم: ٽي آسان ٽڪرا. حصو 5: منصوبه بندي: گھڻن سطحي راءِ جي قطار (ترجمو)

هي مثال ڏيکاري ٿو ته الورورٿم اهڙين پروسيس سان ڪيئن ڪم ڪندو - انٽرايڪٽو ٽاسڪ B، جنهن کي صرف عمل ڪرڻ کان پهريان 1ms لاءِ CPU جي ضرورت آهي
I/O عمل ۽ هڪ ڊگهو نوڪري A، جيڪو هر وقت CPU استعمال ڪري ٿو.
MLFQ پروسيس B کي اعليٰ ترجيح تي رکي ٿو جيئن اهو جاري آهي
CPU ڇڏڻ. جيڪڏهن B هڪ انٽرويو ڪم آهي، پوء هن معاملي ۾ الگورتھم پهچي چڪو آهي
ان جو مقصد جلدي جلدي ڪم شروع ڪرڻ آهي.

موجوده MLFQ الگورتھم سان مسئلا

پوئين مثالن ۾، اسان MLFQ جو بنيادي نسخو ٺاھيو آھي. ۽ اهو لڳي ٿو ته هو
پنهنجي ڪم کي چڱي طرح ۽ منصفانه طور تي ڪري ٿو، سي پي يو جي وقت جي وچ ۾ منصفانه تقسيم
ڊگھا ڪم ۽ مختصر ڪمن يا ڪمن کي اجازت ڏيڻ جن کي تمام گھڻو پھچايو ويو آھي
جلدي عمل ڪرڻ لاءِ I/O ڏانهن. بدقسمتي سان، هن طريقي ۾ ڪيترائي شامل آهن
سنگين مسئلا.
پهريون ڀيرو, بک جو مسئلو: جيڪڏهن نظام ڪيترن ئي انٽرفيس هوندي
ڪم، اهي سڀ سي پي يو وقت استعمال ڪندا ۽ اهڙيء طرح هڪ ڊگهو نه
ڪم کي انجام ڏيڻ جو موقعو نه ملندو (اهي بکيا پيا آهن).

ٻيو، سمارٽ استعمال ڪندڙ انهن جا پروگرام لکي سگھن ٿا ته جيئن
شيڊولر کي بيوقوف. ٺڳيءَ ۾ ڪوڙ آهي ڪجهه ڪرڻ لاءِ مجبور ڪرڻ
شيڊولر کي پروسيس کي وڌيڪ سي پي يو وقت ڏيڻ لاء. الورورٿم جو
مٿي بيان ڪيل اهڙن حملن لاء ڪافي خطرناڪ آهي: وقت کان اڳ ونڊو عملي طور تي
مٿان، توهان کي I / O آپريشن ڪرڻ جي ضرورت آهي (ڪجهه، ڪابه ڪابه فائل ناهي)
۽ اھڙي طرح سي پي يو کي آزاد ڪريو. اهڙو رويو توهان کي ساڳيو رهڻ جي اجازت ڏيندو
قطار پاڻ ۽ ٻيهر حاصل ڪريو سي پي يو جي وقت جو وڏو سيڪڙو. جيڪڏهن ڪيو وڃي
اهو صحيح آهي (مثال طور سي پي يو جاري ڪرڻ کان پهريان ونڊو وقت جو 99٪ هلائي)،
اهڙو ڪم صرف پروسيسر کي هٽائي سگھي ٿو.

آخرڪار، هڪ پروگرام پنهنجي رويي کي وقت سان تبديل ڪري سگهي ٿو. اهي ڪم
جيڪو استعمال ڪيو سي پي يو انٽرايڪٽو ٿي سگهي ٿو. اسان جي مثال ۾، ساڳي
ڪمن کي شيڊيولر کان مناسب علاج نه ملندو، جيئن ٻيا ڪندا
(اصل) انٽرايڪٽو ڪم.

سامعين لاءِ سوال: جديد دنيا ۾ شيڊيولر تي ڪهڙا حملا ٿي سگهن ٿا؟

ڪوشش 2: ترجيح وڌايو

اچو ته ضابطن کي تبديل ڪرڻ جي ڪوشش ڪريو ۽ ڏسو ته ڇا اسان مسئلن کان بچي سگھون ٿا
بک انهي سان لاڳاپيل کي يقيني بڻائڻ لاء اسان ڇا ڪري سگهون ٿا
سي پي يو ڪمن کي پنهنجو وقت ملندو (جيتوڻيڪ ڊگهو نه هجي).
مسئلو لاء هڪ سادي حل جي طور تي، توهان وقتي طور تي صلاح ڪري سگهو ٿا
سسٽم ۾ اهڙن سڀني ڪمن جي ترجيح کي وڌايو. اتي ڪيترائي طريقا آھن
ان کي حاصل ڪرڻ لاءِ، اچو ته ڪجھ سادو عمل ڪرڻ جي ڪوشش ڪريون مثال طور: ترجمو
سڀني ڪمن کي هڪ ئي وقت اعليٰ ترجيح تي، تنهن ڪري نئون قاعدو:

  • ضابطو 5: ڪجهه عرصي کان پوءِ S، سسٽم ۾ سڀني ڪمن کي اعليٰ قطار ۾ منتقل ڪريو.

اسان جو نئون قاعدو هڪ ڀيرو ٻه مسئلا حل ڪري ٿو. پهريون، عمل
بک نه مرڻ جي ضمانت: اعليٰ قطار ۾ ڪم حصيداري ڪندا
پروسيسر جو وقت آر آر الگورتھم جي مطابق ۽ اھڙيء طرح سڀني عملن کي وصول ڪيو ويندو
پروسيسر وقت. ٻيو، جيڪڏهن ڪجهه عمل جيڪي اڳ ۾ استعمال ڪيا ويا آهن
صرف پروسيسر انٽرايڪٽو ٿي ويندو آهي، اهو سڀ کان وڌيڪ قطار ۾ رهندو
هڪ ڀيرو اعليٰ ترجيح ڏانهن واڌارو حاصل ڪرڻ کان پوءِ ترجيح.
هڪ مثال تي غور ڪريو. ھن حالت ۾، ھڪڙي ھڪڙي عمل کي استعمال ڪندي غور ڪريو
آپريٽنگ سسٽم: ٽي آسان ٽڪرا. حصو 5: منصوبه بندي: گھڻن سطحي راءِ جي قطار (ترجمو)

سي پي يو ۽ ٻه انٽرويو، مختصر عمل. شڪل ۾ کاٻي پاسي، انگ اکر ڏيکاري ٿو رويي کي ترجيحي واڌ جي بغير، ۽ اھڙيءَ طرح ڊگھي ھلندڙ ڪم ٻن انٽرايڪٽو ڪمن جي سسٽم تي اچڻ کان پوءِ بک ٿيڻ شروع ٿئي ٿو. ساڄي پاسي واري شڪل ۾، هر 50ms هڪ ترجيحي واڌ ڪئي وئي آهي ۽ اهڙيء طرح سڀني عملن کي پروسيسر وقت حاصل ڪرڻ جي ضمانت ڏني وئي آهي ۽ وقتي طور تي شروع ڪيو ويندو. هن معاملي ۾ 50ms هڪ مثال طور ورتو وڃي ٿو، حقيقت ۾ اهو انگ ڪجهه وڌيڪ آهي.
اهو ظاهر آهي ته وقتي اڀار واري وقت S جي اضافي سان
منطقي سوال: ڪهڙو قدر مقرر ڪيو وڃي؟ چڱيءَ طرح مستحقن مان هڪ
سسٽم انجنيئرز جان اوسٽر هاؤٽ سسٽم ۾ ساڳي مقدار کي وو-ڊو طور حوالو ڏنو
مسلسل، ڇاڪاڻ ته انهن کي ڪجهه طريقي سان درست لاء ڪارو جادو جي ضرورت هئي
پڌرائي. ۽، بدقسمتي سان، S ۾ اهڙو ذائقو آهي. جيڪڏهن توهان قيمت پڻ مقرر ڪريو
وڏا وڏا ڪم بک مرندا. ۽ جيڪڏھن توھان ان کي تمام گھٽ سيٽ ڪيو،
متعامل ڪمن کي مناسب CPU وقت نه ملندو.

ڪوشش 3: بهتر اڪائونٽنگ

هاڻي اسان کي حل ڪرڻ لاء هڪ وڌيڪ مسئلو آهي: ڪيئن نه
اسان جي شيڊولر کي ٺڳي ڪرڻ جي اجازت ڏيو؟ هن امڪان لاء مجرم آهن
ضابطا 4a، 4b جيڪي هڪ نوڪري کي اجازت ڏين ٿا ته پروسيسر کي آزاد ڪندي پنهنجي ترجيح کي برقرار رکي
مقرر ٿيل وقت جي ختم ٿيڻ کان اڳ. ان سان ڪيئن ڊيل ڪرڻ لاء؟
هن معاملي ۾ حل هر هڪ تي CPU وقت جي هڪ بهتر اڪائونٽنگ سمجهي سگهجي ٿو
MLFQ سطح. پروگرام استعمال ٿيل وقت کي وسارڻ بدران
مختص وقف لاء پروسيسر، توهان کي اڪائونٽ ۾ رکڻ گهرجي ۽ ان کي محفوظ ڪرڻ گهرجي. کان پوء
عمل ان جي مختص ٿيل وقت کي استعمال ڪيو آهي، ان کي ختم ڪيو وڃي ايندڙ وقت تائين
ترجيحي سطح. هاڻي اهو مسئلو ناهي ته اهو عمل پنهنجي وقت کي ڪيئن استعمال ڪندو - ڪيئن
پروسيسر تي مسلسل ڪمپيوٽنگ يا ڪالن جي سيٽ جي طور تي. اهڙيءَ طرح،
ضابطو 4 کي هيٺين ريت لکڻ گهرجي:

  • ضابطو 4: هڪ ڪم کان پوءِ موجوده قطار ۾ پنهنجو مختص ڪيل وقت استعمال ڪيو آهي (قطع نظر ته اهو ڪيترا ڀيرا سي پي يو کي آزاد ڪيو)، اهڙي ڪم جي ترجيح گھٽجي ويندي آهي (اهو قطار کان هيٺ هلندو آهي).

اچو ته هڪ مثال ڏسو:
آپريٽنگ سسٽم: ٽي آسان ٽڪرا. حصو 5: منصوبه بندي: گھڻن سطحي راءِ جي قطار (ترجمو)»

انگ اکر ڏيکاري ٿو ته ڇا ٿيندو جيڪڏهن توهان ڪوشش ڪرڻ جي ڪوشش ڪريو شيڊولر وانگر
جيڪڏهن اهو اڳئين ضابطن سان هجي ها 4a، 4b نتيجو کاٻي پاسي هوندو. نئين سان
قاعدو آهي نتيجو ساڄي پاسي آهي. تحفظ کان اڳ، ڪو به عمل مڪمل ٿيڻ کان اڳ I/O کي ڪال ڪري سگهي ٿو ۽
اھڙيءَ طرح سي پي يو تي غلبہ حاصل ڪريو، تحفظ کي چالو ڪرڻ کان پوءِ، ڪنھن بہ قسم جي رويي جي
I/O، هو اڃا به قطار ۾ هليو ويندو ۽ اهڙي طرح بي ايماني نه ڪري سگهندو
سي پي يو وسيلن تي قبضو ڪريو.

MLFQ ۽ ٻين مسئلن کي بهتر ڪرڻ

مٿين سڌارن سان، نوان مسئلا پيدا ٿين ٿا: مکيه مان هڪ
سوال - ڪيئن اهڙي شيڊولر parameterize ڪرڻ لاء؟ اهي. ڪيترو هجڻ گهرجي
قطارون؟ قطار اندر پروگرام ونڊو جي سائيز ڇا هجڻ گهرجي؟ ڪيئن
پروگرام کي اڪثر ترجيح ڏني وڃي ته جيئن بک کان بچڻ ۽
پروگرام جي رويي ۾ تبديلي کي نظر ۾ رکڻ لاء؟ انهن سوالن لاء، ڪو به سادو ناهي
جواب ۽ صرف تجربا لوڊ ۽ بعد جي ترتيب سان
شيڊولر ڪجهه اطمينان بخش توازن پيدا ڪري سگهي ٿو.

مثال طور، اڪثر MLFQ لاڳو ڪرڻ توهان کي مختلف تفويض ڪرڻ جي اجازت ڏين ٿا
مختلف قطارن لاءِ وقت جا سلاٽ. اعلي ترجيحن جون قطارون عام طور تي آهن
مختصر وقفو. اهي قطارون متعامل ڪمن تي مشتمل هونديون آهن،
سوئچنگ جنهن جي وچ ۾ ڪافي حساس آهي ۽ وٺڻ گهرجي 10 يا گهٽ
ms ان جي ابتڙ، گھٽ ترجيحي قطارون ڊگھي ھلندڙ ڪمن تي مشتمل آھن جيڪي استعمال ڪن ٿيون
سي پي يو. ۽ هن معاملي ۾، ڊگهو وقت وقفو تمام چڱي طرح (100ms).
آپريٽنگ سسٽم: ٽي آسان ٽڪرا. حصو 5: منصوبه بندي: گھڻن سطحي راءِ جي قطار (ترجمو)

هن مثال ۾، 2 ڪم آهن جيڪي اعلي ترجيحن جي قطار 20 ۾ ڪم ڪيا آهن
ms 10ms ونڊوز ۾ ورهايل آهي. وچين قطار ۾ 40ms (20ms ونڊو) ۽ گھٽ ترجيح واري قطار ۾
قطار وقت جي ونڊو 40ms ٿي وئي جتي ڪم مڪمل ڪيو.

سولاريس او ايس ۾ MLFQ جو نفاذ وقت جي شيئرنگ شيڊولرز جو هڪ ڪلاس آهي.
شيڊولر جدولن جو هڪ سيٽ مهيا ڪندو جيڪو بيان ڪري ٿو ته اهو ڪيئن هجڻ گهرجي
عمل جي ترجيحات کي تبديل ڪريو ان جي زندگي جي دوران، سائيز ڇا هجڻ گهرجي
ونڊو مختص ڪيو وڃي ۽ ڪيترا ڀيرا ڪم جي ترجيحن کي وڌايو وڃي. منتظم
سسٽم هن ٽيبل سان لهه وچڙ ڪري سگهي ٿو ۽ شيڊولر جي رويي کي ٺاهي سگھي ٿو
مختلف طرح. ڊفالٽ طور، ھن ٽيبل ۾ 60 قطارون آھن تدريجي واڌ سان
ونڊو سائيز 20ms (اعلي ترجيح) کان ڪيترن ئي سو ايم ايس تائين (گهٽ ترجيح)، ۽
هر سيڪنڊ ۾ هڪ ڀيرو سڀني ڪمن جي واڌاري سان.

ٻيا MLFQ شيڊولرز ٽيبل يا ڪو خاص استعمال نٿا ڪن
ضابطا جيڪي هن باب ۾ بيان ڪيا ويا آهن، ان جي ابتڙ، اهي استعمال ڪندي ترجيحن جو حساب ڪن ٿا
رياضياتي فارمولا. مثال طور، فري بي ايس ڊي ۾ شيڊولر لاءِ فارمولا استعمال ڪندو آهي
موجوده ڪم جي ترجيح جي بنياد تي حساب ڪرڻ ڪيترو عمل
سي پي يو استعمال ڪيو. ان کان علاوه، سي پي يو استعمال وقت سان گڏ روٽ، ۽ اهڙيء طرح
ان ڪري، ترجيحي واڌارو مٿي بيان ڪيل کان ڪجھ مختلف آھي. هي سچ آهي
decay algorithms سڏيو وڃي ٿو. نسخي 7.1 جي طور تي، FreeBSD استعمال ڪري ٿو ULE شيڊولر.

آخرڪار، ڪيترن ئي منصوبن ۾ ٻيون خاصيتون آهن. مثال طور، ڪجهه
شيڊولرز آپريٽنگ سسٽم جي آپريشن لاء اعلي سطحون محفوظ ڪن ٿا ۽ اهڙيء طرح
اهڙيء طرح، ڪو به صارف جي عمل ۾ اعلي ترجيح حاصل ڪري سگهي ٿو
سسٽم. ڪجهه سسٽم توهان کي مدد ڏيڻ جي صلاح ڏيڻ جي اجازت ڏين ٿا
شيڊولر کي صحيح طور تي ترجيح ڏيڻ لاء. مثال طور، حڪم استعمال ڪندي سٺو
توھان وڌائي يا گھٽ ڪري سگھو ٿا ھڪڙي ڪم جي ترجيح کي ۽ اھڙيءَ طرح وڌائي يا گھٽائي سگھوٿا
سي پي يو وقت لاءِ پروگرام جا موقعا گھٽائڻ.

MLFQ: خلاصو

اسان MLFQ نالي هڪ منصوبه بندي جو طريقو بيان ڪيو آهي. ھن جو نالو
آپريشن جي اصول ۾ ختم ڪيو ويو آهي - ان ۾ ڪيترائي قطار آهن ۽ موٽ استعمال ڪري ٿو
هڪ ڪم کي ترجيح ڏيڻ لاء.
ضابطن جي آخري شڪل هن ريت هوندي:

  • ضابطو 1: جيڪڏهن priority(A) > Priority(B)، ڪم A هلندو (B نه ٿيندو)
  • ضابطو 2: جيڪڏهن priority(A) = Priority(B)، A&B RR استعمال ڪرڻ شروع ڪيا ويا آهن
  • ضابطو 3: جڏهن ڪو ڪم سسٽم ۾ داخل ٿئي ٿو، اهو سڀ کان وڌيڪ ترجيح واري قطار ۾ رکيل آهي.
  • ضابطو 4: هڪ ڪم کان پوءِ موجوده قطار ۾ پنهنجو مختص ڪيل وقت استعمال ڪيو آهي (قطع نظر ته اهو ڪيترا ڀيرا سي پي يو کي آزاد ڪيو)، اهڙي ڪم جي ترجيح گھٽجي ويندي آهي (اهو قطار کان هيٺ هلندو آهي).
  • ضابطو 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

تبصرو شامل ڪريو