{"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\/sk\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-4-vvedenie-v-planirovshhik-perevod","title":{"rendered":"Operating Systems: Three Easy Pieces. \u010cas\u0165 4: \u00davod do pl\u00e1nova\u010da (preklad)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h1>\u00davod do opera\u010dn\u00fdch syst\u00e9mov<\/h1>\n<p>\nAhoj, Habr! Chcem v\u00e1m predstavi\u0165 s\u00e9riu \u010dl\u00e1nkov-prekladu zauj\u00edmavej literat\u00fary, ktor\u00fa pova\u017eujem za zauj\u00edmav\u00fa \u2014 OSTEP. V tomto materi\u00e1li sa podrobne zaober\u00e1 fungovan\u00edm unixov\u00fdch opera\u010dn\u00fdch syst\u00e9mov, konkr\u00e9tne pr\u00e1cou s procesmi, r\u00f4znymi pl\u00e1nova\u010dmi, pam\u00e4\u0165ou a in\u00fdmi podobn\u00fdmi komponentmi, ktor\u00e9 tvoria modern\u00fd OS. Origin\u00e1l v\u0161etk\u00fdch materi\u00e1lov si m\u00f4\u017eete pozrie\u0165 tu: <noindex><a rel=\"nofollow\" href=\"http:\/\/pages.cs.wisc.edu\/~remzi\/OSTEP\/\">tu<\/a><\/noindex>. Pros\u00edm berte na vedomie, \u017ee preklad bol vykonan\u00fd neprofesion\u00e1lne (dos\u0165 vo\u013ene), ale d\u00fafam, \u017ee som zachoval celkov\u00fd zmysel.<\/p>\n<p>Laborat\u00f3rne pr\u00e1ce na tomto predmete n\u00e1jdete tu:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/pages.cs.wisc.edu\/~remzi\/OSTEP\/Homework\/homework.html\">origin\u00e1l<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/remzi-arpacidusseau\/ostep-code\">origin\u00e1l<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bykvaadm\/OS\/tree\/master\/ostep\">moj osobn\u00fd prisp\u00f4soben\u00fd preklad<\/a><\/noindex><\/li>\n<\/ul>\n<p>\n\u010eal\u0161ie \u010dasti:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/446340\/\">\u010cas\u0165 1: \u00davod<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/446866\/\">\u010cas\u0165 2: Abstrakcia: proces<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/447182\/\">\u010cas\u0165 3: \u00davod do API procesov<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/449026\/\">\u010cas\u0165 4: \u00davod do pl\u00e1nova\u010da<\/a><\/noindex><\/li>\n<\/ul>\n<p>\nA m\u00f4\u017eete sa pozera\u0165 aj na m\u00f4j kan\u00e1l v <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/bykvaadm\">telegrame<\/a><\/noindex> =)<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>\u00davod do pl\u00e1nova\u010da<\/h2>\n<p>\n<u>Jadro probl\u00e9mu: Ako vyvin\u00fa\u0165 politiku pl\u00e1nova\u010da<br \/>\nAko by sa mali vyv\u00edja\u0165 z\u00e1kladn\u00e9 r\u00e1mce polit\u00edk pl\u00e1nova\u010da? Ak\u00e9 by mali by\u0165 k\u013e\u00fa\u010dov\u00e9 predpoklady? Ak\u00e9 metriky s\u00fa d\u00f4le\u017eit\u00e9? Ak\u00e9 z\u00e1kladn\u00e9 techniky sa pou\u017e\u00edvali v ran\u00fdch v\u00fdpo\u010dtov\u00fdch syst\u00e9moch?<\/u><\/p>\n<h3>Predpoklady pracovnej z\u00e1\u0165a\u017ee<\/h3>\n<p>\n Predt\u00fdm, ako prediskutujeme mo\u017en\u00e9 politiky, urob\u00edme nieko\u013eko zjednodu\u0161uj\u00facich odbo\u010den\u00ed o procesoch spusten\u00fdch v syst\u00e9me, ktor\u00e9 v\u0161etky spolu naz\u00fdvame <b>pracovn\u00e1 z\u00e1\u0165a\u017e<\/b>. Definovan\u00edm pracovnej z\u00e1\u0165a\u017ee ako kritickej s\u00fa\u010dasti budovania polit\u00edk a \u010d\u00edm viac viete o z\u00e1\u0165a\u017ei, t\u00fdm kvalitnej\u0161iu politiku dok\u00e1\u017eete nap\u00edsa\u0165.<\/p>\n<p>Vytvor\u00edme nasleduj\u00face predpoklady o procesoch spusten\u00fdch v syst\u00e9me, niekedy naz\u00fdvan\u00fdch <b>jobs<\/b> (\u00faloh\u00e1ch). Takmer v\u0161etky tieto predpoklady s\u00fa nere\u00e1lne, ale s\u00fa potrebn\u00e9 na rozvoj my\u0161lienky.<\/p>\n<ol>\n<li> Ka\u017ed\u00e1 \u00faloha be\u017e\u00ed rovnak\u00fd \u010das,<\/li>\n<li> V\u0161etky \u00falohy sa zad\u00e1vaj\u00fa s\u00fa\u010dasne,<\/li>\n<li> Zadan\u00e1 \u00faloha be\u017e\u00ed a\u017e do svojho dokon\u010denia,<\/li>\n<li> V\u0161etky \u00falohy pou\u017e\u00edvaj\u00fa iba CPU,<\/li>\n<li> \u010cas behu ka\u017edej \u00falohy je zn\u00e1my.<\/li>\n<\/ol>\n<h3>Metriky pl\u00e1nova\u010da<\/h3>\n<p>\n Okrem niektor\u00fdch predpokladov o z\u00e1\u0165a\u017ei potrebujeme aj n\u00e1stroj na porovn\u00e1vanie r\u00f4znych polit\u00edk pl\u00e1novania: metriky pl\u00e1nova\u010da. Metrika je len nejak\u00e1 miera nie\u010doho. Existuje nieko\u013eko metrik, ktor\u00e9 m\u00f4\u017eeme pou\u017ei\u0165 na porovn\u00e1vanie pl\u00e1nova\u010dov.<\/p>\n<p>Pre pr\u00edklad budeme pou\u017e\u00edva\u0165 metriku, ktor\u00e1 sa naz\u00fdva <b>\u010das obratu<\/b> (turnaround time). \u010cas obratu \u00falohy je definovan\u00fd ako rozdiel medzi \u010dasom dokon\u010denia \u00falohy a \u010dasom pr\u00edchodu \u00falohy do syst\u00e9mu.<\/p>\n<p><u>Tturnaround=Tcompletion\u2212Tarrival<\/u><\/p>\n<p>Ke\u010f\u017ee sme predpokladali, \u017ee v\u0161etky \u00falohy pri\u0161li v jednom \u010dase, Ta=0 a preto Tt=Tc. T\u00e1to hodnota sa prirodzene zmen\u00ed, ke\u010f zmen\u00edme vy\u0161\u0161ie uveden\u00e9 predpoklady.<\/p>\n<p>In\u00e1 metrika je <b>spravodlivos\u0165<\/b> (fairness). V\u00fdkon a spravodlivos\u0165 s\u00fa \u010dasto protichodn\u00e9 charakteristiky v pl\u00e1novan\u00ed. Napr\u00edklad pl\u00e1nova\u010d m\u00f4\u017ee optimalizova\u0165 v\u00fdkon, ale na \u00fakor \u010dakania na spustenie in\u00fdmi \u00falohami, \u010d\u00edm sa zni\u017euje spravodlivos\u0165.<\/p>\n<h3>FIRST IN FIRST OUT (FIFO)<\/h3>\n<p>\n Najz\u00e1kladnej\u0161\u00ed algoritmus, ktor\u00fd m\u00f4\u017eeme implementova\u0165, sa naz\u00fdva FIFO alebo <b>first come (in), first served (out)<\/b>Tento algoritmus m\u00e1 n\u011bkolik v\u00fdhod: je velmi jednoduch\u00fd na implementaci a vyhovuje v\u0161em na\u0161im p\u0159edpoklad\u016fm a vykon\u00e1v\u00e1 pr\u00e1ci velmi dob\u0159e.<\/p>\n<p>Zva\u017eme jednoduch\u00fd p\u0159\u00edklad. P\u0159edpokl\u00e1dejme, \u017ee byly sou\u010dasn\u011b p\u0159i\u0159azeny 3 \u00fakoly. Ale p\u0159edpokl\u00e1dejme, \u017ee \u00fakol A p\u0159i\u0161el o n\u011bco d\u0159\u00edve ne\u017e ostatn\u00ed, tak\u017ee v seznamu prov\u00e1d\u011bn\u00ed bude d\u0159\u00edve ne\u017e ostatn\u00ed, stejn\u011b jako B ve vztahu k V. P\u0159edpokl\u00e1dejme, \u017ee ka\u017ed\u00fd z nich bude vykon\u00e1v\u00e1n 10 sekund. Jak\u00fd bude v tomto p\u0159\u00edpad\u011b pr\u016fm\u011brn\u00fd \u010das vykon\u00e1n\u00ed t\u011bchto \u00fakol\u016f?<\/p>\n<p><img decoding=\"async\" alt=\"Operating Systems: Three Easy Pieces. \u010cas\u0165 4: \u00davod do pl\u00e1nova\u010da (preklad)\" src=\"\/wp-content\/uploads\/2019\/04\/8c17c29e10ac8c2e15f5f9d865922e49.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPo se\u010dten\u00ed hodnot \u2014 10+20+30 a rozd\u011blen\u00ed na 3 dostaneme pr\u016fm\u011brn\u00fd \u010das vykon\u00e1n\u00ed programu rovn\u00fd 20 sekund\u00e1m.<br \/>\n Nyn\u00ed se pokus\u00edme zm\u011bnit na\u0161e p\u0159edpoklady. Zejm\u00e9na p\u0159edpoklad 1, a t\u00edm p\u00e1dem nebudeme v\u00edce p\u0159edpokl\u00e1dat, \u017ee ka\u017ed\u00fd \u00fakol se prov\u00e1d\u00ed stejn\u00fd \u010das. Jak se te\u010f zobraz\u00ed FIFO?<\/p>\n<p>Jak se ukazuje, r\u016fzn\u00e1 doba vykon\u00e1n\u00ed \u00fakol\u016f m\u00e1 velmi negativn\u00ed vliv na produktivitu algoritmu FIFO. P\u0159edpokl\u00e1dejme, \u017ee \u00fakol A bude trvat 100 sekund, zat\u00edmco B a V budou st\u00e1le po 10 sekund\u00e1ch ka\u017ed\u00fd.<\/p>\n<p><img decoding=\"async\" alt=\"Operating Systems: Three Easy Pieces. \u010cas\u0165 4: \u00davod do pl\u00e1nova\u010da (preklad)\" src=\"\/wp-content\/uploads\/2019\/04\/a375f3d1571f24df30f446b9bc7a9a9e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n Jak je vid\u011bt na obr\u00e1zku, pr\u016fm\u011brn\u00fd \u010das pro syst\u00e9m bude (100+110+120)\/3=110. Tento efekt se naz\u00fdv\u00e1 <b>efekt konvoje<\/b>, kdy n\u011bkte\u0159\u00ed kr\u00e1tkodob\u00ed u\u017eivatel\u00e9 n\u011bjak\u00e9ho zdroje budou st\u00e1t ve front\u011b za t\u011b\u017ek\u00fdm u\u017eivatelem. Je to jako fronta v obchod\u011b, kdy p\u0159ed v\u00e1mi je z\u00e1kazn\u00edk s pln\u00fdm voz\u00edkem. Nejlep\u0161\u00edm \u0159e\u0161en\u00edm probl\u00e9mu je pokusit se zm\u011bnit kasu nebo se prost\u011b uvolnit a hluboce d\u00fdchat.<\/p>\n<h3>Nejkrat\u0161\u00ed \u00faloha prvn\u00ed<\/h3>\n<p>\n Lze n\u011bjak vy\u0159e\u0161it podobnou situaci s t\u011b\u017ek\u00fdmi procesy? Samoz\u0159ejm\u011b. Jin\u00fd typ pl\u00e1nov\u00e1n\u00ed se naz\u00fdv\u00e1<b>Nejkrat\u0161\u00ed \u00faloha prvn\u00ed<\/b> (SJF). Jeho algoritmus je tak\u00e9 dost primitivn\u00ed \u2014 jak nazna\u010duje n\u00e1zev, nejprve budou spu\u0161t\u011bny nejkrat\u0161\u00ed \u00fakoly jeden za druh\u00fdm.<\/p>\n<p><img decoding=\"async\" alt=\"Operating Systems: Three Easy Pieces. \u010cas\u0165 4: \u00davod do pl\u00e1nova\u010da (preklad)\" src=\"\/wp-content\/uploads\/2019\/04\/d0723e313adc9ce7367da611216bf3ee.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV tomto p\u0159\u00edkladu bude v\u00fdsledkem spu\u0161t\u011bn\u00ed t\u011bchto stejn\u00fdch proces\u016f zlep\u0161en\u00ed pr\u016fm\u011brn\u00e9ho \u010dasu obratu program\u016f a ten bude roven <b>50 m\u00edsto 110<\/b>, co\u017e je prakticky 2x lep\u0161\u00ed.<\/p>\n<p>Tak\u017ee za dan\u00e9ho p\u0159edpokladu, \u017ee v\u0161echny \u00falohy p\u0159ich\u00e1zej\u00ed ve stejnou dobu, se algoritmus SJF jev\u00ed jako nejoptim\u00e1ln\u011bj\u0161\u00ed algoritmus. Nicm\u00e9n\u011b na\u0161e p\u0159edpoklady st\u00e1le nevypadaj\u00ed realisticky. Tentokr\u00e1t zm\u011bn\u00edme p\u0159edpoklad 2 a p\u0159edstav\u00edme si, \u017ee \u00falohy mohou p\u0159ich\u00e1zet kdykoli, nikoli v\u0161echny najednou. K jak\u00fdm probl\u00e9m\u016fm to m\u016f\u017ee v\u00e9st?<\/p>\n<p><img decoding=\"async\" alt=\"Operating Systems: Three Easy Pieces. \u010cas\u0165 4: \u00davod do pl\u00e1nova\u010da (preklad)\" src=\"\/wp-content\/uploads\/2019\/04\/2f0145551779f2733281d12bffad3a45.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u0159edstavme si, \u017ee \u00faloha A (100s) p\u0159ich\u00e1z\u00ed prvn\u00ed a za\u010d\u00edn\u00e1 se vykon\u00e1vat. V okam\u017eiku t=10 p\u0159ich\u00e1zej\u00ed \u00falohy B a C, z nich\u017e ka\u017ed\u00e1 zabere 10 sekund. Pr\u016fm\u011brn\u00e1 doba vykon\u00e1v\u00e1n\u00ed tedy je (100+(110-10)+(120-10))3 = 103. Co by mohl pl\u00e1nova\u010d ud\u011blat, aby zlep\u0161il situaci?<\/p>\n<h3>Shortest Time-to-Completion First (STCF)<\/h3>\n<p>\n Abychom zlep\u0161ili situaci, vynech\u00e1me p\u0159edpoklad 3, kter\u00fd \u0159\u00edk\u00e1, \u017ee program je spu\u0161t\u011bn a b\u011b\u017e\u00ed a\u017e do dokon\u010den\u00ed. Krom\u011b toho budeme pot\u0159ebovat hardware, a jak jste mohli uhodnout, vyu\u017eijeme <b>\u010dasova\u010d<\/b> k p\u0159eru\u0161en\u00ed b\u011b\u017e\u00edc\u00ed \u00falohy a <b>ke zm\u011bn\u011b kontextu<\/b>. Tak m\u016f\u017ee pl\u00e1nova\u010d n\u011bco podniknout v okam\u017eiku p\u0159\u00edchodu \u00faloh B a C \u2014 p\u0159eru\u0161it prov\u00e1d\u011bn\u00ed \u00falohy A a zpracovat \u00falohy B a C, a po jejich dokon\u010den\u00ed pokra\u010dovat v prov\u00e1d\u011bn\u00ed procesu A. Takov\u00fd pl\u00e1nova\u010d se naz\u00fdv\u00e1 <b>STCF<\/b>alebo <b>Preemptive Job First<\/b>.<\/p>\n<p><img decoding=\"async\" alt=\"Operating Systems: Three Easy Pieces. \u010cas\u0165 4: \u00davod do pl\u00e1nova\u010da (preklad)\" src=\"\/wp-content\/uploads\/2019\/04\/81644f82b7b1489f239ebbdc5d78000b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV\u00fdsledkem tohoto pl\u00e1nova\u010de bude n\u00e1sleduj\u00edc\u00ed v\u00fdsledek: ((120-0)+(20-10)+(30-10))\/3=50. Tak\u017ee se tento pl\u00e1nova\u010d st\u00e1v\u00e1 je\u0161t\u011b optim\u00e1ln\u011bj\u0161\u00edm pro na\u0161e \u00falohy.<\/p>\n<h3>Metrika Doba odezvy (Response Time)<\/h3>\n<p>\n Tak\u017ee pokud zn\u00e1me dobu pr\u00e1ce \u00faloh a v\u00edme, \u017ee tyto \u00falohy pou\u017e\u00edvaj\u00ed pouze CPU, STCF bude nejlep\u0161\u00edm \u0159e\u0161en\u00edm. A kdysi, v d\u00e1vn\u00fdch dob\u00e1ch, tyto algoritmy pracovaly a docela dob\u0159e. Nicm\u00e9n\u011b nyn\u00ed u\u017eivatel tr\u00e1v\u00ed v\u011bt\u0161inu \u010dasu u termin\u00e1lu a o\u010dek\u00e1v\u00e1 od n\u011bj v\u00fdkonnou interaktivn\u00ed odezvu. Tak vznikla nov\u00e1 metrika \u2014 <b>doba odezvy<\/b> (response time).<\/p>\n<p>Doba odezvy se po\u010d\u00edt\u00e1 n\u00e1sleduj\u00edc\u00edm zp\u016fsobem:<\/p>\n<p><u>Tresponse=Tfirstrun\u2212Tarrival<\/u><\/p>\n<p>Tak\u017ee pro p\u0159edchoz\u00ed p\u0159\u00edklad bude doba odezvy n\u00e1sleduj\u00edc\u00ed: A=0, B=0, C=10 (abg=3,33).<\/p>\n<p>A algoritmus STCF sa v situ\u00e1cii, ke\u010f tri \u00falohy pr\u00eddu s\u00fa\u010dasne, nenach\u00e1dza a\u017e tak dobre \u2014 mus\u00ed \u010daka\u0165, k\u00fdm sa men\u0161ie \u00falohy \u00faplne dokon\u010dia. T\u00fdm p\u00e1dom je algoritmus dobr\u00fd pre metriky \u010dasu obratu, ale zl\u00fd pre metriky interaktivity. Predstavte si, \u017ee sed\u00edte pri termin\u00e1li a pok\u00fa\u0161ate sa zada\u0165 znaky do editora, ale mus\u00edte \u010daka\u0165 viac ako 10 sek\u00fand, preto\u017ee nejak\u00e1 in\u00e1 \u00faloha vyu\u017e\u00edva procesor. To nie je ve\u013emi pr\u00edjemn\u00e9.<\/p>\n<p><img decoding=\"async\" alt=\"Operating Systems: Three Easy Pieces. \u010cas\u0165 4: \u00davod do pl\u00e1nova\u010da (preklad)\" src=\"\/wp-content\/uploads\/2019\/04\/f1412665826f845fdc685ec3c1a5bdad.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTakto sa stret\u00e1vame s \u010fal\u0161\u00edm probl\u00e9mom \u2014 ako m\u00f4\u017eeme vybudova\u0165 pl\u00e1nova\u010d, ktor\u00fd by bol citliv\u00fd na \u010das odozvy?<\/p>\n<h3>Round Robin<\/h3>\n<p>\n Na rie\u0161enie tohto probl\u00e9mu bol vyvinut\u00fd algoritmus <b>Round Robin<\/b> (RR). Z\u00e1kladn\u00e1 my\u0161lienka je celkom jednoduch\u00e1: namiesto sp\u00fa\u0161\u0165ania \u00faloh do \u00fapln\u00e9ho dokon\u010denia, spust\u00edme \u00falohu na ur\u010dit\u00fd \u010dasov\u00fd interval (naz\u00fdvan\u00fd \u010dasov\u00fd kvant) a potom prejdeme na in\u00fa \u00falohu z fronty. Algoritmus opakuje svoju \u010dinnos\u0165, k\u00fdm nie s\u00fa v\u0161etky \u00falohy dokon\u010den\u00e9. Pri tom mus\u00ed by\u0165 \u010das behu programu n\u00e1sobkom \u010dasu, po ktorom \u010dasova\u010d preru\u0161\u00ed proces. Napr\u00edklad, ak \u010dasova\u010d preru\u0161uje proces ka\u017ed\u00fdch x=10ms, potom ve\u013ekos\u0165 okna vykon\u00e1vania procesu mus\u00ed by\u0165 n\u00e1sobkom 10 a by\u0165 10, 20 alebo x*10.<\/p>\n<p>Zv\u00e1\u017eme pr\u00edklad: \u00dalohy A, B, C prich\u00e1dzaj\u00fa s\u00fa\u010dasne do syst\u00e9mu a ka\u017ed\u00e1 z nich chce pracova\u0165 5 sek\u00fand. Algoritmus SJF vykon\u00e1 ka\u017ed\u00fa \u00falohu do konca, sk\u00f4r ne\u017e spust\u00ed in\u00fa. Na rozdiel od toho algoritmus RR s oknom sp\u00fa\u0161\u0165ania=1s prejde cez \u00falohy nasledovne (obr\u00e1zok 4.3):<\/p>\n<p><img decoding=\"async\" alt=\"Operating Systems: Three Easy Pieces. \u010cas\u0165 4: \u00davod do pl\u00e1nova\u010da (preklad)\" src=\"\/wp-content\/uploads\/2019\/04\/a7790cb63c880b286db2a2e3782d59b2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n(SJF znova (zl\u00e9 pre \u010das odozvy)<\/p>\n<p><img decoding=\"async\" alt=\"Operating Systems: Three Easy Pieces. \u010cas\u0165 4: \u00davod do pl\u00e1nova\u010da (preklad)\" src=\"\/wp-content\/uploads\/2019\/04\/f7e82d68a6118828ea4561a4911744e2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n(Round Robin (dobr\u00e9 pre \u010das odozvy)<\/p>\n<p>Priemern\u00fd \u010das odozvy pre algoritmus RR (0+1+2) \/ 3 = 1, zatia\u013e \u010do pre SJF (0+5+10) \/ 3 = 5.<\/p>\n<p>Je logick\u00e9 predpoklada\u0165, \u017ee \u010dasov\u00e9 okno je ve\u013emi d\u00f4le\u017eit\u00fd parameter pre RR, \u010d\u00edm je men\u0161ie, t\u00fdm je vy\u0161\u0161\u00ed \u010das odpovede. Av\u0161ak, nem\u00f4\u017eeme ho spravi\u0165 pr\u00edli\u0161 mal\u00fdm, preto\u017ee \u010das na prep\u00ednanie kontextu tie\u017e zohr\u00e1va svoju \u00falohu v celkovej v\u00fdkonnosti. T\u00fdmto sp\u00f4sobom vol\u00ed \u010dasov\u00e9 okno na vykon\u00e1vanie architekt os a z\u00e1vis\u00ed od \u00faloh, ktor\u00e9 sa v \u0148om pl\u00e1nuj\u00fa vykon\u00e1va\u0165. Prep\u00ednanie kontextu nie je jedin\u00e1 slu\u017eobn\u00e1 oper\u00e1cia, ktor\u00e1 zaber\u00e1 \u010das \u2013 spusten\u00fd program operuje s mnoh\u00fdmi \u010fal\u0161\u00edmi aspektmi, napr\u00edklad s r\u00f4znymi cachemi, a pri ka\u017edom prep\u00ednan\u00ed je potrebn\u00e9 uchov\u00e1va\u0165 a obnovova\u0165 toto prostredie, \u010do m\u00f4\u017ee tie\u017e vy\u017eadova\u0165 ve\u013ea \u010dasu.<\/p>\n<p>RR je vynikaj\u00faci pl\u00e1nova\u010d, ak by i\u0161lo len o metriku \u010dasu odpovede. Ale ako sa zachov\u00e1 metrika \u010dasu obratnosti \u00falohy pri tomto algoritme? Zoberme si pr\u00edklad vy\u0161\u0161ie, ke\u010f \u010das spracovania A, B, C = 5s a prich\u00e1dzaj\u00fa v rovnakom \u010dase. \u00daloha A sa dokon\u010d\u00ed o 13, B o 14, C o 15s a priemern\u00fd \u010das obratnosti vyjde na 14s. Tak\u017ee RR je najhor\u0161\u00ed algoritmus pre metriku obratu.<\/p>\n<p>Hovor\u00ed sa, \u017ee ak\u00fdko\u013evek algoritmus typu RR je spravodliv\u00fd, del\u00ed \u010das pr\u00e1cu na CPU rovnomerne medzi v\u0161etky procesy. Tieto metriky si teda neust\u00e1le odporuj\u00fa.<\/p>\n<p>T\u00fdm p\u00e1dom, m\u00e1me nieko\u013eko protichodn\u00fdch algoritmov a s\u00fa\u010dasne zost\u00e1va nieko\u013eko predpokladov \u2013 o tom, \u017ee \u010das \u00falohy je zn\u00e1my a \u017ee \u00faloha vyu\u017e\u00edva len CPU.<\/p>\n<h3>Zmie\u0161anie s I\/O<\/h3>\n<p>\n Predov\u0161etk\u00fdm odstran\u00edme predpoklad 4, \u017ee proces vyu\u017e\u00edva len CPU, \u010do samozrejme nie je pravda a procesy sa m\u00f4\u017eu obr\u00e1ti\u0165 aj na in\u00e9 hardv\u00e9rov\u00e9 vybavenie.<\/p>\n<p>V momente, ke\u010f ak\u00fdko\u013evek proces po\u017eaduje oper\u00e1ciu vstupu-v\u00fdstupu, proces prech\u00e1dza do stavu zablokovania, \u010dakaj\u00fac na dokon\u010denie I\/O. Ak je I\/O poslan\u00e9 na pevn\u00fd disk, tak\u00e1to oper\u00e1cia m\u00f4\u017ee trva\u0165 a\u017e nieko\u013eko ms alebo dlh\u0161ie a procesor bude v tomto momente ne\u010dinn\u00fd. V tejto dobe m\u00f4\u017ee pl\u00e1nova\u010d obsadi\u0165 procesor ak\u00fdmko\u013evek in\u00fdm procesom. Nasleduj\u00face rozhodnutie, ktor\u00e9 bude musie\u0165 pl\u00e1nova\u010d u\u010dini\u0165, je, kedy proces dokon\u010d\u00ed svoj I\/O. Ke\u010f sa to stane, d\u00f4jde k preru\u0161eniu a OS prevedie proces, ktor\u00fd po\u017eiadal o I\/O, do stavu pripravenosti.<\/p>\n<p>Zv\u00e1\u017eime pr\u00edpad z nieko\u013ek\u00fdch \u00faloh. Ka\u017ed\u00e1 z nich potrebuje 50 ms procesorov\u00e9ho \u010dasu. Av\u0161ak prv\u00e1 sa bude ka\u017ed\u00fdch 10 ms obraca\u0165 na I\/O (ktor\u00e9 sa tie\u017e vykon\u00e1va ka\u017ed\u00fdch 10 ms). Proces B jednoducho vyu\u017e\u00edva 50 ms procesora bez I\/O.<\/p>\n<p><img decoding=\"async\" alt=\"Operating Systems: Three Easy Pieces. \u010cas\u0165 4: \u00davod do pl\u00e1nova\u010da (preklad)\" src=\"\/wp-content\/uploads\/2019\/04\/a32f5346eda86042c18d6424c19ad6b9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV tomto pr\u00edklade pou\u017eijeme pl\u00e1nova\u010d STCF. Ako sa pl\u00e1nova\u010d zachov\u00e1, ak na \u0148om spust\u00edme proces A? Postupuje nasledovne \u2014 najprv \u00faplne spracuje proces A, a potom proces B.<\/p>\n<p><img decoding=\"async\" alt=\"Operating Systems: Three Easy Pieces. \u010cas\u0165 4: \u00davod do pl\u00e1nova\u010da (preklad)\" src=\"\/wp-content\/uploads\/2019\/04\/9fb709a822b9fc35871b8a342ac38c7e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTradi\u010dn\u00fd pr\u00edstup k rie\u0161eniu tohto probl\u00e9mu spo\u010d\u00edva v interpret\u00e1cii ka\u017edej 10 ms pod\u00falohy procesu A ako samostatnej \u00falohy. T\u00fdm p\u00e1dom, pri \u0161tarte s algoritmom STJF, je v\u00fdber medzi 50 ms \u00falohou a 10 ms \u00falohou jasn\u00fd. Potom, ke\u010f sa pod\u00faloha A dokon\u010d\u00ed, spust\u00ed sa proces B a I\/O. Po dokon\u010den\u00ed I\/O sa rozhodne znovu spusti\u0165 10 ms proces A namiesto procesu B. T\u00fdmto sp\u00f4sobom je mo\u017en\u00e9 realizova\u0165 prekrytie, ke\u010f CPU vyu\u017e\u00edva in\u00fd proces, zatia\u013e \u010do prv\u00fd \u010dak\u00e1 na I\/O. A ako v\u00fdsledok je syst\u00e9m lep\u0161ie vyu\u017eit\u00fd \u2014 v momente, ke\u010f interakt\u00edvne procesy \u010dakaj\u00fa na I\/O, m\u00f4\u017eu be\u017ea\u0165 aj in\u00e9 procesy na procesore.<\/p>\n<h3>Or\u00e1kulum u\u017e neexistuje.<\/h3>\n<p>\n Teraz sa pok\u00fasime zbavi\u0165 predpokladu, \u017ee doba vykon\u00e1vania \u00falohy je zn\u00e1ma. Toto je vo v\u0161eobecnosti najhor\u0161\u00ed a nerealistick\u00fd predpoklad zo v\u0161etk\u00fdch. Fakticky, v priemern\u00fdch be\u017en\u00fdch opera\u010dn\u00fdch syst\u00e9moch sama OS zvy\u010dajne ve\u013emi m\u00e1lo vie o dobe vykon\u00e1vania \u00faloh. Ako teda postavi\u0165 pl\u00e1nova\u010d bez znalosti toho, ko\u013eko \u010dasu bude \u00faloha vykon\u00e1van\u00e1? Mo\u017eno by sme mohli pou\u017ei\u0165 niektor\u00e9 princ\u00edpy RR na rie\u0161enie tohto probl\u00e9mu?<\/p>\n<h3>Z\u00e1ver<\/h3>\n<p>\n Presk\u00famali sme z\u00e1kladn\u00e9 my\u0161lienky pl\u00e1novania \u00faloh a zv\u00e1\u017eili sme 2 rodiny pl\u00e1nova\u010dov. Prv\u00fd sp\u00fa\u0161\u0165a najkrat\u0161iu \u00falohu na za\u010diatku a t\u00fdm zvy\u0161uje \u010das obratu, zatia\u013e \u010do druh\u00fd sa rozde\u013euje medzi v\u0161etky \u00falohy rovnako, zvy\u0161uj\u00faci \u010das odozvy. Oba algoritmy s\u00fa zl\u00e9 tam, kde s\u00fa dobr\u00e9 algoritmy inej rodiny. Taktie\u017e sme presk\u00famali, ako paraleln\u00e9 vyu\u017eitie CPU a I\/O m\u00f4\u017ee zlep\u0161i\u0165 v\u00fdkon, ale probl\u00e9m s predpovedan\u00edm OS sme nerie\u0161ili. Na \u010fal\u0161ej hodine presk\u00famame pl\u00e1nova\u010d, ktor\u00fd sa pozer\u00e1 na najbli\u017e\u0161iu minulos\u0165 a sna\u017e\u00ed sa predpoveda\u0165 bud\u00facnos\u0165. Naz\u00fdva sa multi-level feedback queue.<br \/>\n<br \/>Zdroj: <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.3 - 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\/sk\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-4-vvedenie-v-planirovshhik-perevod\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\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\/sk\/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\udd47Operating Systems: Three Easy Pieces. Part 4: \u00davod do pl\u00e1nova\u010da (preklad) | ProHoster","description":"\u00davod do opera\u010dn\u00fdch syst\u00e9mov Ahoj, Habr! Chcem v\u00e1m predstavi\u0165 s\u00e9riu \u010dl\u00e1nkov-prekladov jednej zauj\u00edmavej literat\u00fary \u2014 OSTEP.","canonical_url":"https:\/\/prohoster.info\/sk\/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":"sk_SK","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\/sk\/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\/sk\/wp-json\/wp\/v2\/posts\/32158","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=32158"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/32158\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/23990"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=32158"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=32158"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=32158"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}