بل میټریک - انصاف (انصاف، صداقت). تولید او انصاف اکثرا په پلان جوړونې کې مخالف ځانګړتیاوې دي. د مثال په توګه، مهالویش کونکی ممکن فعالیت ته وده ورکړي، مګر د نورو دندو د چلولو لپاره د انتظار په لګښت، په دې توګه عادلانه کموي.
لومړی په لومړي کې (FIFO)
ترټولو اساسي الګوریتم چې موږ یې پلي کولی شو د FIFO یا په نوم یادیږي لومړی راغلی (نور)، لومړی خدمت شوی (بهر). دا الګوریتم ډیری ګټې لري: دا پلي کول خورا اسانه دي او دا زموږ ټولو انګیرنو سره سمون لري او دنده په ښه توګه ترسره کوي.
راځئ چې یو ساده مثال وګورو. راځئ چې ووایو 3 دندې په ورته وخت کې تنظیم شوي. مګر راځئ فرض کړو چې A دنده د نورو ټولو په پرتله یو څه دمخه رسیدلې ، نو دا به د نورو په پرتله د اجرا کولو لیست کې څرګند شي ، لکه B د C په پرتله. راځئ فرض کړو چې هر یو به د 10 ثانیو لپاره اجرا شي. په دې صورت کې به د دغو کارونو د بشپړولو اوسط وخت څومره وي؟
د ارزښتونو په شمیرلو سره - 10+20+30 او په 3 ویشلو سره، موږ د پروګرام اوسط اجرا کولو وخت د 20 ثانیو سره مساوي ترلاسه کوو.
اوس راځئ هڅه وکړو چې خپل انګیرنې بدل کړو. په ځانګړې توګه، انګیرنه 1 او پدې توګه موږ به نور دا فکر ونه کړو چې هر کار د اجرا کولو لپاره ورته وخت نیسي. FIFO به دا ځل څنګه ترسره کړي؟
لکه څنګه چې دا معلومه شوه، د مختلف دندې اجرا کولو وختونه د FIFO الګوریتم تولید باندې خورا منفي اغیزه لري. راځئ فرض کړو چې A دنده بشپړولو لپاره 100 ثانیې وخت نیسي، پداسې حال کې چې B او C به هر یو 10 ثانیې وخت ونیسي.
لکه څنګه چې د ارقامو څخه لیدل کیدی شي، د سیسټم لپاره اوسط وخت به (100+110+120)/3=110 وي. دا اثر ویل کیږي د کاروان اغیز، کله چې د سرچینې ځینې لنډمهاله مصرف کونکي به د درنو مصرف کونکو وروسته قطار کې وي. دا د کرایې پلورنځي کې د کرښې په څیر دی کله چې یو پیرودونکی ستاسو په وړاندې د بشپړ کارټ سره وي. د ستونزې غوره حل دا دی چې د نغدو راجستر بدلولو هڅه وکړئ یا آرام او ژور تنفس وکړئ.
ترټولو لنډه دنده لومړی
ایا دا ممکنه ده چې د درنو وزن پروسو سره ورته وضعیت حل کړئ؟ یقینا. بل ډول پلان جوړونه بلل کیږيترټولو لنډه دنده لومړی (SJF). د دې الګوریتم هم خورا ابتدايي دی - لکه څنګه چې نوم معنی لري، لنډې دندې به لومړی پیل شي، یو له بل وروسته.
په دې مثال کې، د ورته پروسو د چلولو پایله به د اوسط پروګرام بدلون وخت کې ښه والی وي او دا به مساوي وي. د 50 پرځای 110، کوم چې نږدې 2 ځله غوره دی.
په دې توګه، د ورکړل شوي انګیرنې لپاره چې ټولې دندې په ورته وخت کې راځي، د SJF الګوریتم ترټولو غوره الګوریتم ښکاري. په هرصورت، زموږ انګیرنې لاهم ریښتیا نه ښکاري. دا ځل موږ انګیرنه 2 بدلوو او دا ځل تصور وکړئ چې دندې په هر وخت کې شتون لري، او ټول په ورته وخت کې نه وي. دا د کومې ستونزې لامل کیدی شي؟
راځئ چې تصور وکړو چې دنده A (100c) لومړی راځي او د اجرا کیدو پیل کوي. په t=10 کې، د B او C دندې راځي، چې هر یو به 10 ثانیې وخت ونیسي. نو د اوسط اجرا کولو وخت (100+(110-10)+(120-10))3 = 103 دی. مهالویش کوونکی د دې ښه کولو لپاره څه کولی شي؟
د بشپړولو تر ټولو لنډ وخت لومړی (STCF)
د وضعیت د ښه کولو لپاره، موږ 3 انګیرنه پریږدو چې برنامه پیل شوې او تر بشپړیدو پورې روانه ده. سربیره پردې ، موږ به د هارډویر ملاتړ ته اړتیا ولرو او لکه څنګه چې تاسو اټکل کولی شئ موږ به وکاروو ټایمر په روان کار کې خنډ کول او د شرایطو بدلول. په دې توګه، مهالویش کونکی کولی شي په هغه وخت کې یو څه ترسره کړي چې د B، C دندې ته ورسیږي - د A دندې اجرا کول ودروي او د B او C دندې پروسس کولو ته وسپاري او د دوی له بشپړیدو وروسته د A اجرا کولو پروسې ته دوام ورکړي. STCFاو یا مخکې له مخکې دنده.
دا منطقي ده چې فرض کړئ چې د وخت کړکۍ د RR لپاره خورا مهم پیرامیټر دی؛ څومره چې کوچنی وي، د غبرګون وخت لوړ وي. په هرصورت، تاسو باید دا خورا کوچنی نه کړئ، ځکه چې د شرایطو بدلولو وخت به په ټولیز فعالیت کې رول ولوبوي. پدې توګه ، د اجرا کولو کړکۍ وخت انتخاب د OS معمار لخوا ټاکل شوی او په هغه دندو پورې اړه لري چې په دې کې د اجرا کولو پلان شوي. د شرایطو بدلول یوازینی خدمت عملیات ندي چې وخت ضایع کوي - د چلولو برنامه په ډیری نورو شیانو کار کوي ، د بیلګې په توګه ، مختلف کیچونه ، او د هر سویچ سره دا اړینه ده چې دا چاپیریال خوندي او بحال کړئ ، کوم چې کولی شي ډیر وخت ونیسي. وخت
RR یو عالي مهالویش دی که موږ یوازې د ځواب وخت میټریک په اړه خبرې کولې. مګر د دې الګوریتم سره د کاري بدلون وخت میټریک به څنګه چلند وکړي؟ پورته مثال ته پام وکړئ، کله چې د A، B، C = 5s عملیاتي وخت راشي او په ورته وخت کې راشي. ټاسک A به په 13 پای ته ورسیږي، B به په 14 کې، C په 15s کې او د بدلون اوسط وخت به 14s وي. په دې توګه، RR د بدلون میټریک لپاره ترټولو خراب الګوریتم دی.
په نورو عمومي شرایطو کې، د RR ډوله الګوریتم عادلانه دی؛ دا د CPU وخت د ټولو پروسو ترمنځ مساوي ویشوي. او په دې توګه، دا میترونه په دوامداره توګه د یو بل سره ټکر کوي.
پدې توګه ، موږ ډیری متضاد الګوریتمونه لرو او په ورته وخت کې لاهم ډیری انګیرنې پاتې دي - دا چې د دندې وخت پیژندل شوی او دا چې دنده یوازې CPU کاروي.
د I/O سره مخلوط کول
له هرڅه دمخه ، راځئ چې انګیرنه 4 لرې کړو چې پروسه یوازې CPU کاروي؛ په طبیعي ډول ، دا قضیه نده او پروسې کولی شي نورو تجهیزاتو ته لاسرسی ومومي.
کله چې کومه پروسه د I/O عملیاتو غوښتنه کوي، پروسه بند شوي حالت ته ننوځي، د I/O بشپړیدو ته انتظار باسي. که I/O هارډ ډرایو ته واستول شي، نو دا ډول عملیات کولی شي څو ms یا ډیر وخت ونیسي، او پروسیسر به پدې وخت کې بې کاره وي. د دې وخت په جریان کې، شیډولر کولی شي پروسیسر د کوم بل پروسې سره ونیسي. بله پریکړه چې مهالویش به یې وکړي هغه وخت دی چې پروسه به خپل I/O بشپړ کړي. کله چې دا پیښ شي، یو مداخله به واقع شي او OS به هغه پروسه چې I/O نومیږي چمتو حالت ته واړوي.
راځئ چې د څو کارونو مثال وګورو. هر یو د 50ms CPU وخت ته اړتیا لري. په هرصورت، لومړی به I/O ته په هر 10ms کې لاسرسی ومومي (کوم چې په هر 10ms کې به هم اجرا شي). او پروسس B په ساده ډول د I/O پرته د 50ms پروسیسر کاروي.
په دې مثال کې به موږ د STCF مهالویش وکاروو. مهالویش به څنګه چلند وکړي که چیرې د A په څیر پروسه پیل شي؟ هغه به لاندې کار وکړي: لومړی به هغه په بشپړ ډول د A پروسې کار وکړي ، او بیا به B پروسس کړي.
د دې ستونزې د حل لپاره دودیزه تګلاره دا ده چې د پروسې A هر 10 ms فرعي ټاسک د جلا دندې په توګه چلند وکړي. په دې توګه، کله چې د STJF الګوریتم سره پیل کیږي، د 50 ms دندې او 10 ms دندې ترمنځ انتخاب څرګند دی. بیا، کله چې فرعي ټاسک A بشپړ شي، B او I/O به پیل شي. وروسته له دې چې I/O بشپړ شي، دا به دود وي چې د پروسې B پر ځای د 10ms پروسې A بیا پیل کړئ. په دې توګه، دا ممکنه ده چې اوورلیپ پلي شي، چیرته چې CPU د بلې پروسې لخوا کارول کیږي پداسې حال کې چې لومړی یې په انتظار کې وي. I/O او د پایلې په توګه، سیسټم ښه کارول کیږي - په اوس وخت کې کله چې متقابل پروسې I/O ته انتظار وي، نورې پروسې په پروسیسر کې اجرا کیدی شي.