{"id":32158,"date":"2019-10-31T21:45:27","date_gmt":"2019-10-31T18:45:27","guid":{"rendered":"https:\/\/prohoster.info\/blog\/operating-systems-three-easy-pieces-part-4-vvedenie-v-planirovshhik-perevod\/"},"modified":"2019-10-31T21:45:27","modified_gmt":"2019-10-31T18:45:27","slug":"operating-systems-three-easy-pieces-part-4-vvedenie-v-planirovshhik-perevod","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-4-vvedenie-v-planirovshhik-perevod","title":{"rendered":"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 4: Hyrje n\u00eb planifikues (p\u00ebrkthim)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h1>Hyrja n\u00eb sistemet operative<\/h1>\n<p>\nP\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>\nPjes\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<\/ul>\n<p>\nDhe 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>Hyrja n\u00eb planifikuesin<\/h2>\n<p>\n<u>Esenca e problemit: Si t\u00eb zhvillohet politika e planifikuesit<br \/>\nSi duhet t\u00eb zhvillohen kornizat themelore t\u00eb politikave t\u00eb planifikuesit? Cilat duhet t\u00eb jen\u00eb supozimet kryesore? Cilat metrika jan\u00eb t\u00eb r\u00ebnd\u00ebsishme? Cilat teknika jan\u00eb p\u00ebrdorur n\u00eb sistemet llogarit\u00ebse t\u00eb hershme?<\/u><\/p>\n<h3>Supozimet e ngarkes\u00ebs pune<\/h3>\n<p>\n Para se t\u00eb diskutojm\u00eb politikat e mundshme, n\u00eb fillim do t\u00eb b\u00ebjm\u00eb disa shp\u00ebrngulje p\u00ebr t\u00eb thjeshtuar proceset q\u00eb jan\u00eb aktivizuar n\u00eb sistem, t\u00eb cilat quhen s\u00eb bashku <b>ngarkes\u00eb pune<\/b>. Duke p\u00ebrcaktuar ngarkes\u00ebn si nj\u00eb pjes\u00eb kritike t\u00eb nd\u00ebrtimit t\u00eb politikave dhe sa m\u00eb shum\u00eb t\u00eb dini p\u00ebr ngarkes\u00ebn, aq m\u00eb cil\u00ebsore do t\u00eb jet\u00eb politika q\u00eb mund t\u00eb shkruani.<\/p>\n<p>Do t\u00eb b\u00ebjm\u00eb supozimet e m\u00ebposhtme n\u00eb lidhje me proceset e aktivizuara n\u00eb sistem, ndonj\u00ebher\u00eb t\u00eb quajtura <b>jobs<\/b> (detyra). Praktikisht t\u00eb gjitha k\u00ebto supozime jan\u00eb jo realiste, por jan\u00eb t\u00eb nevojshme p\u00ebr zhvillimin e mendimit.<\/p>\n<ol>\n<li> \u00c7do detyr\u00eb ekzekutohet p\u00ebr t\u00eb nj\u00ebjt\u00ebn sasi kohe,<\/li>\n<li> T\u00eb gjitha detyrat vendosen nj\u00ebkoh\u00ebsisht,<\/li>\n<li> Detyra e vendosur punon deri n\u00eb p\u00ebrfundim t\u00eb saj,<\/li>\n<li> T\u00eb gjitha detyrat p\u00ebrdorin vet\u00ebm CPU,<\/li>\n<li> Koha e ekzekutimit t\u00eb \u00e7do detyre \u00ebsht\u00eb e njohur.<\/li>\n<\/ol>\n<h3>Metrit\u00eb e Planifikuesit<\/h3>\n<p>\n P\u00ebrve\u00e7 disa supozimeve mbi ngarkes\u00ebn, \u00ebsht\u00eb e nevojshme gjithashtu nj\u00eb instrument p\u00ebr krahasimin e politikave t\u00eb ndryshme t\u00eb planifikimit: metrit\u00eb e planifikuesit. Metrika \u00ebsht\u00eb thjesht nj\u00eb mas\u00eb e di\u00e7kaje. Ekziston nj\u00eb sasi metrikash q\u00eb mund t\u00eb p\u00ebrdoren p\u00ebr t\u00eb krahasuar planifikuesit.<\/p>\n<p>Si nj\u00eb shembull, do t\u00eb p\u00ebrdorim metrik\u00ebn e quajtur <b>koha e kthimit<\/b> (turnaround time). Koha e kthimit t\u00eb detyr\u00ebs p\u00ebrcaktohet si diferenca midis koh\u00ebs s\u00eb p\u00ebrfundimit t\u00eb detyr\u00ebs dhe koh\u00ebs s\u00eb arritjes s\u00eb saj n\u00eb sistem.<\/p>\n<p><u>Tturnaround=Tcompletion\u2212Tarrival<\/u><\/p>\n<p>Duke supozuar se t\u00eb gjitha detyrat kan\u00eb arritur nj\u00ebkoh\u00ebsisht, at\u00ebher\u00eb Ta=0 dhe k\u00ebshtu Tt=Tc. Ky vler\u00eb natyrsh\u00ebm do t\u00eb ndryshoj\u00eb kur ne ndryshojm\u00eb supozimet e m\u00ebsip\u00ebrme.<\/p>\n<p>Metri tjet\u00ebr \u00ebsht\u00eb <b>fairness<\/b> (drejt\u00ebsi, ndershm\u00ebri). Performanca dhe drejt\u00ebsia shpesh jan\u00eb karakteristika q\u00eb veprojn\u00eb n\u00eb kund\u00ebrshtim n\u00eb planifikim. P\u00ebr shembull, planifikuesi mund t\u00eb optimizoj\u00eb performanc\u00ebn, por me koston e pritjes n\u00eb fillimin e detyrave t\u00eb tjera, duke ulur k\u00ebshtu drejt\u00ebsin\u00eb.<\/p>\n<h3>FIRST IN FIRST OUT (FIFO)<\/h3>\n<p>\n Algoritmi m\u00eb bazik q\u00eb mund t\u00eb implementojm\u00eb quhet FIFO ose <b>i pari m\u00eb par\u00eb (n\u00eb), i pari sh\u00ebrbehet (jasht\u00eb)<\/b>. K\u00ebt\u00eb algorit\u00ebm ka disa p\u00ebrpar\u00ebsi: \u00ebsht\u00eb shum\u00eb i thjesht\u00eb p\u00ebr tu implementuar dhe i p\u00ebrshtatet t\u00eb gjitha supozimeve tona, duke e kryer pun\u00ebn mjaft mir\u00eb.<\/p>\n<p>Le t\u00eb konsiderojm\u00eb nj\u00eb shembull t\u00eb thjesht\u00eb. Supozoni se 3 detyra jan\u00eb vendosur nj\u00ebkoh\u00ebsisht. Por supozoni se detyra A ka ardhur pak m\u00eb her\u00ebt se t\u00eb tjerat, k\u00ebshtu q\u00eb n\u00eb list\u00ebn e ekzekutimit do t\u00eb q\u00ebndroj\u00eb p\u00ebrpara t\u00eb tjerave, ashtu si dhe B n\u00eb raport me V. Supozoni se secila prej tyre do t\u00eb ekzekutohet p\u00ebr 10 sekonda. \u00c7far\u00eb do t\u00eb jet\u00eb koha mesatare e ekzekutimit t\u00eb k\u00ebtyre detyrave n\u00eb k\u00ebt\u00eb rast?<\/p>\n<p><img decoding=\"async\" alt=\"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 4: Hyrje n\u00eb planifikues (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/8c17c29e10ac8c2e15f5f9d865922e49.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDuke llogaritur vlerat \u2014 10+20+30 dhe duke i ndar\u00eb me 3, marrim nj\u00eb koh\u00eb mesatare ekzekutimi p\u00ebr programin e barabart\u00eb me 20 sekonda.<br \/>\n Tani le t\u00eb p\u00ebrpiqemi t\u00eb ndryshojm\u00eb supozimet tona. N\u00eb ve\u00e7anti supozimi 1 dhe k\u00ebshtu t\u00eb mos supozojm\u00eb m\u00eb se \u00e7do detyr\u00eb ekzekutohet p\u00ebr t\u00eb nj\u00ebjt\u00ebn periudh\u00eb kohe. Si do t\u00eb sillet FIFO k\u00ebt\u00eb her\u00eb?<\/p>\n<p>Si\u00e7 duket, koha e ndryshme e ekzekutimit t\u00eb detyrave ndikon n\u00eb m\u00ebnyr\u00eb t\u00eb qen\u00ebsishme n\u00eb produktivitetin e algoritmit FIFO. Supozoni se detyra A do t\u00eb ekzekutohet p\u00ebr 100 sekonda, nd\u00ebrsa B dhe V vazhdojn\u00eb t\u00eb ken\u00eb nga 10 secil\u00ebn.<\/p>\n<p><img decoding=\"async\" alt=\"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 4: Hyrje n\u00eb planifikues (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/a375f3d1571f24df30f446b9bc7a9a9e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n Si\u00e7 shihet nga figura, koha mesatare p\u00ebr sistemin do t\u00eb jet\u00eb (100+110+120)\/3=110. Ky efekt quhet <b>efekti i karvanit<\/b>, kur disa konsumator\u00eb afatshkurt\u00ebr t\u00eb nj\u00eb burimi do t\u00eb q\u00ebndrojn\u00eb n\u00eb radh\u00eb pas nj\u00eb konsumatori t\u00eb r\u00ebnd\u00eb. Kjo \u00ebsht\u00eb si nj\u00eb radh\u00eb n\u00eb nj\u00eb dyqan ushqimesh, kur p\u00ebrpara jush \u00ebsht\u00eb nj\u00eb bler\u00ebs me nj\u00eb karroc\u00eb t\u00eb plot\u00eb. Zgjidhja m\u00eb e mir\u00eb p\u00ebr problemin \u00ebsht\u00eb t\u00eb p\u00ebrpiqeni t\u00eb ndryshoni arken ose thjesht t\u00eb relaksoheni dhe t\u00eb merrni frym\u00eb thell\u00eb.<\/p>\n<h3>Pun\u00ebt e Shkurtra m\u00eb par\u00eb<\/h3>\n<p>\n A mund t\u00eb zgjidhet ndonj\u00ebher\u00eb nj\u00eb situat\u00eb e till\u00eb me proceset e r\u00ebnda? Sigurisht. Nj\u00eb tip tjet\u00ebr planifikimi quhet<b>Pun\u00ebt e Shkurtra m\u00eb par\u00eb<\/b> (SJF). Algoritmi i tij \u00ebsht\u00eb gjithashtu mjaft primitiv \u2014 si\u00e7 duket nga emri, detyrat m\u00eb t\u00eb shkurtra do t\u00eb ekzekutohen fillimisht nj\u00eb pas nj\u00eb.<\/p>\n<p><img decoding=\"async\" alt=\"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 4: Hyrje n\u00eb planifikues (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/d0723e313adc9ce7367da611216bf3ee.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00eb k\u00ebt\u00eb shembull, rezultati i ekzekutimit t\u00eb t\u00eb nj\u00ebjtave procese do t\u00eb jet\u00eb p\u00ebrmir\u00ebsimi i koh\u00ebs mesatare t\u00eb qarkullimit t\u00eb programeve dhe ajo do t\u00eb jet\u00eb e barabart\u00eb me <b>50 n\u00eb vend t\u00eb 110<\/b>, q\u00eb \u00ebsht\u00eb pothuajse 2 her\u00eb m\u00eb mir\u00eb.<\/p>\n<p>Pra ndaj, duke pasur parasysh supozimin q\u00eb t\u00eb gjitha detyrat arrijn\u00eb n\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb, algoritmi SJF duket si algoritmi m\u00eb optimal. Megjithat\u00eb, supozimet tona ende nuk duken realiste. K\u00ebt\u00eb her\u00eb do t\u00eb ndryshojm\u00eb supozimin 2 dhe do t\u00eb paraqesim se detyrat mund t\u00eb arrijn\u00eb n\u00eb \u00e7do koh\u00eb, jo t\u00eb gjitha nj\u00ebher\u00ebsh. \u00c7far\u00eb probleme mund t\u00eb sjell\u00eb kjo?<\/p>\n<p><img decoding=\"async\" alt=\"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 4: Hyrje n\u00eb planifikues (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/2f0145551779f2733281d12bffad3a45.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nImagjinoni q\u00eb detyra A (100s) arrin e para dhe fillon t\u00eb ekzekutohet. N\u00eb momentin t=10 arrijn\u00eb detyrat B dhe C, secila prej t\u00eb cilave do t\u00eb marr\u00eb 10 sekonda. K\u00ebshtu, koha mesatare e ekzekutimit \u00ebsht\u00eb (100+(110-10)+(120-10))\/3 = 103. \u00c7far\u00eb mund t\u00eb b\u00ebnte planifikuesi p\u00ebr t\u00eb p\u00ebrmir\u00ebsuar situat\u00ebn?<\/p>\n<h3>Shortest Time-to-Completion First (STCF)<\/h3>\n<p>\n P\u00ebr t\u00eb p\u00ebrmir\u00ebsuar situat\u00ebn, do t\u00eb hiqnim supozimin 3 se programi \u00ebsht\u00eb i aktivizuar dhe punon deri n\u00eb p\u00ebrfundim. P\u00ebr m\u00eb tep\u00ebr, do t\u00eb na duhet mb\u00ebshtetje harduerike dhe si\u00e7 mund ta keni menduar, do t\u00eb p\u00ebrdorim <b>nj\u00eb timer<\/b> p\u00ebr t\u00eb nd\u00ebrprer\u00eb detyr\u00ebn n\u00eb pun\u00eb dhe <b>p\u00ebr t\u00eb nd\u00ebrruar kontekstet<\/b>. K\u00ebshtu, planifikuesi mund t\u00eb nd\u00ebrmarr\u00eb di\u00e7ka n\u00eb momentin e mb\u00ebrritjes s\u00eb detyrave B dhe C \u2014 t\u00eb nd\u00ebrpres\u00eb ekzekutimin e detyr\u00ebs A dhe t\u00eb vendos\u00eb p\u00ebr t'u p\u00ebrpunuar detyrat B dhe C, dhe pas p\u00ebrfundimit t\u00eb tyre, t\u00eb vazhdoj\u00eb ekzekutimin e procesit A. Nj\u00eb planifikues i till\u00eb quhet <b>STCF<\/b>ose <b>Preemptive Job First<\/b>.<\/p>\n<p><img decoding=\"async\" alt=\"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 4: Hyrje n\u00eb planifikues (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/81644f82b7b1489f239ebbdc5d78000b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nRezultati i k\u00ebtij planifikuesi do t\u00eb jet\u00eb si n\u00eb vijim: ((120-0)+(20-10)+(30-10))\/3=50. K\u00ebshtu, ky planifikues b\u00ebhet akoma m\u00eb optimal p\u00ebr detyrat tona.<\/p>\n<h3>Metrika Koha e p\u00ebrgjigjes (Response Time)<\/h3>\n<p>\n Pra ndaj, n\u00ebse e dim\u00eb koh\u00ebn e pun\u00ebs s\u00eb detyrave dhe q\u00eb k\u00ebto detyra p\u00ebrdorin vet\u00ebm CPU-n\u00eb, STCF do t\u00eb jet\u00eb zgjidhja m\u00eb e mir\u00eb. Dikur n\u00eb dit\u00ebt e hershme, k\u00ebta algoritma funksiononin dhe mjaft mir\u00eb. Megjithat\u00eb tani, p\u00ebrdoruesi kalon shumic\u00ebn e koh\u00ebs p\u00ebrpara terminalit dhe pret nj\u00eb nd\u00ebrveprim produktiv dhe interaktiv. K\u00ebshtu lindi nj\u00eb metrik\u00eb e re \u2014 <b>koha e p\u00ebrgjigjes<\/b> (nd\u00ebrgjegj\u00ebsimi).<\/p>\n<p>Koha e p\u00ebrgjigjes llogaritet si n\u00eb vijim:<\/p>\n<p><u>Tresponse=Tfirstrun\u2212Tarrival<\/u><\/p>\n<p>Pra ndaj, p\u00ebr shembullin e m\u00ebparsh\u00ebm, koha e p\u00ebrgjigjes do t\u00eb jet\u00eb si n\u00eb vijim: A=0, B=0, C=10 (abg=3,33).<\/p>\n<p>Dhe duket se algoritmi STCF nuk \u00ebsht\u00eb aq i mir\u00eb n\u00eb situat\u00ebn kur 3 detyra arrijn\u00eb nj\u00ebkoh\u00ebsisht \u2014 ai do t\u00eb duhet t\u00eb pres\u00eb deri sa detyrat e vogla t\u00eb p\u00ebrfundojn\u00eb plot\u00ebsisht. Pra, algoritmi \u00ebsht\u00eb i mir\u00eb p\u00ebr metriken e koh\u00ebs s\u00eb p\u00ebrfundimit, por i keq p\u00ebr metriken e nd\u00ebrveprueshm\u00ebris\u00eb. Imagjinoni, se nd\u00ebrsa jeni ulur para terminalit duke p\u00ebrpiqur t\u00eb shkruani karaktere n\u00eb redaktor, do t\u00eb duhet t\u00eb prisni m\u00eb shum\u00eb se 10 sekonda, sepse ndonj\u00eb detyr\u00eb tjet\u00ebr po z\u00eb procesorin. Kjo nuk \u00ebsht\u00eb aspak e k\u00ebndshme.<\/p>\n<p><img decoding=\"async\" alt=\"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 4: Hyrje n\u00eb planifikues (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/f1412665826f845fdc685ec3c1a5bdad.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nK\u00ebshtu, ne ballafaqohemi me nj\u00eb problem tjet\u00ebr \u2014 si mund t\u00eb nd\u00ebrtojm\u00eb nj\u00eb planifikues q\u00eb \u00ebsht\u00eb i ndjesh\u00ebm ndaj koh\u00ebs s\u00eb p\u00ebrgjigjes?<\/p>\n<h3>Round Robin<\/h3>\n<p>\n P\u00ebr t\u00eb zgjidhur k\u00ebt\u00eb problem, u zhvillua algoritmi <b>Round Robin<\/b> (RR). Ideja kryesore \u00ebsht\u00eb mjaft e thjesht\u00eb: n\u00eb vend q\u00eb t\u00eb ekzekutojm\u00eb detyrat deri n\u00eb p\u00ebrfundimin e plot\u00eb, ne do ta ekzekutojm\u00eb nj\u00eb detyr\u00eb p\u00ebr nj\u00eb koh\u00eb t\u00eb caktuar (e njohur si kvant kohe) dhe pastaj do t\u00eb kalojm\u00eb te nj\u00eb detyr\u00eb tjet\u00ebr nga radh\u00ebt. Algoritmi p\u00ebrs\u00ebrit k\u00ebt\u00eb deri sa t\u00eb gjitha detyrat t\u00eb p\u00ebrfundojn\u00eb. N\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb, koha e pun\u00ebs s\u00eb programit duhet t\u00eb jet\u00eb e barabart\u00eb me nj\u00eb shum\u00ebs t\u00eb koh\u00ebs, gjat\u00eb s\u00eb cil\u00ebs timeri do ta nd\u00ebrpres\u00eb procesin. P\u00ebr shembull, n\u00ebse timeri ndalon procesin \u00e7do x=10ms, at\u00ebher\u00eb madh\u00ebsia e dritares s\u00eb ekzekutimit t\u00eb procesit duhet t\u00eb jet\u00eb nj\u00eb shum\u00ebs e 10 dhe t\u00eb jet\u00eb 10, 20 ose x*10.<\/p>\n<p>Le t\u00eb marrim nj\u00eb shembull: detyrat A, B, C arrijn\u00eb nj\u00ebkoh\u00ebsisht n\u00eb sistem dhe secila prej tyre d\u00ebshiron t\u00eb punoj\u00eb p\u00ebr 5 sekonda. Algoritmi SJF do t\u00eb ekzekutoj\u00eb secil\u00ebn detyr\u00eb deri n\u00eb fund, para se t\u00eb filloj\u00eb nj\u00eb tjet\u00ebr. N\u00eb krahasim, algoritmi RR me madh\u00ebsin\u00eb e dritares s\u00eb ekzekutimit = 1s do t\u00eb kaloj\u00eb n\u00ebp\u00ebr detyra si m\u00eb posht\u00eb (shih. 4.3):<\/p>\n<p><img decoding=\"async\" alt=\"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 4: Hyrje n\u00eb planifikues (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/a7790cb63c880b286db2a2e3782d59b2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n(SJF P\u00ebrs\u00ebri (Keq p\u00ebr Koh\u00ebn e P\u00ebrgjigjes)<\/p>\n<p><img decoding=\"async\" alt=\"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 4: Hyrje n\u00eb planifikues (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/f7e82d68a6118828ea4561a4911744e2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n(Round Robin (Mir\u00eb p\u00ebr Koh\u00ebn e P\u00ebrgjigjes)<\/p>\n<p>Koha mesatare e p\u00ebrgjigjes p\u00ebr algoritmin RR (0+1+2) \/ 3 = 1, nd\u00ebrsa p\u00ebr SJF (0+5+10) \/ 3 = 5.<\/p>\n<p>\u00cbsht\u00eb logjike t\u00eb supozohet se dritarja e koh\u00ebs \u00ebsht\u00eb nj\u00eb parameter shum\u00eb i r\u00ebnd\u00ebsish\u00ebm p\u00ebr RR, sa m\u00eb e vog\u00ebl t\u00eb jet\u00eb ajo, aq m\u00eb e lart\u00eb \u00ebsht\u00eb koha e p\u00ebrgjigjes. Megjithat\u00eb, nuk mund ta b\u00ebjm\u00eb at\u00eb shum\u00eb t\u00eb vog\u00ebl, pasi koha p\u00ebr t\u00eb kaluar kontekstin gjithashtu do t\u00eb luaj\u00eb rolin e saj n\u00eb performanc\u00ebn e p\u00ebrgjithshme. N\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb, zgjedhja e koh\u00ebs s\u00eb dritares s\u00eb ekzekutimit vendoset nga arkitekti i OS-s\u00eb dhe varet nga detyrat q\u00eb planifikohen t\u00eb ekzekutohen atje. Kalimi i kontekstit nuk \u00ebsht\u00eb vet\u00ebm operacioni sh\u00ebrbimor q\u00eb merr koh\u00eb - programi n\u00eb ekzekutim operon me shum\u00eb gj\u00ebra t\u00eb tjera gjithashtu, p\u00ebr shembull me keqet e ndryshme dhe n\u00eb \u00e7do kalim \u00ebsht\u00eb e nevojshme t\u00eb ruhet dhe rikthehet kjo mjedis, q\u00eb gjithashtu mund t\u00eb k\u00ebrkoj\u00eb shum\u00eb koh\u00eb.<\/p>\n<p>RR \u00ebsht\u00eb nj\u00eb planifikues i shk\u00eblqyer, n\u00ebse do t\u00eb flasim vet\u00ebm p\u00ebr matjen e koh\u00ebs s\u00eb p\u00ebrgjigjes. Por si do t\u00eb sillet metrika e koh\u00ebs s\u00eb ciklit t\u00eb detyr\u00ebs gjat\u00eb k\u00ebtij algoritmi? T\u00eb marrim nj\u00eb shembull m\u00eb lart, kur koha e pun\u00ebs A, B, C = 5s dhe ato mb\u00ebrrijn\u00eb n\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb. Detyra A do t\u00eb p\u00ebrfundoj\u00eb n\u00eb 13, B n\u00eb 14, C n\u00eb 15s dhe koha mesatare e ciklit do t\u00eb jet\u00eb 14s. K\u00ebshtu, RR \u00ebsht\u00eb algoritmi m\u00eb i keq p\u00ebr matjen e ciklit.<\/p>\n<p>Me fjal\u00eb m\u00eb t\u00eb p\u00ebrgjithshme, \u00e7do algorit\u00ebm i tipit RR \u00ebsht\u00eb i ndersh\u00ebm, ai ndan koh\u00ebn e pun\u00ebs n\u00eb CPU n\u00eb m\u00ebnyr\u00eb t\u00eb barabart\u00eb midis t\u00eb gjitha proceseve. Dhe k\u00ebshtu, k\u00ebto metrika konfliktualisht p\u00ebrplasen me nj\u00ebra-tjetr\u00ebn.<\/p>\n<p>K\u00ebshtu, kemi disa algoritma q\u00eb kund\u00ebrshtohen dhe megjithat\u00eb mbeten disa supozime - q\u00eb koha e detyr\u00ebs \u00ebsht\u00eb e njohur dhe q\u00eb detyra p\u00ebrdor vet\u00ebm CPU-n\u00eb.<\/p>\n<h3>P\u00ebrzierja me I\/O<\/h3>\n<p>\n S\u00eb pari, do t\u00eb heqim supozimin 4, se procesi p\u00ebrdor vet\u00ebm CPU, natyrisht q\u00eb nuk \u00ebsht\u00eb k\u00ebshtu dhe proceset mund t\u00eb lidhen me pajisje t\u00eb tjera.<\/p>\n<p>N\u00eb momentin kur ndonj\u00eb proces k\u00ebrkon nj\u00eb operacion hyrje-dalje (I\/O), procesi kalon n\u00eb gjendjen e bllokuar, duke pritur p\u00ebr p\u00ebrfundimin e I\/O. N\u00ebse I\/O d\u00ebrgohet n\u00eb hard disk, nj\u00eb operacion i till\u00eb mund t\u00eb zgjas\u00eb deri n\u00eb disa ms ose m\u00eb shum\u00eb, dhe procesori n\u00eb k\u00ebt\u00eb moment do t\u00eb jet\u00eb i papun\u00eb. N\u00eb k\u00ebt\u00eb koh\u00eb, planifikuesi mund t\u00eb marr\u00eb procesorin nga ndonj\u00eb proces tjet\u00ebr. Zgjidhja tjet\u00ebr q\u00eb do t\u00eb duhet t\u00eb marr\u00eb planifikuesi \u00ebsht\u00eb - kur procesi do t\u00eb p\u00ebrfundoj\u00eb I\/O. Kur kjo ndodh, do t\u00eb ndodh\u00eb nj\u00eb nd\u00ebrprerje dhe OS do ta kthej\u00eb procesin q\u00eb ka k\u00ebrkuar I\/O n\u00eb gjendjen e gatshme.<\/p>\n<p>Le t\u00eb shqyrtojm\u00eb nj\u00eb shembull me disa detyra. Secila prej tyre ka nevoj\u00eb p\u00ebr 50ms koh\u00eb procesori. Megjithat\u00eb, e para do t\u00eb b\u00ebj\u00eb akses n\u00eb I\/O \u00e7do 10ms (i cili gjithashtu do t\u00eb ekzekutohet \u00e7do 10ms). Nd\u00ebrsa procesi B thjesht p\u00ebrdor 50ms procesor pa I\/O.<\/p>\n<p><img decoding=\"async\" alt=\"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 4: Hyrje n\u00eb planifikues (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/a32f5346eda86042c18d6424c19ad6b9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00eb k\u00ebt\u00eb shembull, do t\u00eb p\u00ebrdorim planifikuesin STCF. Si do t\u00eb sillet planifikuesi n\u00ebse e l\u00ebshojm\u00eb procesin A? Ai do t\u00eb veproj\u00eb si m\u00eb posht\u00eb \u2014 fillimisht do t\u00eb p\u00ebrfundoj\u00eb plot\u00ebsisht procesin A, dhe m\u00eb pas procesin B.<\/p>\n<p><img decoding=\"async\" alt=\"Sistemet Operative: Tre Pjes\u00eb t\u00eb Lehta. Pjesa 4: Hyrje n\u00eb planifikues (p\u00ebrkthim)\" src=\"\/wp-content\/uploads\/2019\/04\/9fb709a822b9fc35871b8a342ac38c7e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nQasja tradicionale p\u00ebr zgjidhjen e k\u00ebsaj problemi \u00ebsht\u00eb t\u00eb interpretojm\u00eb \u00e7do n\u00ebn-detyr\u00eb 10ms t\u00eb procesit A si nj\u00eb detyr\u00eb t\u00eb ve\u00e7ant\u00eb. K\u00ebshtu, kur fillojm\u00eb me algoritmin STJF, zgjedhja midis detyr\u00ebs 50ms dhe detyr\u00ebs 10ms \u00ebsht\u00eb e qart\u00eb. M\u00eb pas, kur n\u00ebn-detyr\u00eb A t\u00eb p\u00ebrfundoj\u00eb, do t\u00eb filloj\u00eb procesi B dhe I\/O. Pas p\u00ebrfundimit t\u00eb I\/O, do t\u00eb merret p\u00ebrs\u00ebri vendimi p\u00ebr t\u00eb nisur procesin 10ms A n\u00eb vend t\u00eb procesit B. K\u00ebshtu q\u00eb \u00ebsht\u00eb e mundur t\u00eb realizohet mbivendosja, kur CPU p\u00ebrdoret nga nj\u00eb proces tjet\u00ebr, derisa i pari pret I\/O. Dhe si rezultat, sistemi shfryt\u00ebzohet m\u00eb mir\u00eb \u2014 n\u00eb momentin kur proceset interaktive presin I\/O, n\u00eb procesor mund t\u00eb ekzekutohen procese t\u00eb tjera.<\/p>\n<h3>Orakulli nuk ekziston m\u00eb<\/h3>\n<p>\n Tani do t\u00eb p\u00ebrpiqemi t\u00eb heqim supozimin se koha e ekzekutimit t\u00eb detyr\u00ebs \u00ebsht\u00eb e njohur. Ky \u00ebsht\u00eb p\u00ebrgjith\u00ebsisht supozimi m\u00eb i keq dhe m\u00eb jokrealist nga e gjith\u00eb lista. N\u00eb fakt, n\u00eb sistemet operative mesatare, vet\u00eb OS zakonisht di shum\u00eb pak p\u00ebr koh\u00ebn e ekzekutimit t\u00eb detyrave, si mund t\u00eb nd\u00ebrtojm\u00eb planifikues pa e ditur se sa koh\u00eb do t\u00eb ekzekutohet detyra? Ndoshta mund t\u00eb p\u00ebrdorim disa parime RR p\u00ebr t\u00eb zgjidhur k\u00ebt\u00eb problem?<\/p>\n<h3>P\u00ebrfundimi<\/h3>\n<p>\n Ne shqyrtuam idet\u00eb baz\u00eb t\u00eb planifikimit t\u00eb detyrave dhe shqyrtuam dy familje planifikuesish. E para nis detyr\u00ebn m\u00eb t\u00eb shkurt\u00ebr n\u00eb fillim dhe k\u00ebshtu rrit koh\u00ebn e qarkullimit, nd\u00ebrsa e dyta shp\u00ebrndan ngarkes\u00ebn n\u00eb m\u00ebnyr\u00eb t\u00eb barabart\u00eb midis t\u00eb gjitha detyrave, duke rritur koh\u00ebn e p\u00ebrgjigjes. T\u00eb dy algoritmet jan\u00eb t\u00eb k\u00ebqij atje ku algoritmet e tjera jan\u00eb t\u00eb mira. Po ashtu, shqyrtuam si p\u00ebrdorimi paralel i CPU dhe I\/O mund t\u00eb p\u00ebrmir\u00ebsoj\u00eb performanc\u00ebn, por nuk e zgjidh\u00ebm problemin me parashikimin e OS. N\u00eb mbledhjen e ardhshme, ne do t\u00eb shqyrtojm\u00eb nj\u00eb planifikues q\u00eb shikon n\u00eb t\u00eb kaluar\u00ebn e af\u00ebrt dhe p\u00ebrpiqet t\u00eb parashikoj\u00eb t\u00eb ardhmen. Ai quhet multi-level feedback queue.<br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/449026\/\">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":23990,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-32158","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-4-vvedenie-v-planirovshhik-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 4: \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a (\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-4-vvedenie-v-planirovshhik-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:45:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:45:27+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 Pjes\u00eb t\u00eb Lehta. Pjesa 4: Hyrje n\u00eb planifikues (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-4-vvedenie-v-planirovshhik-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 4: \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a (\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-4-vvedenie-v-planirovshhik-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:45:27+00:00","article:modified_time":"2019-10-31T18:45:27+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"32158","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"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 09:34:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:03:25","updated":"2026-01-21 09:34: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\/32158","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=32158"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/32158\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/23990"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=32158"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=32158"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=32158"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}