{"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\/cs\/blog\/administrirovanie\/operating-systems-three-easy-pieces-part-4-vvedenie-v-planirovshhik-perevod","title":{"rendered":"Opera\u010dn\u00ed syst\u00e9my: T\u0159i jednoduch\u00e9 kousky. \u010c\u00e1st 4: \u00davod do pl\u00e1nova\u010de (p\u0159eklad)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h1>\u00davod do opera\u010dn\u00edch syst\u00e9m\u016f<\/h1>\n<p>\nAhoj, Habr! R\u00e1d bych v\u00e1m p\u0159edstavil s\u00e9rii \u010dl\u00e1nk\u016f-p\u0159eklad\u016f jedn\u00e9 zaj\u00edmav\u00e9 literatury, kterou pova\u017euji za hodnotnou \u2014 OSTEP. Tento materi\u00e1l se hloub\u011bji zab\u00fdv\u00e1 prac\u00ed unixov\u00fdch opera\u010dn\u00edch syst\u00e9m\u016f, konkr\u00e9tn\u011b prac\u00ed s procesy, r\u016fzn\u00fdmi pl\u00e1nova\u010di, pam\u011bt\u00ed a dal\u0161\u00edmi komponentami, kter\u00e9 tvo\u0159\u00ed modern\u00ed OS. Origin\u00e1l v\u0161ech materi\u00e1l\u016f m\u016f\u017eete vid\u011bt tady <noindex><a rel=\"nofollow\" href=\"http:\/\/pages.cs.wisc.edu\/~remzi\/OSTEP\/\">tady<\/a><\/noindex>. Upozor\u0148uji, \u017ee p\u0159eklad byl proveden neprofesion\u00e1ln\u011b (pom\u011brn\u011b voln\u011b), ale douf\u00e1m, \u017ee jsem zachoval celkov\u00fd smysl.<\/p>\n<p>Laboratorn\u00ed pr\u00e1ce k tomuto p\u0159edm\u011btu najdete zde:<\/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\">m\u00e1 osobn\u00ed adaptace<\/a><\/noindex><\/li>\n<\/ul>\n<p>\nDal\u0161\u00ed \u010d\u00e1sti:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/446340\/\">\u010c\u00e1st 1: \u00davod<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/446866\/\">\u010c\u00e1st 2: Abstrakce: proces<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/447182\/\">\u010c\u00e1st 3: \u00davod do API proces\u016f<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/449026\/\">\u010c\u00e1st 4: \u00davod do pl\u00e1nova\u010de<\/a><\/noindex><\/li>\n<\/ul>\n<p>\nA m\u016f\u017eete tak\u00e9 nahl\u00e9dnout na m\u016fj kan\u00e1l na <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/bykvaadm\">Telegramu<\/a><\/noindex> =)<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>\u00davod do pl\u00e1nova\u010de<\/h2>\n<p>\n<u>Podstata probl\u00e9mu: Jak vyvinout politiku pl\u00e1nova\u010de<br \/>\nJak by se m\u011bly vyv\u00edjet z\u00e1kladn\u00ed r\u00e1mce politik pl\u00e1nova\u010de? Jak\u00e9 by m\u011bly b\u00fdt kl\u00ed\u010dov\u00e9 p\u0159edpoklady? Jak\u00e9 metriky jsou d\u016fle\u017eit\u00e9? Jak\u00e9 z\u00e1kladn\u00ed techniky byly pou\u017eity v ran\u00fdch v\u00fdpo\u010detn\u00edch syst\u00e9mech?<\/u><\/p>\n<h3>P\u0159edpoklady pracovn\u00ed z\u00e1t\u011b\u017ee<\/h3>\n<p>\n Ne\u017e za\u010dneme diskutovat o mo\u017en\u00fdch politik\u00e1ch, ud\u011blejme si n\u011bkolik zjednodu\u0161uj\u00edc\u00edch odbo\u010dek o procesech spu\u0161t\u011bn\u00fdch v syst\u00e9mu, kter\u00e9 spole\u010dn\u011b naz\u00fdv\u00e1me <b>pracovn\u00ed z\u00e1t\u011b\u017e\u00ed<\/b>. Ur\u010den\u00ed pracovn\u00ed z\u00e1t\u011b\u017ee je kritickou \u010d\u00e1st\u00ed vytv\u00e1\u0159en\u00ed politik, a \u010d\u00edm v\u00edce v\u00edte o z\u00e1t\u011b\u017ei, t\u00edm kvalitn\u011bj\u0161\u00ed politiku budete schopni napsat.<\/p>\n<p>Ud\u011bl\u00e1me n\u00e1sleduj\u00edc\u00ed p\u0159edpoklady o procesech spu\u0161t\u011bn\u00fdch v syst\u00e9mu, kter\u00e9 jsou tak\u00e9 n\u011bkdy naz\u00fdv\u00e1ny <b>jobs<\/b> (\u00fakoly). V\u0161echny tyto p\u0159edpoklady jsou prakticky nerealistick\u00e9, ale jsou pot\u0159ebn\u00e9 pro rozvoj my\u0161lenky.<\/p>\n<ol>\n<li> Ka\u017ed\u00fd \u00fakol je spu\u0161t\u011bn stejnou dobu,<\/li>\n<li> V\u0161echny \u00fakoly jsou zad\u00e1ny sou\u010dasn\u011b,<\/li>\n<li> Zadan\u00fd \u00fakol b\u011b\u017e\u00ed a\u017e do sv\u00e9ho dokon\u010den\u00ed,<\/li>\n<li> V\u0161echny \u00fakoly pou\u017e\u00edvaj\u00ed pouze CPU,<\/li>\n<li> Doba b\u011bhu ka\u017ed\u00e9ho \u00fakolu je zn\u00e1ma.<\/li>\n<\/ol>\n<h3>Metriky pl\u00e1nova\u010de<\/h3>\n<p>\n Krom\u011b ur\u010dit\u00fdch p\u0159edpoklad\u016f o z\u00e1t\u011b\u017ei je tak\u00e9 nutn\u00fd n\u00e1stroj pro porovn\u00e1n\u00ed r\u016fzn\u00fdch pl\u00e1novac\u00edch politik: metriky pl\u00e1nova\u010de. Metrika je jen n\u011bjak\u00e1 m\u00edra n\u011b\u010deho. Existuje ur\u010dit\u00e9 mno\u017estv\u00ed metrik, kter\u00e9 lze pou\u017e\u00edt pro porovn\u00e1n\u00ed pl\u00e1nova\u010d\u016f.<\/p>\n<p>Jako p\u0159\u00edklad pou\u017eijeme metriku, kter\u00e1 se naz\u00fdv\u00e1 <b>\u010das obratu<\/b> (turnaround time). \u010cas obratu \u00fakolu je definov\u00e1n jako rozd\u00edl mezi \u010dasem dokon\u010den\u00ed \u00fakolu a \u010dasem p\u0159\u00edchodu \u00fakolu do syst\u00e9mu.<\/p>\n<p><u>Tturnaround=Tcompletion\u2212Tarrival<\/u><\/p>\n<p>Jeliko\u017e jsme p\u0159edpokl\u00e1dali, \u017ee v\u0161echny \u00fakoly p\u0159i\u0161ly ve stejnou dobu, Ta=0 a t\u00edm p\u00e1dem Tt=Tc. Tato hodnota se samoz\u0159ejm\u011b zm\u011bn\u00ed, kdy\u017e zm\u011bn\u00edme v\u00fd\u0161e uveden\u00e9 p\u0159edpoklady.<\/p>\n<p>Dal\u0161\u00ed metrikou je <b>fairness<\/b> (spravedlnost). V\u00fdkon a spravedlnost jsou \u010dasto protich\u016fdn\u00e9 vlastnosti v pl\u00e1nov\u00e1n\u00ed. Nap\u0159\u00edklad pl\u00e1nova\u010d m\u016f\u017ee optimalizovat v\u00fdkon, ale na \u00fakor \u010dek\u00e1n\u00ed na spu\u0161t\u011bn\u00ed jin\u00fdmi \u00fakoly, \u010d\u00edm\u017e se sni\u017euje spravedlnost.<\/p>\n<h3>FIRST IN FIRST OUT (FIFO)<\/h3>\n<p>\n Nejd\u016fle\u017eit\u011bj\u0161\u00ed algoritmus, kter\u00fd m\u016f\u017eeme implementovat, se naz\u00fdv\u00e1 FIFO nebo <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, p\u0159i\u010dem\u017e vykon\u00e1v\u00e1 pr\u00e1ci docela dob\u0159e.<\/p>\n<p>Zva\u017eme jednoduch\u00fd p\u0159\u00edklad. P\u0159edpokl\u00e1dejme, \u017ee byly sou\u010dasn\u011b zad\u00e1ny 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 vykon\u00e1v\u00e1n\u00ed bude d\u0159\u00edve ne\u017e ostatn\u00ed, stejn\u011b jako B vzhledem k V. P\u0159edpokl\u00e1dejme, \u017ee ka\u017ed\u00fd z nich bude prov\u00e1d\u011bn 10 sekund. Jak\u00fd bude pr\u016fm\u011brn\u00fd \u010das vykon\u00e1v\u00e1n\u00ed t\u011bchto \u00fakol\u016f?<\/p>\n<p><img decoding=\"async\" alt=\"Opera\u010dn\u00ed syst\u00e9my: T\u0159i jednoduch\u00e9 kousky. \u010c\u00e1st 4: \u00davod do pl\u00e1nova\u010de (p\u0159eklad)\" 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 jejich d\u011blen\u00ed t\u0159emi, z\u00edsk\u00e1me pr\u016fm\u011brn\u00fd \u010das vykon\u00e1v\u00e1n\u00ed programu roven 20 sekund\u00e1m.<br \/>\n Nyn\u00ed se pokus\u00edme zm\u011bnit na\u0161e p\u0159edpoklady. Konkr\u00e9tn\u011b p\u0159edpoklad 1, a t\u00edm p\u00e1dem nebudeme v\u00edce p\u0159edpokl\u00e1dat, \u017ee ka\u017ed\u00fd \u00fakol se vykon\u00e1v\u00e1 stejnou dobu. Jak se v tomto p\u0159\u00edpad\u011b osv\u011bd\u010d\u00ed FIFO?<\/p>\n<p>Jak se ukazuje, r\u016fzn\u00e1 doba vykon\u00e1v\u00e1n\u00ed \u00fakol\u016f m\u00e1 velmi negativn\u00ed vliv na produktivitu algoritmu FIFO. P\u0159edpokl\u00e1dejme, \u017ee \u00fakol A bude vykon\u00e1v\u00e1n 100 sekund, zat\u00edmco B a V st\u00e1le po 10 ka\u017ed\u00e1.<\/p>\n<p><img decoding=\"async\" alt=\"Opera\u010dn\u00ed syst\u00e9my: T\u0159i jednoduch\u00e9 kousky. \u010c\u00e1st 4: \u00davod do pl\u00e1nova\u010de (p\u0159eklad)\" src=\"\/wp-content\/uploads\/2019\/04\/a375f3d1571f24df30f446b9bc7a9a9e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n Jak je vid\u011bt z 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 spot\u0159ebitel\u00e9 n\u011bjak\u00e9ho zdroje \u010dekaj\u00ed v \u0159ad\u011b za t\u011b\u017ek\u00fdm spot\u0159ebitelem. Je to podobn\u00e9 jako fronta v obchod\u011b, kdy p\u0159ed v\u00e1mi stoj\u00ed z\u00e1kazn\u00edk s pln\u00fdm voz\u00edkem. Nejlep\u0161\u00ed \u0159e\u0161en\u00ed probl\u00e9mu je pokusit se zm\u011bnit pokladnu nebo si prost\u011b odpo\u010dinout a zhluboka d\u00fdchat.<\/p>\n<h3>Nejkrat\u0161\u00ed \u00fakol prvn\u00ed<\/h3>\n<p>\n M\u016f\u017ee se n\u011bjak vy\u0159e\u0161it podobn\u00e1 situace s t\u011b\u017ek\u00fdmi procesy? Samoz\u0159ejm\u011b. Jin\u00fd typ pl\u00e1nov\u00e1n\u00ed se naz\u00fdv\u00e1<b>Nejkrat\u0161\u00ed \u00fakol prvn\u00ed<\/b> (SJF). Jeho algoritmus je tak\u00e9 dost primitivn\u00ed \u2014 jak napov\u00edd\u00e1 n\u00e1zev, nejprve budou spu\u0161t\u011bny nejkrat\u0161\u00ed \u00fakoly jeden za druh\u00fdm.<\/p>\n<p><img decoding=\"async\" alt=\"Opera\u010dn\u00ed syst\u00e9my: T\u0159i jednoduch\u00e9 kousky. \u010c\u00e1st 4: \u00davod do pl\u00e1nova\u010de (p\u0159eklad)\" 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 obratu program\u016f a bude rovno <b>50 m\u00edsto 110<\/b>, co\u017e je prakticky dvakr\u00e1t lep\u0161\u00ed.<\/p>\n<p>Tak\u017ee za p\u0159edpokladu, \u017ee v\u0161echny \u00fakoly p\u0159ich\u00e1zej\u00ed ve stejnou dobu, se algoritmus SJF jev\u00ed jako nejoptim\u00e1ln\u011bj\u0161\u00ed. Na\u0161e p\u0159edpoklady se v\u0161ak st\u00e1le nezdaj\u00ed realistick\u00e9. Tentokr\u00e1t zm\u011bn\u00edme p\u0159edpoklad 2 a p\u0159edstav\u00edme si, \u017ee \u00fakoly mohou p\u0159ich\u00e1zet kdykoliv, nikoli v\u0161echny najednou. K jak\u00fdm probl\u00e9m\u016fm to m\u016f\u017ee v\u00e9st?<\/p>\n<p><img decoding=\"async\" alt=\"Opera\u010dn\u00ed syst\u00e9my: T\u0159i jednoduch\u00e9 kousky. \u010c\u00e1st 4: \u00davod do pl\u00e1nova\u010de (p\u0159eklad)\" src=\"\/wp-content\/uploads\/2019\/04\/2f0145551779f2733281d12bffad3a45.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u0159edstavme si, \u017ee \u00fakol A (100s) p\u0159ich\u00e1z\u00ed jako prvn\u00ed a za\u010d\u00edn\u00e1 se vykon\u00e1vat. V okam\u017eiku t=10 p\u0159ich\u00e1zej\u00ed \u00fakoly B a C, z nich\u017e ka\u017ed\u00fd trv\u00e1 10 sekund. Pr\u016fm\u011brn\u00fd \u010das prov\u00e1d\u011bn\u00ed tedy bude (100+(110-10)+(120-10))\/3 = 103. Co by pl\u00e1nova\u010d mohl ud\u011blat, aby zlep\u0161il situaci?<\/p>\n<h3>Shortest Time-to-Completion First (STCF)<\/h3>\n<p>\n Abychom zlep\u0161ili situaci, opust\u00edme p\u0159edpoklad 3, \u017ee program je spu\u0161t\u011bn a b\u011b\u017e\u00ed a\u017e do dokon\u010den\u00ed. D\u00e1le budeme pot\u0159ebovat podporu hardware a, jak jste mo\u017en\u00e1 uh\u00e1dli, budeme pou\u017e\u00edvat <b>\u010dasova\u010d<\/b> k p\u0159eru\u0161en\u00ed b\u011b\u017e\u00edc\u00edho \u00fakolu a <b>p\u0159ep\u00edn\u00e1n\u00ed kontext\u016f<\/b>. Tak\u017ee pl\u00e1nova\u010d m\u016f\u017ee n\u011bco ud\u011blat v okam\u017eiku p\u0159\u00edchodu \u00fakol\u016f B a C \u2014 p\u0159eru\u0161it vykon\u00e1v\u00e1n\u00ed \u00fakolu A a zah\u00e1jit zpracov\u00e1n\u00ed \u00fakol\u016f B a C, a po jejich dokon\u010den\u00ed pokra\u010dovat ve vykon\u00e1v\u00e1n\u00ed procesu A. Takov\u00fd pl\u00e1nova\u010d se naz\u00fdv\u00e1 <b>STCF<\/b>nebo <b>Preemptive Job First<\/b>.<\/p>\n<p><img decoding=\"async\" alt=\"Opera\u010dn\u00ed syst\u00e9my: T\u0159i jednoduch\u00e9 kousky. \u010c\u00e1st 4: \u00davod do pl\u00e1nova\u010de (p\u0159eklad)\" src=\"\/wp-content\/uploads\/2019\/04\/81644f82b7b1489f239ebbdc5d78000b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV\u00fdsledkem pr\u00e1ce tohoto pl\u00e1nova\u010de bude n\u00e1sleduj\u00edc\u00ed v\u00fdsledek: ((120-0)+(20-10)+(30-10))\/3=50. Takov\u00fd pl\u00e1nova\u010d se tedy st\u00e1v\u00e1 je\u0161t\u011b optimaln\u011bj\u0161\u00edm pro na\u0161e \u00fakoly.<\/p>\n<h3>Metrika Doba odezvy (Response Time)<\/h3>\n<p>\n Jakmile zn\u00e1me dobu b\u011bhu \u00fakol\u016f a v\u00edme, \u017ee tyto \u00fakoly pou\u017e\u00edvaj\u00ed pouze CPU, bude STCF nejlep\u0161\u00edm \u0159e\u0161en\u00edm. V d\u0159\u00edv\u011bj\u0161\u00edch obdob\u00edch tyto algoritmy fungovaly a celkem dob\u0159e. Av\u0161ak nyn\u00ed u\u017eivatel tr\u00e1v\u00ed v\u011bt\u0161inu \u010dasu u termin\u00e1lu a o\u010dek\u00e1v\u00e1 produktivn\u00ed interaktivn\u00ed interakci. Tak se zrodila nov\u00e1 metrika \u2014 <b>doba odezvy<\/b> (reakce).<\/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 zjistit, \u017ee algoritmus STCF v\u016fbec nen\u00ed dobr\u00fd v situaci, kdy t\u0159i \u00fakoly doraz\u00ed najednou \u2014 bude se muset po\u010dkat, dokud se mal\u00e9 \u00fakoly zcela nedokon\u010d\u00ed. T\u00edm p\u00e1dem je algoritmus dobr\u00fd pro m\u011b\u0159en\u00ed doby obratu, ale \u0161patn\u00fd pro m\u011b\u0159en\u00ed interaktivity. P\u0159edstavte si, \u017ee sed\u00edte u termin\u00e1lu a sna\u017e\u00edte se napsat znaky v editoru, ale mus\u00edte \u010dekat v\u00edce ne\u017e 10 sekund, proto\u017ee n\u011bjak\u00fd jin\u00fd \u00fakol zab\u00edr\u00e1 procesor. To nen\u00ed zrovna p\u0159\u00edjemn\u00e9.<\/p>\n<p><img decoding=\"async\" alt=\"Opera\u010dn\u00ed syst\u00e9my: T\u0159i jednoduch\u00e9 kousky. \u010c\u00e1st 4: \u00davod do pl\u00e1nova\u010de (p\u0159eklad)\" src=\"\/wp-content\/uploads\/2019\/04\/f1412665826f845fdc685ec3c1a5bdad.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nT\u00edm p\u00e1dem se setk\u00e1v\u00e1me s jin\u00fdm probl\u00e9mem \u2014 jak m\u016f\u017eeme postavit pl\u00e1nova\u010d, kter\u00fd by byl citliv\u00fd na dobu odezvy?<\/p>\n<h3>Round Robin<\/h3>\n<p>\n Pro vy\u0159e\u0161en\u00ed tohoto probl\u00e9mu byl vyvinut algoritmus <b>Round Robin<\/b> (RR). Hlavn\u00ed my\u0161lenka je docela jednoduch\u00e1: m\u00edsto b\u011bhu \u00fakol\u016f a\u017e do jejich \u00fapln\u00e9ho dokon\u010den\u00ed budeme spou\u0161t\u011bt \u00fakol na ur\u010dit\u00fd \u010dasov\u00fd \u00fasek (naz\u00fdvan\u00fd \u010dasov\u00fd kvant) a pak p\u0159ejdeme na jin\u00fd \u00fakol z fronty. Algoritmus opakuje svou pr\u00e1ci, dokud v\u0161echny \u00fakoly nejsou dokon\u010deny. P\u0159itom doba b\u011bhu programu by m\u011bla b\u00fdt n\u00e1sobkem doby, po kter\u00e9 \u010dasova\u010d p\u0159eru\u0161\u00ed proces. Nap\u0159\u00edklad, pokud \u010dasova\u010d p\u0159eru\u0161\u00ed proces ka\u017ed\u00fdch x=10ms, pak velikost okna prov\u00e1d\u011bn\u00ed procesu mus\u00ed b\u00fdt n\u00e1sobkem 10 a b\u00fdt 10, 20 nebo x*10.<\/p>\n<p>Zva\u017eme p\u0159\u00edklad: \u00dakoly A, B a C doraz\u00ed sou\u010dasn\u011b do syst\u00e9mu a ka\u017ed\u00fd z nich chce pracovat 5 sekund. Algoritmus SJF provede ka\u017ed\u00fd \u00fakol do konce, ne\u017e spust\u00ed jin\u00fd. Na rozd\u00edl od toho algoritmus RR s oknem spu\u0161t\u011bn\u00ed=1s projde \u00fakoly n\u00e1sleduj\u00edc\u00edm zp\u016fsobem (obr. 4.3):<\/p>\n<p><img decoding=\"async\" alt=\"Opera\u010dn\u00ed syst\u00e9my: T\u0159i jednoduch\u00e9 kousky. \u010c\u00e1st 4: \u00davod do pl\u00e1nova\u010de (p\u0159eklad)\" src=\"\/wp-content\/uploads\/2019\/04\/a7790cb63c880b286db2a2e3782d59b2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n(SJF Op\u011bt (\u0160patn\u00e9 pro \u010cas Odezvy)<\/p>\n<p><img decoding=\"async\" alt=\"Opera\u010dn\u00ed syst\u00e9my: T\u0159i jednoduch\u00e9 kousky. \u010c\u00e1st 4: \u00davod do pl\u00e1nova\u010de (p\u0159eklad)\" src=\"\/wp-content\/uploads\/2019\/04\/f7e82d68a6118828ea4561a4911744e2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n(Round Robin (Dobr\u00e9 pro \u010cas Odezvy)<\/p>\n<p>Pr\u016fm\u011brn\u00e1 doba odezvy pro algoritmus RR (0+1+2) \/ 3 = 1, zat\u00edmco pro SJF (0+5+10) \/ 3 = 5.<\/p>\n<p>Je logick\u00e9 p\u0159edpokl\u00e1dat, \u017ee \u010dasov\u00e9 okno je pro RR velmi d\u016fle\u017eit\u00fd parametr, \u010d\u00edm men\u0161\u00ed je, t\u00edm vy\u0161\u0161\u00ed je doba odezvy. Av\u0161ak nen\u00ed mo\u017en\u00e9 jej tak\u00e9 ud\u011blat p\u0159\u00edli\u0161 mal\u00fdm, proto\u017ee \u010das pot\u0159ebn\u00fd na p\u0159ep\u00edn\u00e1n\u00ed kontextu hraje rovn\u011b\u017e svou roli v celkov\u00e9m v\u00fdkonu. V\u00fdb\u011br doby prov\u00e1d\u011bn\u00ed tedy ur\u010duje architekt OS a z\u00e1vis\u00ed na \u00faloh\u00e1ch, kter\u00e9 se v n\u00ed pl\u00e1nuj\u00ed vykon\u00e1vat. P\u0159ep\u00edn\u00e1n\u00ed kontextu nen\u00ed jedin\u00e1 servisn\u00ed operace, kter\u00e1 spot\u0159ebov\u00e1v\u00e1 \u010das \u2014 spu\u0161t\u011bn\u00fd program operuje s mnoha dal\u0161\u00edmi faktory, jako jsou r\u016fzn\u00e9 cache, a p\u0159i ka\u017ed\u00e9m p\u0159ep\u00edn\u00e1n\u00ed je nutn\u00e9 tuto prost\u0159ed\u00ed ulo\u017eit a obnovit, co\u017e tak\u00e9 m\u016f\u017ee vy\u017eadovat hodn\u011b \u010dasu.<\/p>\n<p>RR je skv\u011bl\u00fd pl\u00e1nova\u010d, pokud by \u0161lo pouze o metriku doby odezvy. Ale jak se zachov\u00e1 metrika doby obratu \u00fakolu v tomto algoritmu? Zva\u017eme v\u00fd\u0161e uveden\u00fd p\u0159\u00edklad, kdy doba pr\u00e1ce A, B, C = 5s a p\u0159ich\u00e1zej\u00ed ve stejn\u00e9m \u010dase. \u00dakol A se dokon\u010d\u00ed v 13, B v 14, C v 15s a pr\u016fm\u011brn\u00e1 doba obratu bude 14s. T\u00edm p\u00e1dem je RR nejhor\u0161\u00ed algoritmus pro metriku obratu.<\/p>\n<p>Obecn\u011b \u0159e\u010deno, ka\u017ed\u00fd algoritmus typu RR je spravedliv\u00fd, rozd\u011bluje \u010das b\u011bhu na CPU rovnom\u011brn\u011b mezi v\u0161echny procesy. A t\u00edmto zp\u016fsobem si tyto metriky neust\u00e1le proti\u0159e\u010d\u00ed.<\/p>\n<p>M\u00e1me tedy n\u011bkolik protikladn\u00fdch algoritm\u016f a st\u00e1le zb\u00fdv\u00e1 n\u011bkolik p\u0159edpoklad\u016f \u2014 \u017ee doba \u00fakolu je zn\u00e1ma a \u017ee \u00fakol pou\u017e\u00edv\u00e1 pouze CPU.<\/p>\n<h3>Sm\u00edch\u00e1n\u00ed s I\/O<\/h3>\n<p>\n V prvn\u00ed \u0159ad\u011b se zbav\u00edme p\u0159edpokladu 4, \u017ee proces pou\u017e\u00edv\u00e1 pouze CPU, co\u017e samoz\u0159ejm\u011b nen\u00ed pravda, procesy mohou p\u0159istupovat i k jin\u00e9mu hardwaru.<\/p>\n<p>V okam\u017eiku, kdy jak\u00fdkoli proces po\u017eaduje operaci vstupu-v\u00fdstupu, se proces dost\u00e1v\u00e1 do stavu blocked, \u010dekaj\u00edc na dokon\u010den\u00ed I\/O. Pokud je I\/O zas\u00edl\u00e1no na pevn\u00fd disk, takov\u00e1 operace m\u016f\u017ee trvat a\u017e n\u011bkolik milisekund nebo d\u00e9le, a procesor v tuto chv\u00edli z\u016fstane ne\u010dinn\u00fd. V tuto chv\u00edli m\u016f\u017ee pl\u00e1nova\u010d zabrat procesor jak\u00fdmkoli jin\u00fdm procesem. Dal\u0161\u00ed rozhodnut\u00ed, kter\u00e9 mus\u00ed pl\u00e1nova\u010d u\u010dinit, je, kdy proces dokon\u010d\u00ed sv\u016fj I\/O. Kdy\u017e k tomu dojde, dojde k p\u0159eru\u0161en\u00ed a OS p\u0159evede proces, kter\u00fd spustil I\/O, do stavu ready.<\/p>\n<p>Poj\u010fme se pod\u00edvat na p\u0159\u00edklad n\u011bkolika \u00faloh. Ka\u017ed\u00e1 z nich pot\u0159ebuje 50 ms procesorov\u00e9ho \u010dasu. Prvn\u00ed \u00faloha se v\u0161ak ka\u017ed\u00fdch 10 ms obrac\u00ed na I\/O (kter\u00e9 se tak\u00e9 vykon\u00e1v\u00e1 po 10 ms). Proces B jednodu\u0161e pou\u017e\u00edv\u00e1 50 ms procesor bez I\/O.<\/p>\n<p><img decoding=\"async\" alt=\"Opera\u010dn\u00ed syst\u00e9my: T\u0159i jednoduch\u00e9 kousky. \u010c\u00e1st 4: \u00davod do pl\u00e1nova\u010de (p\u0159eklad)\" src=\"\/wp-content\/uploads\/2019\/04\/a32f5346eda86042c18d6424c19ad6b9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV tomto p\u0159\u00edkladu pou\u017eijeme pl\u00e1nova\u010d STCF. Jak se zachov\u00e1 pl\u00e1nova\u010d, pokud na n\u011bm spust\u00edme proces A? Postupuje n\u00e1sledovn\u011b - nejprve zcela zpracuje proces A a pot\u00e9 proces B.<\/p>\n<p><img decoding=\"async\" alt=\"Opera\u010dn\u00ed syst\u00e9my: T\u0159i jednoduch\u00e9 kousky. \u010c\u00e1st 4: \u00davod do pl\u00e1nova\u010de (p\u0159eklad)\" src=\"\/wp-content\/uploads\/2019\/04\/9fb709a822b9fc35871b8a342ac38c7e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTradi\u010dn\u00ed p\u0159\u00edstup k \u0159e\u0161en\u00ed tohoto probl\u00e9mu je interpretovat ka\u017edou 10-ms pod\u00falohu procesu A jako samostatn\u00fd \u00fakol. T\u00edmto zp\u016fsobem, p\u0159i spu\u0161t\u011bn\u00ed s algoritmem STJF, je v\u00fdb\u011br mezi 50-ms \u00falohou a 10-ms \u00falohou z\u0159ejm\u00fd. Pot\u00e9, co se pod\u00faloha A dokon\u010d\u00ed, se spust\u00ed proces B a I\/O. Po dokon\u010den\u00ed I\/O se rozhodne znovu spustit 10-ms proces A m\u00edsto procesu B. Takto je mo\u017en\u00e9 realizovat p\u0159ekryt\u00ed, kdy je CPU pou\u017e\u00edv\u00e1n jin\u00fdm procesem, zat\u00edmco prvn\u00ed \u010dek\u00e1 na I\/O. A jako v\u00fdsledek je syst\u00e9m l\u00e9pe vyu\u017e\u00edv\u00e1n - v okam\u017eiku, kdy interaktivn\u00ed procesy \u010dekaj\u00ed na I\/O, mohou se na procesoru vykon\u00e1vat i jin\u00e9 procesy.<\/p>\n<h3>Oracle u\u017e neexistuje.<\/h3>\n<p>\n Te\u010f se pokus\u00edme zbavit p\u0159edpokladu, \u017ee doba b\u011bhu \u00faloh je zn\u00e1ma. To je vcelku nejhor\u0161\u00ed a nerealistick\u00fd p\u0159edpoklad ze seznamu. Ve skute\u010dnosti pr\u016fm\u011brn\u00e9 b\u011b\u017en\u00e9 opera\u010dn\u00ed syst\u00e9my samotn\u00e9 velmi m\u00e1lo v\u011bd\u00ed o dob\u011b vykon\u00e1n\u00ed \u00fakol\u016f, jak bychom tedy mohli vytvo\u0159it pl\u00e1nova\u010d bez znalosti toho, kolik \u010dasu \u00faloha bude pot\u0159ebovat? Mo\u017en\u00e1 bychom mohli pou\u017e\u00edt n\u011bkter\u00e9 principy RR k \u0159e\u0161en\u00ed tohoto probl\u00e9mu?<\/p>\n<h3>V\u00fdsledek<\/h3>\n<p>\n Prozkoumali jsme z\u00e1kladn\u00ed my\u0161lenky pl\u00e1nov\u00e1n\u00ed \u00faloh a zkoumali jsme 2 rodiny pl\u00e1nova\u010d\u016f. Prvn\u00ed spou\u0161t\u00ed nejkrat\u0161\u00ed \u00falohu na za\u010d\u00e1tku, \u010d\u00edm\u017e zvy\u0161uje doby ob\u011bhu; druh\u00fd se p\u0159eru\u0161uje mezi v\u0161emi \u00falohami rovnom\u011brn\u011b, \u010d\u00edm\u017e zvy\u0161uje dobu odezvy. Oba algoritmy jsou \u0161patn\u00e9 tam, kde jsou dobr\u00e9 algoritmy jin\u00e9 rodiny. Tak\u00e9 jsme zkoumali, jak paraleln\u00ed pou\u017eit\u00ed CPU a I\/O mohou zlep\u0161it v\u00fdkon, ale nevy\u0159e\u0161ili jsme probl\u00e9m s prorock\u00fdm vid\u011bn\u00edm OS. Na n\u00e1sleduj\u00edc\u00ed lekci prozkoum\u00e1me pl\u00e1nova\u010d, kter\u00fd se d\u00edv\u00e1 do bl\u00edzk\u00e9 minulosti a sna\u017e\u00ed se p\u0159edpov\u011bd\u011bt budoucnost. Naz\u00fdv\u00e1 se 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.4 - 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\/cs\/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.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\/cs\/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\udd47Opera\u010dn\u00ed syst\u00e9my: T\u0159i jednoduch\u00e9 \u010d\u00e1sti. \u010c\u00e1st 4: \u00davod do pl\u00e1nova\u010de (p\u0159eklad) | ProHoster","description":"\u00davod do opera\u010dn\u00edch syst\u00e9m\u016f Ahoj, Habr! Chci v\u00e1m p\u0159edstavit svou s\u00e9rii p\u0159eklad\u016f jedn\u00e9 zaj\u00edmav\u00e9 literatury \u2014 OSTEP.","canonical_url":"https:\/\/prohoster.info\/cs\/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":"cs_CZ","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\/cs\/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\/cs\/wp-json\/wp\/v2\/posts\/32158","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=32158"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/32158\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/23990"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=32158"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=32158"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=32158"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}