1 / 15

7. přednáška 3. 4. 2014 - konzistence dat (příklad) multithreading (monoprocesor) sdílení času

7. přednáška 3. 4. 2014 - konzistence dat (příklad) multithreading (monoprocesor) sdílení času analýza časového kvanta priorita přepínání ( procesů, režimů ) multitasking ( proč, vývoj, vlastnosti ) přepínání kontextu prioritní fronty

lassie
Download Presentation

7. přednáška 3. 4. 2014 - konzistence dat (příklad) multithreading (monoprocesor) sdílení času

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 7. přednáška 3. 4. 2014 - konzistence dat (příklad) • multithreading (monoprocesor) • sdílení času • analýza časového kvanta • priorita • přepínání (procesů, režimů) • multitasking (proč, vývoj, vlastnosti) • přepínání kontextu • prioritní fronty • plánování běhu procesů (pojmy, rozdělení, kriteria, typy) Studijní materiály najdete na adrese: http://www.uai.fme.vutbr.cz/~vdumek/

  2. Problém konzistence - příklad Scénář Proces vytvořil vlákna T1 a T2. T1 počítá C = A + B. T2 používá hodnotu X: A = A – X; B = B + X T1 a T2 pracují souběžně, avšak jejich rychlosti nejsou známy. Úmysl programátora Nechť A = 2; B = 3; X = 10 T2 udělá A = A – X; B = B + X[A=-8,B=13,C=5] T1 spočítá C = A + B, hodnota C nezávisí na X. Možná realita T2 udělá A = A – X a pak je mu odebrán procesor. [A=-8,B=13,C=-5] T1 spočítá C = A + B = A – X + B T2 udělá B = B + X a to už hodnotu C neovlivní. V proměnné C jsou dva různé výsledky. Poznámka Kdyby nedošlo k preempci vlákna T2, žádný problém by nenastal!

  3. Multithreading Example on a Uniprocessor time Time quantum expires I/O request Request complete Thread A (Process 1) Thread B (Process 1) Time quantum expires Blocked Thread C (Process 2) Running Process created Ready

  4. Sdílení času - zajišťuje iluzi souběžného zpracování několika procesů - timeslicing - při preempci operační systém nepovolí žádnému procesu běžet neomezenou dobu, pouze určitý časový interval, jestliže proces běží dlouho, odebere mu OS v rámci přerušení časovače procesor a přidělí jej jinému procesu, délky intervalů běhu procesu jsou jednotky až desítky ms - v průměrném případě se časové sdílení neuplatní, proces většinou stihne udělat vše co potřebuje a vyvolá nějakou službu, její součástí bývá čekání na nějakou událost, takže se procesor stejně přidělí někomu jinému

  5. přidělení časového kvanta q - s doba odpovědi (s) časové kvantum (q) přidělení časového kvanta proces přeplánován opětovné přidělení časového kvanta konec interakce časové kvantum (q) běh jiného procesu doba odpovědi (s) Analýza časového kvanta - musí být podstatně větší, než režijní interval operačního systému spojený se změnou procesu (přerušení časovačem a provedení dispečerských operací) - musí být větší než typická doba interakce procesu s okolím (ne o moc, aby se nepenalizovaly I/O vázané procesy) časové kvantum větší než typická doba interakce časové kvantum menší než typická doba interakce

  6. Priorita - statická priorita - je přidělena při vytvoření, nemění se - statický časový interval - při přeplánování je čítač nastaven na konstantní hodnotu, stejnou pro všechny procesy - dynamická priorita,dynamický časový interval - mění se na základě vlastností a chování procesů, vyšší průchodnostoperačního systému - správce procesů sleduje dobu, po kterou měl proces procesor (součet momentů Running), pokud je delší než určitá doba, sníží se priorita, náročné procesy běží dlouho, krátké procesy hotovy dříve - možnost zrušení procesu při zacyklení - při přepínání kontextu se zjišťuje, vyčerpal-li proces celý svůj interval, přidělí se tím větší priorita, čím menší doba byla čerpána z povoleného intervalu (časté čekání na periferie, …)

  7. Přepínání (procesy, režimy) • u současných OS může k výměně procesů dojít kdykoliv • je spojena s přerušením (interrupt) nebo s výjimkou (trap) • clock interrupt souvisí s časovým sdílením • I/O interrupt souvisí s požadavkem na externí zařízení • výpadek stránky souvisí s MMU • výjimka způsobí ukončení procesu, závisí to i od OS, někdy se může objevit pokus o obnovu stavu • k přepínání dochází mezi procesy nebo mezi módy, funkce OS může být aktivována tzv. supervisor call • přepnutí kontextu: context switch, požadavek na přerušení, uloží se kontext aktivního procesu, zavede se kontext nového procesu do registrů procesoru, ukončí se přerušovací služba, běží nový proces, odebrání procesu, přidělení procesu - procesor se vrací z přerušení na jiné místo • přepnutí režimu: přerušení nemusí vyvolat přepnutí kontextu, provedou se privilegované instrukce a řízení se vrátí přerušenému procesu, stačí uchovávat stav procesoru, nižší režie

  8. procesor V/V Proč multitasking ? Model - zvýšení využití procesoru - pravděpodobnost čekání na V/V - pravděpodobnost pro n procesů - využití procesoru pn m = 1 - pn

  9. preemptivní multitasking - libovolné přerušení procesu bez jeho spolupráce, zvětší se kontext (kompletní stav procesoru, pomocných procesorů, …), prostředky se povolí pouze jednomu procesu (I/O kanály, tisk, porty…) - nebezpečí zablokování, řeší se prostřednictvím serverů - speciální procesy pro práci s prostředky, mají své klienty, přepnutí lze vyvolat kdykoliv, v rámci kteréhokoliv přerušení, vývoj: vzájemné volání, omezené přepínání, neomezené přepínání, kooperativní multitasking, preemptivní multitasking Výhody preemptivního multitaskingu: * přechod k jinému programu bez nutnosti přerušovat práci * snadná implementace činností, které musí probíhat paralelně (správa počítačové sítě, …), zajištění běhu dalších procesů * lepší kooperace programů (není potřeba soubory) * nutná podmínka pro víceuživatelské prostředí * lepší využití kapacity výpočetního systému (procesor ne- zahálí při čekání) Nevýhody preemptivního multitaskingu: * degradace programu při spuštění více úloh, dnes irelevantní * větší režie OS spojená s plánováním * větší, složitější, dražší, náročnější na HW * větší nároky na bezpečnost

  10. operační systém proces P0 proces P1 běží uložení kontextu P0 idle . . . privilegované instrukce předání kontextu P1 idle běží uložení kontextu P1 . . . privilegované instrukce idle předání kontextu P0 běží Přepínání kontextu procesů

  11. Plánování běhu procesů - pojmy - režim výběru – nonpreemptive (bez předbíhání), vybraný proces běží, dokud se sám neukončí, nevhodné pro víceuživatelské systémy, preemptive (s předbíháním), běžící proces lze přerušit, ochrana před monopolizací procesoru - procesy vázané na I/O – proces opakovaně alternuje mezi potřebou procesoru a periferie, dávka procesorové orientace (jednotky ms) je následována I/O operacemi (řádově delší doba) - procesorově orientovaný proces – dokázal by využívat procesor po neomezenou dobu (dlouhé procesy) - priorita procesu – narušení disciplíny FIFO (spravedlivá obsluha), prioritní úrovně (pro každou z nich je samostatná FIFO), procesy nízké priority mohou stárnout, procesy mohou měnit prioritu dynamicky

  12. Plánování běhu procesů - rozdělení dlouhodobé– strategické plánování, povolení vytvoření procesu, stupeň multitaskingu střednědobé – taktické plánování, řízení odkládání, rozhodující roli sehrává dostupná paměť, provádí správa paměti, řízení stupně multiprogramování krátkodobé – operativní plánování, plánování procesoru, aktivace přerušením časovače, I/O přerušením, službou OS, signály (semafor), uživatelsky orientované (odpověď, průchod), systémově orientované (využití, spravedlnost, propustnost) - monoprocesor, multiprocesor, RT - minimalizace doby odpovědi, co nejvyšší propustnost, co nejvyšší využití procesoru

  13. Processor RQ0 Dispatch Release RQ1 RQ2 Admit . . . RQn Preemption Blocked queue Event wait Event occurs Prioritní fronty

  14. Kriteria plánování Uživatelsky orientované (výkonnost) • doba obrátky (od předložení procesu do jeho zpracování, zahrnuje čas zpracování + čekání na zdroje), je možné měřit pro každý job • čas odezvy (pro interaktivní procesy), je lépe měřitelný než doba obrátky Systémově orientované (výkonnost) • propustnost, snaha o maximální množství procesů zpracovaných za jednotku času, závisí na délce procesů, je ovlivněno plánovací politikou, utilizací procesoru, ... • využití procesoru, čas, kdy je procesor zaměstnán, jde o významné kritérium, u jednouživatelských OS a RT je méně důležité

  15. Short-term scheduling Time-out Batch jobs Processor Ready queue Release Interactive users Ready, suspend queue Medium-term scheduling Long-term scheduling Blocked, suspend queue Blocked queue Event wait Event occurs Plánování běhu procesů

More Related