{"id":32730,"date":"2019-10-31T21:48:36","date_gmt":"2019-10-31T18:48:36","guid":{"rendered":"https:\/\/prohoster.info\/blog\/operating-systems-three-easy-pieces-part-5-planirovanie-multi-level-feedback-queue-perevod\/"},"modified":"2021-02-08T11:40:35","modified_gmt":"2021-02-08T09:40:35","slug":"operating-systems-three-easy-pieces-part-5-planirovanie-multi-level-feedback-queue-perevod","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-5-planirovanie-multi-level-feedback-queue-perevod","title":{"rendered":"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 5: Planifikimi: Radh\u00eb Multi-Niveli Feedback (p\u00ebrkthim)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h1>Hyrja n\u00eb sistemet operative<\/h1>\n<p>P\u00ebrsh\u00ebndetje, Habr! Dua t\u00eb paraqes para jush nj\u00eb seri artikujsh me p\u00ebrkthime nga nj\u00eb let\u00ebrsi interesante sipas mendimit tim - OSTEP. Ky material shqyrton mjaft thell\u00eb funksionimin e sistemeve operativ\u00eb t\u00eb ngjashme me UNIX, dometh\u00ebn\u00eb - pun\u00ebn me proceset, planifikuesit e ndrysh\u00ebm, memorien dhe komponent\u00eb t\u00eb tjer\u00eb t\u00eb ngjash\u00ebm q\u00eb p\u00ebrb\u00ebjn\u00eb nj\u00eb sistem operativ modern. Origjinali i t\u00eb gjith\u00eb materialeve mund ta shihni k\u00ebtu <noindex><a rel=\"nofollow\" href=\"http:\/\/pages.cs.wisc.edu\/~remzi\/OSTEP\/\">k\u00ebtu<\/a><\/noindex>. Ju lutem, merrni parasysh se p\u00ebrkthimi \u00ebsht\u00eb realizuar n\u00eb m\u00ebnyr\u00eb jo profesionale (mjaft lirsh\u00ebm), por shpresoj se kuptimi i p\u00ebrgjithsh\u00ebm e kam ruajtur.<\/p>\n<p>P\u00ebr laborator\u00ebt n\u00eb k\u00ebt\u00eb l\u00ebnd\u00eb mund t\u00eb gjeni k\u00ebtu:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/pages.cs.wisc.edu\/~remzi\/OSTEP\/Homework\/homework.html\">origjinali<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/remzi-arpacidusseau\/ostep-code\">origjinali<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bykvaadm\/OS\/tree\/master\/ostep\">adaptimi im personal<\/a><\/noindex><\/li>\n<\/ul>\n<p>Pjes\u00ebt e tjera:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/446340\/\">Pjesa 1: Hyrja<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/446866\/\">Pjesa 2: Abstraksioni: procesi<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/447182\/\">Pjesa 3: Hyrje n\u00eb API-t\u00eb e proceseve<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/449026\/\">Pjesa 4: Hyrja n\u00eb planifikuesin<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/450116\/\">Pjesa 5: Planifikuesi MLFQ<\/a><\/noindex><\/li>\n<\/ul>\n<p>Dhe gjithashtu mund t\u00eb shikoni kanalin tim n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/bykvaadm\">telegram<\/a><\/noindex> =)<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Planifikimi: Multi-Level Feedback Queue<\/h2>\n<p>N\u00eb k\u00ebt\u00eb ligj\u00ebrat\u00eb do t\u00eb flasim p\u00ebr problemet e zhvillimit t\u00eb nj\u00eb nga qasjet m\u00eb t\u00eb njohura p\u00ebr<br \/>\nplanifikimin, e cila quhet <b>Multi-Level Feedback Queue<\/b> (MLFQ). Planifikuesi MLFQ u p\u00ebrshkrua p\u00ebr her\u00eb t\u00eb par\u00eb n\u00eb vitin 1962 nga Fernando J. Corbat\u00f3 n\u00eb sistemin e quajtur<br \/>\nCompatible Time-Sharing System (CTSS). K\u00ebto punime (p\u00ebrfshir\u00eb punimet e m\u00ebvonshme mbi<br \/>\nMultics) m\u00eb pas u paraqit\u00ebn p\u00ebr \u00e7mimin Turing. Planifikuesi u<br \/>\np\u00ebrmir\u00ebsua m\u00eb von\u00eb dhe mori form\u00ebn q\u00eb mund ta gjejm\u00eb tashm\u00eb n\u00eb<br \/>\ndisa sisteme moderne.<\/p>\n<p>Algoritmi MLFQ p\u00ebrpiqet t\u00eb zgjidh\u00eb 2 probleme themelore t\u00eb nd\u00ebrthurura.<br \/>\n<b>S\u00eb pari<\/b>, ai p\u00ebrpiqet t\u00eb optimizoj\u00eb koh\u00ebn e qarkullimit, e cila si\u00e7 e analizuam n\u00eb ligj\u00ebrat\u00ebn e kaluar, optimizohet me metod\u00ebn e nisjes n\u00eb fillim t\u00eb radh\u00ebs s\u00eb<br \/>\ndetyrave m\u00eb t\u00eb shkurtra. Megjithat\u00eb, OS nuk di se sa koh\u00eb do t\u00eb punoj\u00eb nj\u00eb proces i caktuar, dhe ky \u00ebsht\u00eb<br \/>\nnjohuri e nevojshme p\u00ebr funksionimin e algoritmeve SJF, STCF. <b>S\u00eb dyti<\/b>, MLFQ p\u00ebrpiqet<br \/>\nta b\u00ebj\u00eb sistemin reaktiv p\u00ebr p\u00ebrdoruesit (p\u00ebr shembull ata q\u00eb q\u00ebndrojn\u00eb dhe<br \/>\nshikojn\u00eb n\u00eb ekran duke pritur p\u00ebr p\u00ebrfundimin e detyr\u00ebs) dhe k\u00ebshtu minimalizon koh\u00ebn<br \/>\ne p\u00ebrgjigjes. Fatkeq\u00ebsisht, algoritmet si RR zvog\u00eblojn\u00eb koh\u00ebn e p\u00ebrgjigjes, por kan\u00eb nj\u00eb efekt t\u00eb keq t\u00eb jasht\u00ebzakonsh\u00ebm n\u00eb metrik\u00ebn e koh\u00ebs s\u00eb qarkullimit. Prandaj, problemi yn\u00eb \u00ebsht\u00eb: Si t\u00eb projektojm\u00eb<br \/>\nnj\u00eb planifikues q\u00eb do t\u00eb p\u00ebrmbush\u00eb k\u00ebrkesat tona dhe p\u00ebr m\u00eb tep\u00ebr t\u00eb mos dij\u00eb asgj\u00eb mbi<br \/>\nnatur\u00ebn e procesit, n\u00eb p\u00ebrgjith\u00ebsi? Si do t\u00eb m\u00ebsoj\u00eb planifikuesi karakteristikat e detyrave,<br \/>\nq\u00eb ai nis dhe k\u00ebshtu t\u00eb marr\u00eb vendime m\u00eb t\u00eb mira p\u00ebr planifikimin?<br \/>\nThelbi i problemit: Si t\u00eb planifikojm\u00eb vendosjen e detyrave pa njohuri t\u00eb p\u00ebrsosur?<\/p>\n<p><u>Si t\u00eb zhvillojm\u00eb nj\u00eb planifikues q\u00eb nj\u00ebkoh\u00ebsisht minimizon koh\u00ebn e p\u00ebrgjigjes<br \/>\np\u00ebr detyrat interaktive dhe gjithashtu minimizon koh\u00ebn e qarkullimit pa dijeni t\u00eb njohur<br \/>\np\u00ebr koh\u00ebn e ekzekutimit t\u00eb detyr\u00ebs?<br \/>\nSh\u00ebnim: m\u00ebsojm\u00eb nga ngjarjet e m\u00ebparshme<\/u><\/p>\n<p>Rradha MLFQ \u00ebsht\u00eb nj\u00eb shembull i shk\u00eblqyer i nj\u00eb sistemi q\u00eb m\u00ebson nga<\/p>\n<p>ngjarjet e kaluara p\u00ebr t\u00eb parashikuar t\u00eb ardhmen. Qasje t\u00eb tilla shpesh<br \/>\nshfaqen n\u00eb OS (dhe shum\u00eb industri t\u00eb tjera n\u00eb Informatik\u00eb, duke p\u00ebrfshir\u00eb deg\u00ebt<br \/>\ne parashikimeve n\u00eb harduer dhe algoritmet e zbatimit). Qasje t\u00eb tilla<br \/>\njan\u00eb efektive, kur detyrat kan\u00eb faza sjelljeje dhe k\u00ebshtu jan\u00eb t\u00eb parashikueshme.<br \/>\naktivohet kur detyrat kan\u00eb faza t\u00eb sjelljes dhe k\u00ebshtu jan\u00eb t\u00eb parashikueshme.<br \/>\nMegjithat\u00eb, me k\u00ebt\u00eb teknik\u00eb duhet t\u00eb jemi t\u00eb kujdessh\u00ebm, sepse parashikimet jan\u00eb shum\u00eb leht\u00eb<br \/>\nmund t\u00eb jen\u00eb t\u00eb gabuara dhe t\u00eb \u00e7ojn\u00eb sistemin n\u00eb marrjen e vendimeve m\u00eb t\u00eb k\u00ebqija se sa<br \/>\ndo t\u00eb ishin pa njohuri fare.<\/p>\n<h3>MLFQ: Rregullat Baz\u00eb<\/h3>\n<p>Le t\u00eb shqyrtimi rregullat baz\u00eb t\u00eb algoritmit MLFQ. Edhe pse ekzistojn\u00eb disa implementime t\u00eb k\u00ebtij algoritmi<br \/>\nqasje themelore jan\u00eb t\u00eb ngjashme.<br \/>\nN\u00eb implementimin q\u00eb ne do t\u00eb shqyrtojm\u00eb, n\u00eb MLFQ do t\u00eb ket\u00eb disa<br \/>\nradh\u00eb t\u00eb ve\u00e7anta, secila prej t\u00eb cilave do t\u00eb ket\u00eb p\u00ebrpar\u00ebsi t\u00eb ndryshme. N\u00eb \u00e7do koh\u00eb,<br \/>\ndetyra, e gatshme p\u00ebr ekzekutim ndodhet n\u00eb nj\u00eb radh\u00eb. MLFQ p\u00ebrdor prioritetet,<br \/>\np\u00ebr t\u00eb vendosur se cila detyr\u00eb do t\u00eb ekzekutohet, dmth. detyra me prioritet m\u00eb t\u00eb lart\u00eb<br \/>\n(detyra nga radh\u00eb me prioritet m\u00eb t\u00eb lart\u00eb) do t\u00eb ekzekutohet n\u00eb radh\u00eb t\u00eb par\u00eb.<br \/>\nPa dyshim, n\u00eb nj\u00eb radhe t\u00eb caktuar mund t\u00eb ket\u00eb m\u00eb shum\u00eb se nj\u00eb detyr\u00eb, k\u00ebshtu<br \/>\nq\u00eb ato do t\u00eb ken\u00eb t\u00eb nj\u00ebjtin prioritet. N\u00eb k\u00ebt\u00eb rast do t\u00eb p\u00ebrdoret mekanizmi<br \/>\nRR p\u00ebr planifikimin e ekzekutimit mes k\u00ebtyre detyrave.<br \/>\nK\u00ebshtu arrijm\u00eb n\u00eb dy rregulla themelore p\u00ebr MLFQ:<br \/>\nRregulli1: N\u00ebse prioriteti(A) &gt; Prioriteti(B), do t\u00eb ekzekutohet detyra A (B nuk do t\u00eb ekzekutohet)<\/p>\n<ul>\n<li> Rregulli2: N\u00ebse prioriteti(A) = Prioriteti(B), A dhe B ekzekutohen duke p\u00ebrdorur RR<\/li>\n<li> Duke u bazuar n\u00eb t\u00eb m\u00ebsip\u00ebrmet, element\u00ebt kryesor\u00eb p\u00ebr planifikimin MLFQ<\/li>\n<\/ul>\n<p>jan\u00eb prioritetet. N\u00eb vend q\u00eb t\u00eb caktoj\u00eb nj\u00eb prioritet t\u00eb fiksuar p\u00ebr \u00e7do<br \/>\ndetyr\u00eb, MLFQ e ndryshon prioritetin e saj n\u00eb var\u00ebsi t\u00eb sjelljes s\u00eb v\u00ebzhguar.<br \/>\nP\u00ebr shembull, n\u00ebse nj\u00eb detyr\u00eb vazhdimisht bllokon pun\u00ebn n\u00eb CPU duke pritur input nga klaviatura,<br \/>\nMLFQ do t\u00eb mbaj\u00eb prioritetin e procesit n\u00eb nj\u00eb nivel t\u00eb lart\u00eb, sepse k\u00ebshtu<br \/>\nduhet t\u00eb funksionoj\u00eb nj\u00eb proces interaktiv. N\u00ebse nga ana tjet\u00ebr nj\u00eb detyr\u00eb p\u00ebrdor vazhdimisht dhe<br \/>\nintensivisht CPU p\u00ebr nj\u00eb periudh\u00eb t\u00eb gjat\u00eb, MLFQ do t\u00eb ul\u00eb prioritetin e saj.<br \/>\nK\u00ebshtu, MLFQ do t\u00eb studioj\u00eb sjelljen e proceseve gjat\u00eb pun\u00ebs s\u00eb tyre<br \/>\ndhe do t\u00eb shfryt\u00ebzoj\u00eb sjelljet.<br \/>\nLe t\u00eb vizatojm\u00eb nj\u00eb shembull se si mund t\u00eb duken radh\u00ebt n\u00eb nj\u00eb moment t\u00eb caktuar<br \/>\nt\u00eb koh\u00ebs dhe at\u00ebher\u00eb do t\u00eb rezultoj\u00eb di\u00e7ka si kjo:<br \/>\nN\u00eb k\u00ebt\u00eb skem\u00eb, 2 procese A dhe B ndodhen n\u00eb radh\u00ebn me prioritetin m\u00eb t\u00eb lart\u00eb. Procesi<br \/>\n<img decoding=\"async\" alt=\"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 5: Planifikimi: Radh\u00eb Multi-Niveli Feedback (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/3598e9ca43a56049625bdcf3074de472.png\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>C ndodhet diku n\u00eb mes, nd\u00ebrsa procesi D n\u00eb fund t\u00eb radh\u00ebs. Sipas p\u00ebrshkrimeve t\u00eb sip\u00ebrme<br \/>\nt\u00eb algoritmit MLFQ, planifikuesi do t\u00eb ekzekutoj\u00eb vet\u00ebm detyrat me prioritetin m\u00eb t\u00eb lart\u00eb.<br \/>\np\u00ebrshkrimeve t\u00eb algoritmit MLFQ, planifikuesi do t\u00eb ekzekutoj\u00eb detyrat vet\u00ebm me prioritetin m\u00eb t\u00eb lart\u00eb.<br \/>\nprioriteti sipas RR, dhe detyrat C, D do t\u00eb jen\u00eb jasht\u00eb loje.<br \/>\nNatyrisht, nj\u00eb snapshot statik nuk do t\u00eb jap\u00eb nj\u00eb pamje t\u00eb plot\u00eb t\u00eb m\u00ebnyr\u00ebs se si funksionon MLFQ.<br \/>\n\u00cbsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb kuptojm\u00eb se si nd\u00ebrron pamja me kalimin e koh\u00ebs.<\/p>\n<h4>P\u00ebrpjekja 1: Si t\u00eb ndryshosh prioritetin<\/h4>\n<p>N\u00eb k\u00ebt\u00eb moment, \u00ebsht\u00eb e nevojshme t\u00eb p\u00ebrcaktohet se si MLFQ do t\u00eb ndryshoj\u00eb nivelin e prioritetit<br \/>\nt\u00eb detyrave (dhe k\u00ebshtu pozita e detyr\u00ebs n\u00eb radh\u00eb) gjat\u00eb trajtimit t\u00eb saj. P\u00ebr<br \/>\nk\u00ebt\u00eb, \u00ebsht\u00eb e nevojshme t\u00eb kemi parasysh procesin e pun\u00ebs: nj\u00eb num\u00ebr<br \/>\ndetyrash interaktive me koh\u00eb t\u00eb shkurt\u00ebr punimi (dhe k\u00ebshtu lirimin e shpesht\u00eb<br \/>\nt\u00eb CPU) dhe disa detyra t\u00eb gjata, t\u00eb cilat p\u00ebrdorin CPU gjat\u00eb gjith\u00eb koh\u00ebs s\u00eb pun\u00ebs, nd\u00ebrkoh\u00eb<br \/>\nkoha e p\u00ebrgjigjes p\u00ebr k\u00ebto detyra nuk ka r\u00ebnd\u00ebsi. Dhe k\u00ebshtu mund t\u00eb b\u00ebhet p\u00ebrpjekja e par\u00eb<br \/>\np\u00ebr t\u00eb implementuar algoritmin MLFQ me rregullat e m\u00ebposhtme:<\/p>\n<ul>\n<li> Rregulli 3: Kur nj\u00eb detyr\u00eb hyn n\u00eb sistem, ajo vendoset n\u00eb radhen me prioritetin m\u00eb t\u00eb lart\u00eb.<\/li>\n<li>Rregulli 4a: N\u00ebse detyra p\u00ebrdor t\u00eb gjith\u00eb dritaren e saj t\u00eb caktuar kohore, at\u00ebher\u00eb prioriteti i saj<\/li>\n<li>ulet.<\/li>\n<li>Rregulli 4b: N\u00ebse detyra lirson CPU p\u00ebrpara se t\u00eb p\u00ebrfundoj\u00eb dritarja e saj kohore, at\u00ebher\u00eb ajo<\/li>\n<li>q\u00ebndron me prioritetin e saj t\u00eb m\u00ebparsh\u00ebm.<\/li>\n<li>Shembulli 1: Nj\u00eb detyr\u00eb e gjat\u00eb q\u00eb punon vazhdimisht<\/li>\n<\/ul>\n<p><b>Si\u00e7 shihet n\u00eb k\u00ebt\u00eb shembull, detyra, kur hyn, vendoset me prioritetin m\u00eb t\u00eb lart\u00eb.<\/b><\/p>\n<p>Pas nj\u00eb dritareje kohe prej 10ms, procesi ulet n\u00eb prioritet nga planifikuesi.<br \/>\nPas dritares s\u00eb ardhshme t\u00eb koh\u00ebs, detyra, p\u00ebrfundimisht, ulet n\u00eb<br \/>\nprioritetin m\u00eb t\u00eb ul\u00ebt n\u00eb sistem, ku dhe mbetet.<br \/>\nShembulli 2: Shtimi i nj\u00eb detyre t\u00eb shkurt\u00ebr<br \/>\n<img decoding=\"async\" alt=\"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 5: Planifikimi: Radh\u00eb Multi-Niveli Feedback (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/9b4ee6de03aa92d7957d50b4ffa73949.png\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p><b>Tani t\u00eb shohim nj\u00eb shembull se si MLFQ do t\u00eb p\u00ebrpiqet t\u00eb afroj\u00eb SJF. N\u00eb k\u00ebt\u00eb<\/b><\/p>\n<p>shembull, ka dy detyra: A, e cila \u00ebsht\u00eb nj\u00eb detyr\u00eb e gjat\u00eb q\u00eb<br \/>\np\u00ebrdor vazhdimisht CPU dhe B, e cila \u00ebsht\u00eb nj\u00eb detyr\u00eb e shkurt\u00ebr interaktive. Le t\u00eb supozojm\u00eb<br \/>\nse A ka punuar p\u00ebr nj\u00eb koh\u00eb t\u00eb caktuar n\u00eb momentin q\u00eb ka ardhur detyra B.<br \/>\nN\u00eb k\u00ebt\u00eb grafik shihen rezultatet e skenarit. Detyra A, si \u00e7do detyr\u00eb,<br \/>\n<img decoding=\"async\" alt=\"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 5: Planifikimi: Radh\u00eb Multi-Niveli Feedback (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/19c299b0519585fd1076a341a71f048b.png\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>q\u00eb p\u00ebrdor CPU del n\u00eb fund t\u00eb list\u00ebs. Detyra B do t\u00eb mb\u00ebrrij\u00eb n\u00eb T=100 dhe do t\u00eb<br \/>\nvendoset n\u00eb radhen me prioritetin m\u00eb t\u00eb lart\u00eb. Duke qen\u00eb se koha e saj e pun\u00ebs \u00ebsht\u00eb e shkurt\u00ebr, ajo<br \/>\ndo t\u00eb p\u00ebrfundoj\u00eb p\u00ebrpara se t\u00eb arrij\u00eb n\u00eb radhen e fundit.<br \/>\nNga ky shembull, duhet kuptuar q\u00ebllimi kryesor i algoritmit: p\u00ebrderisa algoritmi nuk<\/p>\n<p>di n\u00ebse nj\u00eb detyr\u00eb \u00ebsht\u00eb e gjat\u00eb apo e shkurt\u00ebr, n\u00eb radh\u00eb t\u00eb par\u00eb ai supozon se detyra<br \/>\ndo t\u00eb jet\u00eb<br \/>\ne shkurt\u00ebr dhe i jep prioritetin m\u00eb t\u00eb lart\u00eb. N\u00ebse \u00ebsht\u00eb v\u00ebrtet nj\u00eb detyr\u00eb e shkurt\u00ebr, at\u00ebher\u00eb<br \/>\najo do t\u00eb kryhet shpejt, p\u00ebrndryshe, n\u00ebse \u00ebsht\u00eb nj\u00eb detyr\u00eb e gjat\u00eb, do t\u00eb ec\u00eb ngadal\u00eb<br \/>\nn\u00eb prioritetin e posht\u00ebm dhe s\u00eb shpejti do t\u00eb tregoj\u00eb se v\u00ebrtet \u00ebsht\u00eb nj\u00eb detyr\u00eb e gjat\u00eb q\u00eb nuk<br \/>\nk\u00ebrkon p\u00ebrgjigje.<\/p>\n<p><b>Shembulli 3: \u00c7far\u00eb ndodhi me hyrjen-daljen?<\/b><\/p>\n<p>Tani shikojm\u00eb nj\u00eb shembull me hyrjen-daljen. Si\u00e7 \u00ebsht\u00eb th\u00ebn\u00eb n\u00eb rregullin 4b,<br \/>\nn\u00ebse procesi liridon procesorin, pa shfryt\u00ebzuar plot\u00ebsisht koh\u00ebn e tij t\u00eb procesorit,<br \/>\nat\u00ebher\u00eb ai mbetet n\u00eb nivelin e tij t\u00eb m\u00ebparsh\u00ebm t\u00eb prioriteteve. Q\u00ebllimi i k\u00ebtij rregulli \u00ebsht\u00eb mjaft e thjesht\u00eb<br \/>\n- n\u00ebse nj\u00eb detyr\u00eb interaktive kryen shum\u00eb operacione hyrjeje-daljeje, p\u00ebr shembull, duke pritur<br \/>\nnga p\u00ebrdoruesi t\u00eb shtyp\u00eb \u00e7el\u00ebsat ose miun, nj\u00eb detyr\u00eb e till\u00eb do t\u00eb liroj\u00eb procesorin<br \/>\nm\u00eb her\u00ebt nga koha e caktuar. Ne nuk do t\u00eb donim ta ulte at\u00eb detyr\u00eb n\u00eb prioritet,<br \/>\ndhe k\u00ebshtu ajo do t\u00eb mbetet n\u00eb nivelin e saj t\u00eb m\u00ebparsh\u00ebm.<br \/>\n<img decoding=\"async\" alt=\"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 5: Planifikimi: Radh\u00eb Multi-Niveli Feedback (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/480d33a670fb62a639e5938dd59e30a1.png\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>Ky shembull tregon se si do t\u00eb funksionoj\u00eb algoritmi me k\u00ebto procese - detyr\u00ebn interaktive B, e cila ka nevoj\u00eb p\u00ebr CPU vet\u00ebm p\u00ebr 1ms para se t\u00eb kryej\u00eb<br \/>\nprocesin e hyrjes-daljes dhe detyr\u00ebn e gjat\u00eb A, e cila shfryt\u00ebzon t\u00eb gjith\u00eb koh\u00ebn e saj n\u00eb CPU.<br \/>\nMLFQ mban procesin B me prioritetin m\u00eb t\u00eb lart\u00eb, pasi ai vazhdimisht<br \/>\nliron CPU. N\u00ebse B \u00ebsht\u00eb nj\u00eb detyr\u00eb interaktive, at\u00ebher\u00eb algoritmi n\u00eb k\u00ebt\u00eb rast ka arritur<br \/>\nq\u00ebllimin e tij p\u00ebr t\u00eb ekzekutuar shpejt detyrat interaktive.<\/p>\n<p><b>Problemet me algoritmin aktual MLFQ<\/b><\/p>\n<p>N\u00eb shembujt e m\u00ebparsh\u00ebm kemi nd\u00ebrtuar nj\u00eb version bazik t\u00eb MLFQ. Dhe duket se ai<br \/>\ne b\u00ebn pun\u00ebn e tij mir\u00eb dhe me ndershm\u00ebri, duke ndar\u00eb koh\u00ebn e procesorit me ndershm\u00ebri mes<br \/>\ndetyrave t\u00eb gjata dhe duke lejuar detyrat e shkurtra ose ato q\u00eb k\u00ebrkojn\u00eb shum\u00eb hyrje-dalje<br \/>\nt\u00eb punojn\u00eb shpejt. Fatkeq\u00ebsisht, kjo qasje ka disa<br \/>\nprobleme t\u00eb r\u00ebnda.<br \/>\n<b>S\u00eb pari<\/b>, problemi i uris\u00eb: n\u00ebse n\u00eb sistem ka shum\u00eb<br \/>\ndetyra interaktive, ato do t\u00eb konsumojn\u00eb t\u00eb gjith\u00eb koh\u00ebn e procesorit dhe k\u00ebshtu asnj\u00eb detyr\u00eb e gjat\u00eb<br \/>\nnuk do t\u00eb ket\u00eb mund\u00ebsi t\u00eb ekzekutohet (ato jan\u00eb n\u00eb uri).<\/p>\n<p><b>S\u00eb dyti<\/b>, p\u00ebrdoruesit e zgjuar mund t\u00eb shkruajn\u00eb programet e tyre n\u00eb m\u00ebnyr\u00eb q\u00eb<br \/>\nt\u00eb mashtronin planifikuesin. Mashtrimi q\u00ebndron n\u00eb b\u00ebrjen e di\u00e7kaje q\u00eb t\u00eb detyroj\u00eb<br \/>\nplanifikuesin t\u00eb jap\u00eb m\u00eb shum\u00eb koh\u00eb procesor p\u00ebr procesin.<br \/>\np\u00ebrshkruar m\u00eb sip\u00ebr \u00ebsht\u00eb krejt\u00ebsisht i ndjesh\u00ebm ndaj sulmeve t\u00eb tilla: para se t\u00eb skadoj\u00eb koha praktike<br \/>\nduhet t\u00eb kryhet operacioni i hyrjes dhe daljes (me ndonj\u00eb, pa r\u00ebnd\u00ebsi se cilin skedar)<br \/>\ndhe k\u00ebshtu t\u00eb \u00e7lirohet CPU. Nj\u00eb sjellje e till\u00eb do t\u00eb lejoj\u00eb q\u00eb t\u00eb mbetet n\u00eb t\u00eb nj\u00ebjt\u00ebn<br \/>\nradh\u00eb dhe p\u00ebrs\u00ebri t\u00eb marr\u00eb nj\u00eb p\u00ebrqindje m\u00eb t\u00eb madhe t\u00eb koh\u00ebs s\u00eb procesorit. N\u00ebse e b\u00ebn<br \/>\nk\u00ebto drejt\u00eb (p\u00ebr shembull, t\u00eb ekzekutohet 99% t\u00eb koh\u00ebs s\u00eb dritares para se t\u00eb \u00e7lirohet CPU),<br \/>\nkjo detyr\u00eb p\u00ebrfundimisht mund t\u00eb monopolizoj\u00eb procesorin.<\/p>\n<p>S\u00eb fundi, programa mund t\u00eb ndryshoj\u00eb sjelljen e saj me kalimin e koh\u00ebs. At\u00ebher\u00eb detyrat,<br \/>\nt\u00eb cilat p\u00ebrdor\u00ebn CPU, mund t\u00eb b\u00ebhen interaktive. N\u00eb shembullin ton\u00eb, t\u00eb tilla<br \/>\ndetyra nuk do t\u00eb marrin trajtim t\u00eb duhur nga planifikuesi, p\u00ebr shkak se do t\u00eb merrnin t\u00eb tjera<br \/>\n(fillestare) detyra interaktive.<\/p>\n<p><u>Pyetja p\u00ebr sall\u00ebn: cilat sulme ndaj planifikuesit mund t\u00eb b\u00ebheshin n\u00eb bot\u00ebn moderne?<br \/>\n<\/u><\/p>\n<h4>P\u00ebrpjekja 2: Rritja e prioritetit<\/h4>\n<p>T\u00eb provojm\u00eb t\u00eb ndryshojm\u00eb rregullat dhe t\u00eb shohim n\u00ebse do t\u00eb arrijm\u00eb t\u00eb shmangim problemet me<br \/>\nuriturjen. \u00c7far\u00eb mund t\u00eb b\u00ebjm\u00eb p\u00ebr t\u00eb garantuar q\u00eb detyrat e<br \/>\nCPU t\u00eb marrin koh\u00ebn e tyre (edhe n\u00ebse nuk \u00ebsht\u00eb e gjat\u00eb).<br \/>\nSi nj\u00eb zgjidhje e thjesht\u00eb p\u00ebr problemin, mund t\u00eb propozojm\u00eb q\u00eb her\u00eb pas here<br \/>\nt\u00eb rrisim prioritetin e t\u00eb gjitha k\u00ebtyre detyrave n\u00eb sistem. Ekzistojn\u00eb shum\u00eb m\u00ebnyra<br \/>\np\u00ebr ta arritur k\u00ebt\u00eb, le t\u00eb p\u00ebrpiqemi t\u00eb zbatojm\u00eb si nj\u00eb shembull di\u00e7ka t\u00eb thjesht\u00eb: ta kthejm\u00eb<br \/>\nmenj\u00ebher\u00eb t\u00eb gjith\u00eb detyrat n\u00eb prioritetin m\u00eb t\u00eb lart\u00eb, prandaj rregulli i ri:<\/p>\n<ul>\n<li><b>Rregulli 5<\/b>: Pas kalimit t\u00eb nj\u00eb periudhe S, t\u00eb gjith\u00eb detyrat n\u00eb sistem t\u00eb kalojn\u00eb n\u00eb radh\u00ebn m\u00eb t\u00eb lart\u00eb.<\/li>\n<\/ul>\n<p>Rregulli yn\u00eb i ri zgjidh dy probleme nj\u00ebkoh\u00ebsisht. S\u00eb pari, proceset<br \/>\ngarantojn\u00eb se nuk urit\u00ebn: detyrat q\u00eb jan\u00eb n\u00eb radh\u00eb m\u00eb t\u00eb lart\u00eb do t\u00eb ndaj\u00eb<br \/>\nkoh\u00ebn e procesorit sipas algoritmit RR dhe k\u00ebshtu t\u00eb gjitha proceset do t\u00eb marrin<br \/>\nkoh\u00ebn e procesorit. S\u00eb dyti, n\u00ebse ndonj\u00eb proces, i cili m\u00eb par\u00eb p\u00ebrdorte<br \/>\nvet\u00ebm procesorin, b\u00ebhet interaktiv, ai do t\u00eb mbetet n\u00eb radh\u00ebn me prioritet m\u00eb t\u00eb lart\u00eb<br \/>\npas q\u00eb ka marr\u00eb nj\u00eb her\u00eb rritjen e prioritetit deri n\u00eb maksimum.<br \/>\nLe t\u00eb shqyrtojm\u00eb nj\u00eb shembull. N\u00eb k\u00ebt\u00eb skenar, le t\u00eb shqyrtojm\u00eb nj\u00eb proces q\u00eb p\u00ebrdor<br \/>\n<img decoding=\"async\" alt=\"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 5: Planifikimi: Radh\u00eb Multi-Niveli Feedback (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/3b8d879ab4479622684b126ec5af6af3.png\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>CPU dhe dy procese interaktive t\u00eb shkurtra. N\u00eb an\u00ebn e majt\u00eb t\u00eb figur\u00ebs, figura tregon sjelljen pa rritje t\u00eb prioritetit, k\u00ebshtu q\u00eb nj\u00eb detyr\u00eb e gjat\u00eb fillon t\u00eb urdh\u00ebrohet pas mb\u00ebrritjes n\u00eb sistem t\u00eb dy detyrave interaktive. N\u00eb figur\u00ebn e djatht\u00eb, \u00e7do 50ms ndodh nj\u00eb rritje e prioritetit dhe k\u00ebshtu t\u00eb gjitha proceset sigurojn\u00eb koh\u00eb p\u00ebr procesorin dhe do t\u00eb fillojn\u00eb periodikisht. 50ms n\u00eb k\u00ebt\u00eb rast \u00ebsht\u00eb marr\u00eb p\u00ebr shembull, realisht ky num\u00ebr \u00ebsht\u00eb pak m\u00eb i madh.<br \/>\nE dukshme \u00ebsht\u00eb se shtimi i koh\u00ebs periodike t\u00eb rritjes S sjell<br \/>\n\u00e7\u00ebshtjen e ligjshme: \u00e7far\u00eb vlere duhet t\u00eb vendoset? Nj\u00eb nga inxhinier\u00ebt e njohur<br \/>\nsistemor John Ousterhout e quante k\u00ebto vlera n\u00eb sisteme si voo-doo<br \/>\nkonstante, pasi ato n\u00eb nj\u00eb far\u00eb m\u00ebnyre k\u00ebrkonin magji t\u00eb zez\u00eb p\u00ebr rregullimin e sakt\u00eb.<br \/>\nDhe fatkeq\u00ebsisht S ka nj\u00eb arom\u00eb t\u00eb till\u00eb. N\u00ebse vendosim vler\u00ebn shum\u00eb<br \/>\nt\u00eb lart\u00eb \u2014 detyrat e gjata do t\u00eb fillojn\u00eb t\u00eb urdh\u00ebrohen. Nd\u00ebrsa n\u00ebse vendosim nj\u00eb vler\u00eb shum\u00eb t\u00eb ul\u00ebt,<br \/>\ndetyrat interaktive nuk do t\u00eb marrin koh\u00ebn e duhur p\u00ebr procesorin.<\/p>\n<h4>P\u00ebrpjekja 3: Rregjistrimi m\u00eb i mir\u00eb<\/h4>\n<p>Tani kemi nj\u00eb problem tjet\u00ebr q\u00eb duhet t\u00eb zgjidhim: si t\u00eb mos<br \/>\nlejojm\u00eb q\u00eb planifikuesi yn\u00eb t\u00eb mashtrohet? Fajtor\u00ebt p\u00ebr k\u00ebt\u00eb mund\u00ebsi jan\u00eb<br \/>\nrregullat 4a, 4b, t\u00eb cilat lejojn\u00eb q\u00eb detyra t\u00eb ruaj\u00eb prioritet, duke \u00e7liruar procesorin<br \/>\nderi n\u00eb skadimin e koh\u00ebs s\u00eb ndar\u00eb. Si t\u00eb p\u00ebrballojm\u00eb me k\u00ebt\u00eb?<br \/>\nZgjidhja n\u00eb k\u00ebt\u00eb rast mund t\u00eb konsiderohet si regjistrimi m\u00eb i mir\u00eb i koh\u00ebs CPU n\u00eb \u00e7do<br \/>\nniveli MLFQ. N\u00eb vend q\u00eb t\u00eb harrohet koha e p\u00ebrdorur nga programa<br \/>\np\u00ebr procesorin gjat\u00eb intervalit t\u00eb caktuar, duhet t\u00eb merret parasysh dhe t\u00eb ruhet. Pasi q\u00eb<br \/>\nprocesi t\u00eb ket\u00eb shpenzuar koh\u00ebn e tij t\u00eb ndar\u00eb, duhet t\u00eb ulet n\u00eb nivelin e ardhsh\u00ebm<br \/>\nt\u00eb prioritetit. Tani nuk ka r\u00ebnd\u00ebsi si do ta p\u00ebrdor\u00eb procesi koh\u00ebn e tij \u2014 si<br \/>\nduke llogaritur vazhdimisht n\u00eb procesor ose si nj\u00eb shum\u00eb thirrjesh. K\u00ebshtu,<br \/>\nrregulli 4 duhet t\u00eb riformulohet n\u00eb form\u00ebn e m\u00ebposhtme:<\/p>\n<ul>\n<li><b>Rregulli 4<\/b>: Pas shpenzimit t\u00eb koh\u00ebs s\u00eb ndar\u00eb n\u00eb radh\u00ebn aktuale (pavar\u00ebsisht nga numri i her\u00ebve q\u00eb ka \u00e7liruar CPU) prioriteti i atij procesi ulet (ai l\u00ebviz posht\u00eb n\u00eb radh\u00eb).<\/li>\n<\/ul>\n<p>Le t\u00eb shohim nj\u00eb shembuj:<br \/>\n<img decoding=\"async\" alt=\"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 5: Planifikimi: Radh\u00eb Multi-Niveli Feedback (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/18c53e62b9b342d14a23995bd422ef5e.png\" style=\"display:block;margin: 0 auto;\">&#187;<\/p>\n<p>N\u00eb figur\u00eb \u00ebsht\u00eb treguar se \u00e7far\u00eb ndodh n\u00ebse p\u00ebrpiqet t\u00eb mashtrohet planifikuesi, si<br \/>\nn\u00ebse do t\u00eb ishim me rregullat e m\u00ebparshme 4a, 4b do t\u00eb rezultonte rezultati n\u00eb t\u00eb majt\u00eb. Me rregullin e ri \u2014 rezultati n\u00eb t\u00eb djatht\u00eb. Deri n\u00eb mbrojtje, \u00e7do proces mund t\u00eb shkaktoj\u00eb I\/O deri n\u00eb p\u00ebrfundim dhe<br \/>\nn\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb t\u00eb dominoj\u00eb mbi CPU, pas aktivizimit t\u00eb mbrojtjes, pavar\u00ebsisht nga sjellja e I\/O, ai do t\u00eb zbres\u00eb gjithsesi n\u00eb radh\u00eb posht\u00eb dhe k\u00ebshtu nuk do t\u00eb mund t\u00eb kap\u00eb padrejt\u00ebsisht<br \/>\nburimet e CPU-s\u00eb.<br \/>\nP\u00ebrmir\u00ebsimi i MLFQ dhe probleme t\u00eb tjera<br \/>\nMe p\u00ebrmir\u00ebsimet e m\u00ebsip\u00ebrme kan\u00eb lindur probleme t\u00eb reja: nj\u00eb nga pyetjet kryesore \u00ebsht\u00eb si t\u00eb parametrizohet nj\u00eb planifikues i till\u00eb? Pra, sa duhen<\/p>\n<h4>ranga? Cili duhet t\u00eb jet\u00eb p\u00ebrmasat e dritares s\u00eb pun\u00ebs s\u00eb programit brenda rangut? Sa<\/h4>\n<p>shpesh duhet t\u00eb rritet prioriteti i programit p\u00ebr t\u00eb shmangur urin\u00eb dhe<br \/>\nt\u00eb marr\u00eb parasysh ndryshimin e sjelljes s\u00eb programit? P\u00ebr k\u00ebto pyetje, nuk ka nj\u00eb p\u00ebrgjigje t\u00eb thjesht\u00eb dhe vet\u00ebm eksperimentet me ngarkesa dhe konfigurimi i m\u00ebpassh\u00ebm<br \/>\ni planifikuesit mund t\u00eb \u00e7oj\u00eb n\u00eb nj\u00eb balancim t\u00eb k\u00ebnaqsh\u00ebm.<br \/>\nP\u00ebr shembull, shumica e realizimeve t\u00eb MLFQ lejojn\u00eb caktimin e intervaleve t\u00eb ndryshme<br \/>\nt\u00eb koh\u00ebs p\u00ebr rangje t\u00eb ndryshme. Rangjeve me prioritet t\u00eb lart\u00eb zakonisht<br \/>\nu caktuan intervale t\u00eb shkurtra. K\u00ebto rangje p\u00ebrb\u00ebhen nga detyra interaktive,<br \/>\nnd\u00ebrk\u00ebmbimi i t\u00eb cilave \u00ebsht\u00eb mjaft i ndjesh\u00ebm dhe duhet t\u00eb zgjas\u00eb 10 ose m\u00eb pak<\/p>\n<p>ms. Nd\u00ebrsa rangjet me prioritet t\u00eb ul\u00ebt p\u00ebrb\u00ebhen nga detyra t\u00eb gjata q\u00eb p\u00ebrdorin<br \/>\nCPU. Dhe n\u00eb k\u00ebt\u00eb rast, intervalet e gjata t\u00eb koh\u00ebs jan\u00eb shum\u00eb t\u00eb p\u00ebrshtatshme (100ms).<br \/>\nN\u00eb k\u00ebt\u00eb shembull ka 2 detyra, t\u00eb cilat punuan n\u00eb rangun me prioritet t\u00eb lart\u00eb p\u00ebr 20<br \/>\nms, t\u00eb ndara n\u00eb dritare prej 10ms. 40ms n\u00eb rangun e mes\u00ebm (dritare n\u00eb 20ms) dhe n\u00eb rangun me prioritet t\u00eb ul\u00ebt<br \/>\nintervali u b\u00eb 40ms, ku detyrat e p\u00ebrfunduan pun\u00ebn e tyre.<br \/>\nRealizimi i MLFQ n\u00eb OS Solaris \u2014 nj\u00eb klas\u00eb planifikuesish q\u00eb ndajn\u00eb me koh\u00eb.<br \/>\n<img decoding=\"async\" alt=\"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 5: Planifikimi: Radh\u00eb Multi-Niveli Feedback (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/4eb6c6669034adeb1615c29454fbb1dc.png\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>Planifikuesi ofron nj\u00eb set tabelash, t\u00eb cilat p\u00ebrcaktojn\u00eb sakt\u00ebsisht se si duhet<br \/>\nt\u00eb p\u00ebrputhen prioritetet e procesit gjat\u00eb gjith\u00eb jet\u00ebs s\u00eb tij, cili duhet t\u00eb jet\u00eb p\u00ebrmasat<br \/>\ne dritares ndar\u00ebse dhe sa shpesh duhet t\u00eb rriten prioritetet e detyr\u00ebs. Administrator<\/p>\n<p>i sistemit mund t\u00eb nd\u00ebrveproj\u00eb me k\u00ebt\u00eb tabel\u00eb dhe ta b\u00ebj\u00eb planifikuesin t\u00eb sillet<br \/>\nndryshe. N\u00eb m\u00ebnyr\u00eb t\u00eb parazgjedhur n\u00eb k\u00ebt\u00eb tabel\u00eb ka 60 rangje me rritje graduale<br \/>\nt\u00eb p\u00ebrmasave t\u00eb dritares nga 20ms (prioritet i lart\u00eb) deri n\u00eb disa qindra ms (prioritet i ul\u00ebt), dhe<br \/>\nt\u00eb dritares s\u00eb alokimit dhe sa shpesh duhet t\u00eb rriten prioritetet e detyrave. Administratori<br \/>\ni sistemit mund t\u00eb nd\u00ebrveproj\u00eb me k\u00ebt\u00eb tabel\u00eb dhe t\u00eb b\u00ebj\u00eb q\u00eb planifikuesi t\u00eb sillet<br \/>\nndryshe. P\u00ebr default, n\u00eb k\u00ebt\u00eb tabel\u00eb ka 60 radh\u00eb me rritje t\u00eb gradualshme<br \/>\nt\u00eb madh\u00ebsis\u00eb s\u00eb dritares nga 20ms (prioritet i lart\u00eb) deri n\u00eb disa qindra ms (prioritet i ul\u00ebt), dhe<br \/>\npo gjithashtu me nj\u00eb p\u00ebrmir\u00ebsim t\u00eb gjitha detyrave \u00e7do sekond\u00eb.<\/p>\n<p>Planifikuesit e tjer\u00eb MLFQ nuk p\u00ebrdorin tabela ose ndonj\u00eb rregull t\u00eb ve\u00e7ant\u00eb<br \/>\nt\u00eb cilat jan\u00eb p\u00ebrshkruar n\u00eb k\u00ebt\u00eb leksion, p\u00ebrkundrazi ata llogarisin prioritetet duke p\u00ebrdorur<br \/>\nformula matematike. P\u00ebr shembull, planifikuesi n\u00eb FreeBSD p\u00ebrdor nj\u00eb formul\u00eb p\u00ebr<br \/>\nt\u00eb llogaritur prioritetin aktual t\u00eb detyr\u00ebs, duke u bazuar n\u00eb sa CPU<br \/>\nka p\u00ebrdorur procesi. N\u00eb p\u00ebrfundim, p\u00ebrdorimi i CPU me kalimin e koh\u00ebs fillon t\u00eb bjer\u00eb, dhe k\u00ebshtu<br \/>\nrritja e prioritetit ndodh disi ndryshe nga sa \u00ebsht\u00eb p\u00ebrshkruar m\u00eb sip\u00ebr. K\u00ebto jan\u00eb<br \/>\nt\u00eb ashtuquajturat algoritme t\u00eb zvet\u00ebnimit. Q\u00eb nga versioni 7.1, n\u00eb FreeBSD p\u00ebrdoret planifikuesi ULE.<\/p>\n<p>S\u00eb fundmi, shum\u00eb planifikues kan\u00eb karakteristika t\u00eb tjera. P\u00ebr shembull, disa<br \/>\nplanifikues rezervojn\u00eb nivelet m\u00eb t\u00eb larta p\u00ebr funksionimin e sistemit operativ dhe k\u00ebshtu,<br \/>\nasnj\u00eb proces i p\u00ebrdoruesit nuk do t\u00eb jet\u00eb n\u00eb gjendje t\u00eb marr\u00eb prioritetin m\u00eb t\u00eb lart\u00eb n\u00eb<br \/>\nsistem. Disa sisteme lejojn\u00eb q\u00eb t\u00eb jepen k\u00ebshilla p\u00ebr t\u00eb ndihmuar<br \/>\nplanifikuesin t\u00eb vendos\u00eb prioritetet si\u00e7 duhet. K\u00ebshtu, p\u00ebr shembull, me ndihm\u00ebn e komand\u00ebs <b>nice<\/b><br \/>\nmund t\u00eb rritet ose ulet prioriteti i detyr\u00ebs dhe k\u00ebshtu t\u00eb rriten ose<br \/>\nulet shanset e programit p\u00ebr koh\u00eb procesori.<\/p>\n<h3>MLFQ: P\u00ebrfundimet<\/h3>\n<p>Ne p\u00ebrshkruam qasjen e planifikimit, e cila quhet MLFQ. Emri i tij<br \/>\nrrjedh nga parimi i funksionimit \u2014 ai ka disa radh\u00eb dhe p\u00ebrdor feedback<br \/>\np\u00ebr t\u00eb p\u00ebrcaktuar prioritetin e detyr\u00ebs.<br \/>\nForma p\u00ebrfundimtare e rregullave do t\u00eb jet\u00eb si m\u00eb posht\u00eb:<\/p>\n<ul>\n<li><b>Rregulli1<\/b>: N\u00ebse prioriteti(A) &gt; Prioriteti(B), do t\u00eb startohet detyra A (B nuk do t\u00eb)<\/li>\n<li><b>Rregulli2<\/b>: N\u00ebse prioriteti(A) = Prioriteti(B), A dhe B startohen duke p\u00ebrdorur RR<\/li>\n<li><b>Rregulli3<\/b>: Kur nj\u00eb detyr\u00eb vjen n\u00eb sistem, ajo vendoset n\u00eb radh\u00ebn me prioritetin m\u00eb t\u00eb lart\u00eb.<\/li>\n<li><b>Rregulli 4<\/b>: Pas shpenzimit t\u00eb koh\u00ebs s\u00eb ndar\u00eb n\u00eb radh\u00ebn aktuale (pavar\u00ebsisht nga numri i her\u00ebve q\u00eb ka \u00e7liruar CPU) prioriteti i atij procesi ulet (ai l\u00ebviz posht\u00eb n\u00eb radh\u00eb).<\/li>\n<li><b>Rregulli 5<\/b>: Pas kalimit t\u00eb nj\u00eb periudhe S, t\u00eb gjith\u00eb detyrat n\u00eb sistem t\u00eb kalojn\u00eb n\u00eb radh\u00ebn m\u00eb t\u00eb lart\u00eb.<\/li>\n<\/ul>\n<p>MLFQ \u00ebsht\u00eb interesante p\u00ebr arsye t\u00eb m\u00ebposhtme \u2014 n\u00eb vend q\u00eb t\u00eb k\u00ebrkoj\u00eb njohuri p\u00ebr<br \/>\nnatyr\u00ebn e detyr\u00ebs p\u00ebrpara, algoritmi studion sjelljen e kaluar t\u00eb detyr\u00ebs dhe cakton<br \/>\nprioritetet n\u00eb p\u00ebrputhje. K\u00ebshtu ai p\u00ebrpiqet t\u00eb arrij\u00eb nj\u00eb balanc\u00eb midis dy an\u00ebve \u2014 p\u00ebr t\u00eb arritur performanc\u00eb p\u00ebr detyra t\u00eb vogla (SJF, STCF) dhe p\u00ebr t\u00eb startuar n\u00eb m\u00ebnyr\u00eb t\u00eb ndershme detyrat e gjata,<br \/>\nt\u00eb ngarkuara me CPU. Prandaj shum\u00eb sisteme, duke p\u00ebrfshir\u00eb BSD dhe derivatet e saj,<br \/>\nSolaris, Windows, Mac p\u00ebrdorin si planifikues nj\u00eb form\u00eb t\u00eb algoritmit<br \/>\nMLFQ si nj\u00eb baz\u00eb themelore.<\/p>\n<h4>Materiale Shtes\u00eb:<\/h4>\n<ol>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/manpages.debian.org\/stretch\/manpages\/sched.7.en.html\">manpages.debian.org\/stretch\/manpages\/sched.7.en.html<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Scheduling_\">en.wikipedia.org\/wiki\/Scheduling_<\/a><\/noindex>(computing)<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/pages.lip6.fr\/Julia.Lawall\/atc18-bouron.pdf\">pages.lip6.fr\/Julia.Lawall\/atc18-bouron.pdf<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.usenix.org\/legacy\/event\/bsdcon03\/tech\/full_papers\/roberson\/roberson.pdf\">www.usenix.org\/legacy\/event\/bsdcon03\/tech\/full_papers\/roberson\/roberson.pdf<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/chebykin.org\/freebsd-process-scheduling\">chebykin.org\/freebsd-process-scheduling<\/a><\/noindex><\/li>\n<\/ol>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/450116\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0425\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439-\u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u2014 OSTEP. \u0412 \u044d\u0442\u043e\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0433\u043b\u0443\u0431\u043e\u043a\u043e \u0440\u0430\u0431\u043e\u0442\u0430 unix-\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u2014 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u043c\u0438, \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430\u043c\u0438, \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u0438 \u043f\u0440\u043e\u0447\u0438\u0438\u043c\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u043c\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u041e\u0421. \u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0432\u0441\u0435\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u043e\u0442 \u0442\u0443\u0442. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":24514,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-32730","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0425\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439-\u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u2014 OSTEP.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-5-planirovanie-multi-level-feedback-queue-perevod\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Operating Systems: Three Easy Pieces. Part 5: \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435: Multi-Level Feedback Queue (\u043f\u0435\u0440\u0435\u0432\u043e\u0434) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0425\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439-\u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u2014 OSTEP.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-5-planirovanie-multi-level-feedback-queue-perevod\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:48:36+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-02-08T09:40:35+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Sistemet Operative: Tre Pjesa t\u00eb Lehta. Shkalla 5: Planifikimi: Radhitja me Kthim t\u00eb Shum\u00ebfisht\u00eb (p\u00ebrkthim) | ProHoster","description":"Hyrje n\u00eb sistemet operative P\u00ebrsh\u00ebndetje, Habr! D\u00ebshiroj t'ju prezantoj nj\u00eb seri artikujsh p\u00ebrkthimi t\u00eb nj\u00eb let\u00ebrsie interesante p\u00ebr mua \u2014 OSTEP.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-5-planirovanie-multi-level-feedback-queue-perevod","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Operating Systems: Three Easy Pieces. Part 5: \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435: Multi-Level Feedback Queue (\u043f\u0435\u0440\u0435\u0432\u043e\u0434) | ProHoster","og:description":"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0425\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439-\u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u2014 OSTEP.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-5-planirovanie-multi-level-feedback-queue-perevod","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:48:36+00:00","article:modified_time":"2021-02-08T09:40:35+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"32730","title":null,"description":"","keywords":"","keyphrases":null,"primary_term":null,"canonical_url":"","og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 12:18:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:53:25","updated":"2026-01-21 12:18:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/32730","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=32730"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/32730\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/24514"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=32730"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=32730"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=32730"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}