Téma 4 Plánování práce procesorů Obsah. Plánování a jeho charakterstky 2. Plánovací algortmy a jejch vlastnost 3. Zpětnovazební plánování 4. Obecný plánovač. Plánování v multprocesorech 6. Systémy reálného času a plánování v nch 7. lgortmus RMS Motvace plánování PU Maxmálního využtí PU se dosáhne uplatněním multprogramování Jak? ěh procesu = cykly alternujících dávek [: PU dávka, I/O dávka :] PU dávka se může v čase překrývat s I/O dávkam dalších procesů Plánování práce procesorů Plánování práce procesorů 2 Typcký hstogram délek PU dávek Frontový model plánování PU 00 Frekvence 80 60 40 20 astala událost, na nž neodložený proces čekal 0 0 4 8 2 élka PU dávky [ms] Srovnej se sedmstavovým dagramem procesů v Tématu 03 Plánování práce procesorů 3 Plánování práce procesorů 4
Krtera krátkodobého plánování Užvatelsky orentovaná čas odezvy doba od vznku požadavku do reakce na něj doba obrátky doba od vznku procesu do jeho dokončení konečná lhůta (deadlne) požadavek dodržení stanoveného času dokončení předvídatelnost Úloha by měla být dokončena za zhruba stejnou dobu bez ohledu na celkovou zátěž systému Je-l systém vytížen, prodloužení odezvy by mělo být rovnoměrně rozděleno mez procesy Systémově orentovaná průchodnost počet procesů dokončených za jednotku času využtí procesoru relatvní čas procesoru věnovaný aplkačním procesům spravedlvost každý proces by měl dostat svůj čas (ne hladovění č stárnutí ) vyvažování zátěže systémových prostředků systémovéprostředky (perfere, hlavní paměť) by měly být zatěžovány v čase rovnoměrně Plánování práce procesorů Plánovač procesů ktvace plánovače (dspečeru) Obslužná rutna přerušení na svém konc vyhlásí tzv. významnou událost v systému např. dokončení přenosu dat, vyčerpání časového kvanta Významná událost aktvuje plánovač, který rozhodne, co dále Plánovač může přepnout kontext přechod od jednoho procesu k jnému je VŽYdůsledkem nějaké VÝJIMKY (nebo přerušení) Fronta přpravených procesů Plánovač rozhoduje, který proces aktvovat Proces v čele fronty dostává procesor a může tak způsobt preempc. Ta může nastat kdykolv ( bez aktvty č vědomí běžícího procesu) Fronty nemusí být prosté(fifo), může se v nch předbíhat dle prort ynamcké určení prorty procesu Klíč k dosažení cílů plánovače (spravedlvost, propustnost,...) Odhadují se měnící se charakterstky procesu Zpravdla založeno na měření chování procesu Plánování práce procesorů 6 Plánovací algortmy Ukážeme plánování: FFS (Frst-ome Frst-Served) SP (SJF) (Shortest Process ext) SRT (Shortest Remanng Tme) cyklcké (Round-Robn) zpětnovazební (Feedback) Příklad používaný v tomto textu pro lustrac algortmů Proces Čas příchodu 0 2 4 6 8 Potřebný čas (délka PU dávky) 3 6 4 2 hování se lustruje tzv. Ganttovým dagramy Plánování práce procesorů 7 Odhad délky příštídávky PU procesu élka příštídávky PU skutečného procesu je známa jen ve velm specálních případech élka dávky se odhaduje na základě nedávné hstore procesu ejčastěj se používá tzv. exponencální průměrování xponencální průměrování t n skutečná délka n-té dávky PU τ n+ odhad délky příští dávky PU α, 0 α parametr vlvu hstore τ n+ = αt n + ( α)τ n 4 Příklad: 2 α = 0, τ n+ = 0,t n + 0,τ n = 0 τ n = 0,(t n + τ n ) 8 τ 0 se volí jako průměrná 6 délka PU dávky t n 4 v systému nebo se 2 odvodí z typu nejčastějších programů 0 τ 0 =8, α=0, 0 2 3 4 6 7 8 9 0 2 Plánování práce procesorů 8
Plánování FFS FFS = Frst ome Frst Served prostáfronta FIFO ejjednodušší nepreemptvní plánování ově příchozí proces se zařadí na konec fronty Průměrné čekání může být velm dlouhé Příklad: 0 2 3 4 6 7 8 9 0 2 3 4 6 7 8 9 20 0+ + + 7+ 0 Tvg = =4,6 Průměrné čekání bychom mohl zredukovat: apř. v čase 9 je procesor volný a máme na výběr procesy, a w Vlastnost FFS FFS je prmtvní nepreemptvní plánovací postup w Průměrná doba čekání T vg slně závsí na pořadí přcházejících dávek Krátképrocesy, kterése přpravly po dlouhém procesu, vytváří tzv. konvojový efekt Všechny procesy čekají, až skončí dlouhý proces Pro krátkodobéplánováníse FFS samostatněfaktcky nepoužívá. Používá se pouze jako složka složtějších plánovacích postupů 0 2 3 4 6 7 8 9 0 2 3 4 6 7 8 9 20 0+ + 7+ 9+ Tvg = =3,6 w Plánování práce procesorů 9 Plánování práce procesorů 0 Plánování SP SP= Shortest Process ext(nejkratšíproces jako příští); též nazýváno SJF = Shortest Job Frst Opět nepreemptvní Vybírá se přpravený proces s nejkratší příští dávkou PU Krátké procesy předbíhajídelší, nebezpečí stárnutí dlouhých procesů Je-l krtérem kvalty plánování průměrnádoba čekání, je SP optmálním algortmem, což se dá exaktně dokázat Příklad: 0 2 3 4 6 7 8 9 0 2 3 4 6 7 8 9 20 0+ + 7+ 9+ Tvg = =3,6 w Plánování práce procesorů Plánování SRT SRT = Shortest Remanng Tme(nejkratší zbývající čas) Preemptvní varanta SP PU dostane proces, který potřebuje nejméněčasu do svého ukončení Jestlže exstuje proces, kterému zbývá k jeho dokončení čas kratší, než je čas zbývající do skončení procesu běžícího, dojde k preempc Může exstovat procesů se stejným zbývajícím časem, a pak je nutno použít jakés arbtrážní pravdlo Příklad: 0 2 3 4 6 7 8 9 0 2 3 4 6 7 8 9 20 0+ + 0+ 9+ 0 = w Tvg =2,0 Plánování práce procesorů 2
Prortní plánování () Každému procesu je přřazeno prortní číslo (nteger) Prortní číslo preference procesu př výběru procesu, kterému má být přřazena PU PU se přděluje procesu s nejvyšší prortou ejvyšší prortě obvykle odpovídá (obvykle) nejnžší prortní číslo Ve Wndows je to obráceně xstují se opět dvě varanty: epreemptvní Jakmle se vybranému procesu procesor předá, procesor mu nebude odňat, dokud se jeho PU dávka nedokončí Preemptvní Jakmle se ve frontě přpravených objeví proces s prortou vyšší, než je prorta právě běžícího procesu, nový proces předběhne právě běžící proces a odejme mu procesor SP SRT jsou vlastně případy prortního plánování Prortou je predkovaná délka příští PU dávky SP je nepreemptvní prortní plánování SRT je preemptvní prortní plánování Prortní plánování (2) Problém stárnutí(starvaton): Procesy s nízkou prortou nkdy nepoběží; nkdy na ně nepřjde řada Údajně: Kdyžpo řadělet vypínal v roce 973 na M.I.T. svůj IM 7094 (jeden z největších strojů své doby), našl proces s nízkou prortou, který čekal od roku 967. Řešení problému stárnutí: zrání procesů(agng) Je nutno dovolt, aby se procesu zvyšovala prorta na základě jeho hstore a doby setrvávání ve frontě přpravených ěhem čekání na procesor se prorta procesu zvyšuje Plánování práce procesorů 3 Plánování práce procesorů 4 yklcké plánování yklcká obsluha (Round-robn) RR Z prncpu preemptvní plánování Každý proces dostávápu perodcky na malý časový úsek, tzv. časové kvantum, délky q (~ desítky ms) V čstém RR se uvažuje shodná prorta všech procesů Po vyčerpání kvanta je běžícímu procesu odňato PU ve prospěch nejstaršího procesu ve frontě přpravených a dosud běžící proces se zařazuje na konec této fronty Je-l ve frontě přpravených procesůn procesů, pak každý proces získává /n-tnu doby PU Žádný proces nedostane 2 kvanta za sebou (samozřejmě pokud není jedný přpravený) Žádný proces nečeká na přdělení PU déle než (n )q časových jednotek yklcké plánování(2) fektvta slně závsí na velkost kvanta Velkékvantum blíží se chování FFS Procesy dokončí svoj PU dávku dříve, než jm vyprší kvantum. Malé kvantum => časté přepínání kontextu => značná reže Typcky osahuje se průměrné doby obrátky delší oprot plánování SRT Výraznělepší je čas odezvy Průměrná doba obrátky se může zlepšt, pokud většna procesů se doběq ukončí mprcké pravdlo pro stanoveníq: cca 80% procesůby nemělo vyčerpat kvantum Příklad: Plánování práce procesorů Plánování práce procesorů 6
Zpětnovazební plánování Základníproblém: eznáme předem časy, které budou procesy potřebovat Východsko: Penalzace procesů, které běžely dlouho Řešení: ojde-l k preempc přečerpáním časového kvanta, procesu se snžuje prorta Implementace pomocí víceúrovňových front pro každou prortu jedna ad každou frontou samostatně běžíalgortmus určtého typu plánování obvykle RR s různým kvanty a FFS pro frontu s nejnžšíprortou Příklad 0 2 3 4 6 7 8 9 0 2 3 4 6 7 8 9 20 0 0 0 2 3 4 0 2 3 0 2 3 4 0 Plánování práce procesorů 7 Přpravení procesu Preempce vyčerpáním kvanta Preempce vyčerpáním kvanta Víceúrovňové fronty Fronta - prorta 0 Fronta - prorta Fronta - prorta n ktvace ktvace Procesor Procesor Proces opouštějící procesor kvůl vyčerpání časového kvanta je přeřazen do fronty s nžší prortou Fronty s nžší prortou mohou mít delší kvanta Problém stárnutí ve frontě s nejnžší prortou Řeší se pomocí zrání (agng) v jstých časových ntervalech (~ 0 s) se zvyšuje procesům prorta, a tak se přemísťují do vyšších front ktvace Procesor Opuštěnífronty přpravených Opuštěnífronty přpravených Opuštěnífronty přpravených Plánování práce procesorů 8 Implementace víceúrovňových front Seznam přpravených procesů 6 7 8 9 č ů Implementace JOS musí dbát na rychlost přístupu k datovým strukturám, aby přepínání kontextu bylo co nejrychlejší Fronta na procesor je rozdělena na dílčí fronty, pro každou prortu jedna samostatně uspořádaná způsobem FIFO. Obecný plánovač() Tř komponenty:. Rozhodování Kterému procesu přdělt procesor (resp. který z více procesorů) 2. Prortní funkce Všem přpraveným procesům určt efektvní prorty 3. rbtrážní pravdlo o čnt, jsou-l dva procesy rovnocenné(se shodnou prortou) Rozhodování Pracuje nad frontou přpravených Rozhoduje se když:. ový proces se stane přpraveným 2. ěžící proces skončí 3. Čekající proces změní svůj stav na přpravený 4. ěžící proces se začne čekat. ěžící proces vyčerpá časové kvantum 6. Přpravenému procesu vzroste prorta nad prortu procesu běžícího Plánování práce procesorů 9 Plánování práce procesorů 20
Obecný plánovač(2) Prortní funkce Určuje efektvní prortu přpravených procesů Může závset na vlastnostech procesů Základní prortní úroveň Vysoká pro nteraktvní procesy ízká pro dávkové zpracování na pozadí ároky na paměť (velká reže odkládání): Malý proces rychléodkládání, lze snáze obsluhovat mnoho malých procesů Časové vlastnost procesu Relatvní spotřeba časových kvant elkový spotřebovaný čas Vyšší prorta krátkých procesů rbtrážní pravdlo plkuje se na přpravené procesy se stejnou efektvní prortou áhodná volba Používá se zřídka hronologcké řazení ejčastější klascká fronta (FIFO); proces s touž prortou se řadí na konec fronty Plánování práce procesorů 2 Plánování v multprocesorech Přřazování procesů (vláken) procesorům: rchtektura master/slave Klíčové funkce jádra běží vždy na jednom konkrétním procesoru Master odpovídá za plánování Slave žádáo služby mastera evýhoda: dedkace Přetížený master se stává úzkým místem systému Symetrcký multprocesng (SMP) Všechny procesory jsou s navzájem rovny Funkce jádra mohou běžet na kterémkolv procesoru SMP vyžaduje podporu vláken v jádře Proces musíbýt dělen na vlákna, aby SMP byl účnný plkace je sada vláken pracujících paralelnědo společného adresního prostoru Vlákno běží nezávsle na ostatních vláknech svého procesu Vlákna běžící na různých procesorech dramatcky zvyšují účnnost systému Plánování práce procesorů 22 Symetrcký multprocesng (SMP) Jedna společná(globální) fronta pro všechna vlákna Fronta napájí společnou sadu procesorů Fronta může být víceúrovňová dle prort Každý procesor s sám vyhledávápříští vlákno Přesněj: nstance plánovače běžícína procesoru s je sama vyhledává... Fakta: Plánovací poltky pro přdělování procesorů v multprocesoru nemají takový význam jako v monoprocesoru Možnost souběžného běhu vláken jednoho procesu na více procesorech zvyšuje potencálně dostupný výkon pro běh aplkací Problémy Jedna centrální fronta přpravených sledů vyžaduje používání vzájemného vylučování v jádře Krtcké místo v okamžku, kdy s hledá prác více procesorů Předběhnutá(přerušená) vlákna nebudou nutněpokračovat na stejném procesoru nelze proto plně využívat cache pamět procesorů Používáno ve Wndows, Lnux, Mac OS X, Solars, S4.4 Poznámky k plánování v multprocesorech Používají se různá(heurstcká) pravdla ( př globální frontě): fnta vlákna k PU použj procesor, kde vlákno jž běželo (možná, že v cache PU budou ještěúdaje z mnulého běhu) Použj nejméně využívaný procesor Mnohdy značně složté př malém počtu procesorů ( 4) může přílšná snaha o optmalzac plánování vést až k poklesu výkonu systému Tedy aspoň v tom smyslu, že výkon systému neporoste lneárněs počtem procesorů př velkém počtu procesorů dojde naopak k nasycení, neboť plánovač se musí věnovat rozhodování velm často (končí PU dávky na mnoha procesorech) Reže tak neúměrně roste Plánování práce procesorů 23 Plánování práce procesorů 24
Systémy reálného času (RT) Obvykle malé systémy se specalzovaným použtím Často vestavěné (embedded) Správnáfunkce systému závsínejen na logckém (č numerckém) výsledku ale na čase, kdy bude výsledek získán Správně určený výsledek dodaný pozdě je k nčemu Úlohy a procesy reagují na událost pocházející zvenčí systému a navenek dodávají své výsledky astávají v reálném čase a potřebná reakce musí být včasná Příklady Řízení laboratorních č průmyslových systémů Robotka Řízení letového provozu Telekomunkační aplkace (dgtální ústředny) Vojenské systémy velení a řízení... harakterstky OS RT etermnsmus Operace jsou prováděny ve fxovaných, předem určených časech nebo časových ntervalech Reakce na přerušení musí proběhnout tak, aby systém byl schopen obsluhy všech požadavků v požadovaném čase (včetně vnořených přerušení) Užvatelské řízení Užvatel (návrhář systému) specfkuje: Prorty Práva procesů o musívždy zůstat v pamět Spolehlvost egradace chování může mít katastrofální důsledky Zabezpečení Schopnost systému zachovat v případě chyby aspoň částečnou funkconaltu a udržet maxmální množství dat Plánování práce procesorů 2 Plánování práce procesorů 26 Požadavky na OS RT xtrémně rychlé přepínání mez procesy č vlákny OS musíbýt malý Multprogramovánís mezprocesním komunkačním nástroj semafory, sgnály, událost Specální souborové systémy s velkou rychlostí RM dsky, souvslé soubory Plánovánízaloženéna prortách Pozor: preempce je ale časově náročná Mnmalzace časových úseků, kdy je vypnut přerušovací systém Zvláštní hardwarové vybavení hlídací časovače (watch-dog tmers) a alarmy Plánování PU v RT systémech Tabulkou řízené statcké plánování Určuje pevně, kdy bude který proces spuštěn tak, aby včas skončl ejčastější případv uzavřených systémech s předem známým procesy a jejch vlastnostm Preemptvní plánování se statckým prortam Používá klascký prortní plánovač s fxním prortam Může být problematcké kvůl velké rež spojené s preempcí ynamcké plánování Za běhu určuje provedtelnost (splntelnost požadavků) V tzv. přísných RT systémech(hard real-tme systems) téměř nepoužtelné vlvem velké reže Hard real-tme systems musí přísně zaručovat dokončení časově krtckých procesů do předepsaného termínu Plánování práce procesorů 27 Plánování práce procesorů 28
Perodcké plánování dle konečného termínu Procesům jde zejména o včasnédokončenív rámc zadané perody běžících procesů apř. v daných ntervalech je třeba vzorkovat napětí z čdel O každém procesu je znám Potřebný čas (horní hrance délky PU dávky) Termín začátku a nejzazšího konce každého běhu perodcky spouštěného procesu Předpoklady (zjednodušení) Termín dokončení je dentcký s počátkem následující perody Požadavky na systémové prostředky (č potřebu čekání na jejch přdělení) budeme gnorovat 3 perodcké procesy Startovací čas,, Proces Konečný termín pro a start 2 Peroda p 30 40 0 Konečný termín pro a start 2 2 2 2 Příklad Procesníčas T 0 Konečný termín pro a start 2 T /p 0,333 0,37 0,00 3 4 3 3 4 0 0 20 30 40 0 60 70 80 90 00 0 20 30 40 Čas [ms] => Plánování práce procesorů 29 Plánování práce procesorů 30 Plánovatelnost v perodckých úlohách Relatvní využtí strojového času T Proces využje poměrnou část r = celkového p strojového času, kde T je procesníčas a p je jeho peroda elkové využtí je by vše mohlo pracovat musí platt r (fyzkální podmínka plánovatelnost) ášpříklad r = r= = r = = T p = = T p 3 T 0 = + + =0,808< = p 30 40 0 Plánování RMS lgortmus RMS = Rate Monotonc Schedulng Statcké prorty Pro p (kratší peroda = menší číslo ~ vyšší prorta) Používá se pro procesy s následujícím vlastnostm Perodcký proces musí skončt během své perody Procesy jsou vzájemně nezávslé Každý běh procesu (PU dávka) spotřebuje konstantní čas Předpokládá se, že preempce nastává okamžtě(bez reže) Poznatek Plánování je úspěšné, pokud se všechny procesy sthnou v době odpovídající perodě procesu s nejdelší perodou Plánování práce procesorů 3 Plánování práce procesorů 32
Plánování F F = arlest eadlne Frst Upřednostňuje proces s nejblžším termínem dokončení ynamcké prorty Plánovačvede seznam přpravených procesůuspořádaný podle požadovaných časůdokončení a spustívždy ten s nejblžším požadovaným termínem dokončení Použtelné v následujících stuacích Procesy nemusí být přísněperodcké an nemusí mít konstantní dobu běhu Pokud preempce nastává okamžtě, pak př plánování perodckých procesů lze dodržet dokončovací termíny př vytížení téměř 00% Vlastnost lgortmus není analytcky plně prozkoumán ásledky přetížení nejsou známy a nejsou předvídatelné ení známo chování v případech, kdy dokončovací termín a peroda jsou různé RMS F Proces Peroda p 30 40 0 Příklad (pokračování) 2 Procesníčas T 2 0 2 3 4 2 2 2 3 3 4 3 3 4 2 2 2 3 3 4 3 4 0 0 20 30 40 0 60 70 80 90 00 0 20 30 40 Čas [ms] Oba algortmy fungují okonce chvílem zbývá volný čas k běhu nějakého procesu na pozadí 3 r=0,808 3 4 Plánování práce procesorů 33 Plánování práce procesorů 34 Opět 3 perodcké procesy Proces Peroda p 30 40 0 Příklad 2 Procesní čas T T /p 0,00 0,37 0,00 Suma r= 0,97 < Plánovatelné Plánování RMS podrobněj obře analytcky zpracovaný algortmus zaručující dodržení termínů dokončení, pokud př procesech platí (postačující podmínka)[lu& Layland 973]: r= = lm T p ( 2 ) ( 2 ) = ln2 0. 69347 ; ( ) 2 3 4 0 20 2 0,828427 0,779763 0,76828 0,74349 0,77734 0,70298 Haváre: nesthnuto Jsou vypracovány způsoby spolupráce sdílených systémových prostředků Je známo chování algortmu př přechodném přetížení systému Používáno v téměř všech komerčních RT OS Plánování práce procesorů 3 Plánování práce procesorů 36
Plánování RMS podrobněj (2) Jak je to s použtelnostírms? P p T 7 2 0,286 0,286 2 2 2 3 2 2 2 8 3 0,37 0,66 3 0 0,00 0,76 P p T 6 2 0,333 0,333 2 2 2 3 2 2 2 2 8 3 0,37 0,708 3 0 0,00 0,808 P p T 4 0,20 0,20 2 3 3 2 2 0,200 0,40 3 6 3 0,00 0,90 Haváre - P 3 nesthnut 3( 3 2 ) = 0,7797 P p T 4 0,20 0,20 2 2 3 2 2 3 3 2 2 3 3 2 2 3 3 2 2 0,400 0,60 3 20 7 0,30,000 elkovévytížení není zřejmě základním předpokladem pro použtelnost RMS Plánování práce procesorů 37 Plánování RMS podrobněj (3) Lehoczky, Sha& ng [989] podrobl RMS analýze znovu. Výsledek: Mějme procesy P, = K p p+, = K Soustřeďme se na procesy..., (=...) a určeme vždy W( t) L = j= utnou a postačující podmínkou pro spolehlvé použtí algortmu RMS je L. Pro určováníw (t) je nepříjemný spojtý čas t. utoř ukázal, že stačí určovat W (t) jen v časech t rovných násobku perody každého z procesů apř. pro {p = 4; p 2 = ; p 3 = 3} stačí počítat W (t) a L (t) pouze pro t 4,,8,0,2,3 = mn T j { } t/ p j L( t),, L( t) = W( t)/ t, {0< t T } { } L= max { } L W (t) reprezentuje kumulatvní potřeby procesůp... P v časovém úseku [0, t] Plánování práce procesorů 38 Plánování RMS podrobněj (4) Příklady použtí uvedené teore RMS zhavaruje p T L (4) L () L (6) L L 4 0,20 0,20 0,20 0,400 0,333 0,20 2 0,200 0,40 0,00 0,600 0,667 0,00,67 3 6 3 0,00 0,90,20,200,67,67 RMS bude funkční p T L (4) L () L (8) L (0) L (2) L () L (6) L (20) L L 4 0,20 0,20 0,20 0,400 0,20 0,300 0,20 0,267 0,20 0,20 0,20 2 2 0,400 0,60 0,70 0,800 0,70 0,700 0,70 0,667 0,70 0,60 0,60,000 3 20 7 0,30,000 2,00 2,200,62,400,333,33,88,000,000 otazy Plánování práce procesorů 39 Plánování práce procesorů 40