13/04/20151 Multitasking Schopnost operačního systému mít spuštěno více programů současně Operační systém používá hardwarové hodiny a každému běžícímu.

Slides:



Advertisements
Podobné prezentace
(instance konkrétní třídy)
Advertisements

SOFTWARE dálkové studium PODNIKÁNÍ 2. listopad 2006.
ÚVOD DO CPP 7 Dědičnost - pokračování
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
Operační systémy. OPERAČNÍ SYSTÉMY pomoc operátorovi, podpora vlastností reálného času, víceuživatelských a více úlohových systémů.
1NPRG054 Vývoj vysoce výkonného software /2013 David Bednárek Domácí úkol.
Počítače a programování 1. Obsah přednášky Výjimky - základní typy výjimek Způsoby zpracování výjimek.
Otázky k absolutoriu HW 1 - 5
J a v a Začínáme programovat Lucie Žoltá metody, objekty, konstruktor.
State. State – kontext a problém Kontext  chování objektu má záviset na jeho stavu, který se typicky mění za běhu Neflexibilní řešení  metody obsahují.
Proces řízení projektu
Páté cvičení Dědičnost Interface Abstarktní třídy a metody
13AMP 6. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Synchronizace procesů Synchronizace procesů Producent-Konzument Producent-Konzument.
Mgr. Jan Lavrinčík, DiS..  pro proměnnou typu Date alokováno 8 bajtů paměti, které obsahují spakovaný vzorek bitů nejen pro datum, ale i pro přesný čas.
Podmíněné vykonávání a rozvětvení. Co je to? Podmíněné vykonávání = nechceme provést všechny příkazy, chceme určité části kódu něčím podmínit Rozvětvení.
Seminář C cvičení STL, Trolltech Ing. Jan Mikulka.
C# - Exceptions (výjimky)
Objektové programování
Podpora vláken a jejich synchronizace v jazyce C# Jan Kučera Jan Mittner Petr Effenberger 4IT353 Klient/server aplikace v Javě.
Operační systémy.
Jedenácté cvičení Vlákna. Java cv112 Vlákna Operační systém Mutitasking – více úloh se v operačním programu vykonává „současně“ Java Multithreading -
Seminář C cvičení Obsluha výjimek Ing. Jan Mikulka.
08/04/20151 Delegáty (1) Delegát (delegate) je datový typ, který definuje signaturu metody Delegáty bývají rovněž označovány jako typo- vě bezpečné ukazatele.
PRÁCE S VLÁKNY A APLIKAČNÍ DOMÉNY V.NET FRAMEWORK APLIKACÍCH Architektura technologie.NET Jan Martinovič, FEI - Katedra Informatiky.
13AMP 2. přednáška Ing. Martin Molhanec, CSc.. Stav procesu (kontext) Stav procesu je úplná informace, kterou je nutné uschovat při přerušení procesu,
KIV/PPA1 cvičení 8 Cvičící: Pavel Bžoch. Osnova cvičení Objekty v Javě Třída Konstruktor Metody Metody a proměnné třídy x instance Program sestávající.
Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou I NFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Ing. Jan Roubíček.
IB111 Programování a algoritmizace
13AMP 3. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled I. Co je to kontext úlohy Co je to kontext úlohy Task switching (přepnutí úlohy)
Dědičnost - inheritance dědičnost je jednou z forem znovupoužitelnosti dědičnost je jednou z forem znovupoužitelnosti B A Třída A je předkem třídy B Třída.
12/04/20151 Kolekce (1) Kolekce (collection) představují standardní datové struktury (seskupení) prvků (objektů) Jsou definovány ve jmenném prostoru System.Collections.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
13/04/20151 Indexery (1) Členy třídy (struktury) umožňující třídě (struk- tuře) používat hranaté závorky a pracovat s ní podobně jako s polem (používat.
13/04/20151 Datový typ třída – class (1) Datový typ definovaný uživatelem Poskytuje mechanismus pro modelování entit, s nimiž manipulují aplikace Charakterizuje.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Pojmy a vlastnosti operačních systémů Šablona 32 VY_32_INOVACE_7_5_Pojmy a vlastnosti operačních systémů.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Co je to OS Správce prostředků –spravuje a přiděluje systémové zdroje systému úlohám, stará se o jejich efektivní sdílení procesoru (ů) operační paměti.
Výrok „Vypadá to, že jsme narazili na hranici toho, čeho je možné dosáhnout s počítačovými technologiemi. Člověk by si ale měl dávat pozor na takováto.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Mikroprocesor.
Základy operačních systémů Meziprocesová komunikace a synchronizace Jakub Yaghob.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
23/04/20151 LINQ (1) LINQ (Language Integrated Query) je součást MS.NET Frameworku umožňující jednotný přístup k datům a jejich zpracování deklarativ-
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
ZÁKLADNÍ ŠKOLA SLOVAN, KROMĚŘÍŽ, PŘÍSPĚVKOVÁ ORGANIZACE ZEYEROVA 3354, KROMĚŘÍŽ projekt v rámci vzdělávacího programu VZDĚLÁNÍ PRO KONKURENCESCHOPNOST.
Stránkování MATĚJ JURIČIČ 2015/2016 EP1 SPŠ A VOŠ JANA PALACHA KLADNO.
NÁZEV ŠKOLY:SOŠ Net Office, spol. s r.o. Orlová Lutyně
Bezpečnostní technologie I
Vypracoval / Roman Málek
SW počítače - operační systém
Služby Windows Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Úvod do C# - OOP Jaroslav BURDYS 4IT.
Reflexe (1) Reflexe (Reflection) představuje proces ve-doucí k získání informací o sestavách (assemblies) a datových typech, které jsou v nich definovány.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Vlastnosti souborů Jaroslava Černá.
Soubor Soubor v informatice označuje pojmenovanou sadu dat uloženou na nějakém datovém médiu, se kterou lze pracovat nástroji operačního systému jako.
DIGITÁLNÍ UČEBNÍ MATERIÁL
1. ročník oboru Mechanik opravář motorových vozidel
Příkazy (1) Příkazy (commands) slouží pro zjednodušení vyvolání jedné (stejné) funkce programu (pop-sané metodou) pomocí různých prostředků, např.: položka.
Návrhový vzor Flyweight
Operační systémy 9. Spolupráce mezi procesy
C# Vícevláknové aplikace
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
Pojmy a vlastnosti operačních systémů
Oblast platnosti identifikátoru (1)
Práce s procesy Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Autor:
C# přehled vlastností.
Přepínání procesů Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Transkript prezentace:

13/04/20151 Multitasking Schopnost operačního systému mít spuštěno více programů současně Operační systém používá hardwarové hodiny a každému běžícímu procesu přiděluje tzv. časová kvanta Pokud jsou časová kvanta dostatečně malá (a počítač není přetížen velkým množstvím spuštěných programů), má uživatel pocit, že všechny programy pracují současně

13/04/20152 Multithreading (1) Schopnost programu (za příslušné podpory operačního systému) zavést „multitasking sám v sobě“ Program se může rozdělit na několik samo- statných výpočtových (prováděcích) vláken, tzv. threads Jednotlivým vláknům jsou pak opět přidělová- na časová kvanta a tím vzniká dojem, že tato vlákna pracují současně

13/04/20153 Multithreading (2) Dovoluje vyvolat funkci programu, ještě dří- ve než byla dokončena funkce předešlá Program (v operačním systému podporujícím multithreading) začíná pracovat hlavním (primárním) výpočtovým vláknem V rámci hlavního výpočtového vlákna mohou být vytvářena a spouštěna další výpočtová vlákna

13/04/20154 Třída Thread (1) Definována ve jmenném prostoru: System.Threading Umožňuje vytváření a řízení činnosti výpoč- tových vláken Vytvoření nového výpočtového vlákna lze provést prostřednictvím volání konstruktoru (třídy Thread ) Volanému konstruktoru se jako parametr pře- dá delegát specifikující metodu, která obsa- huje příkazy, jež se budou v průběhu výpoč- tového vlákna provádět

13/04/20155 Třída Thread (2) Delegát specifikující vyvolávanou metodu je tvaru: –public delegate void ThreadStart() –public delegate void ParameterizedThreadStart(object obj) Zahájení činnosti výpočtového vlákna je mož- né následně provést pomocí volání metody Start : –vlákno je spuštěno asynchronně, tj. jako nebloku- jící Vlastnosti: –CurrentThread : vrací aktuálně běžící výpočtové vlákno

13/04/20156 Třída Thread (3) –IsBackground : udává, zda se jedná o výpočtové vlákno, které je na pozadí, tj. background výpočtové vlákno může být background (nezabraňuje ukončení procesu) nebo foreground v okamžiku, kdy jsou všechna výpočtová vlákna fore- ground (patřící k danému procesu) ukončena, dojde k ukončení celého procesu a všechna zbývající vlákna background zůstanou nedokončena –Name : specifikuje jméno výpočtového vlákna –Priority : udává prioritu vlákna ( Lowest, BelowNormal, Normal, AboveNormal, Highest )

13/04/20157 Třída Thread (4) –ThreadState : specifikuje stav vlákna (např. Running, Stopped, Aborted, Background apod.) Metody: –Abort : způsobí výjimku ThreadAbortException a za- hájí proces vedoucí k ukončení výpočtového vlákna výjimka ThreadAbortException může být za- chycena, ale na konci bloku catch je vyvolána znovu opětovnému vyvolání ThreadAbortException lze zabránit voláním metody ResetAbort –Join : blokuje volající výpočtové vlákno, dokud dané výpoč- tové vlákno neskončí

13/04/20158 Třída Thread (5) –ResetAbort : ruší požadavek na ukončení výpočtového vlákna –Sleep : pozastaví provádění vlákna na specifikovaný počet milisekund –Start : zahájí činnost dříve vytvořeného výpočtového vlákna dané vlákno se po vyvolání metody Start nachází ve stavu Running umožňuje předat objekt obsahující data, která mají být použita metodou spouštěnou v rámci výpočtového vlákna je-li vlákno dokončeno, nemůže být pomocí metody Start znovu restartováno

13/04/20159 Třída Thread (6) Poznámka: –existují i metody Suspend a Resume pro do- časné pozastavení činnosti vlákna a pro opětovné pokračování v jeho činnosti –tyto metody jsou však zastaralé (obsolete) a v bu- doucích verzích nebudou podporovány

13/04/ Příkaz lock (1) Označuje blok programu jako kritickou sekci Slouží k zabezpečení, že určitý blok programu proběhne bez přerušení jinými výpočtovými vlákny Příklad: private static object theLock = new object(); … public static void DoWork() { lock (theLock) { // kritická sekce } }

13/04/ Příkaz lock (2) Zaručuje, že výpočtové vlákno nevstoupí do kritické sekce v době, kdy se v ní nachází jiné výpočtové vlákno Objekt uvedený jako argument za klíčovým slovem lock : –je použitý pro identifikaci zdrojů sdílených mezi více výpočtovými vlákny –musí být viditelný všemi vlákny –musí být referenčního datového typu –by měl být chráněný proti vnějšímu přepsání ( private )

13/04/ Příkaz lock (3) Příkaz lock představuje syntaktickou zkratku pro volání metod Enter a Exit statické třídy Monitor s použitím bloku try a finally Příklad: private static object theLock = new object(); … public static void DoWork() { Monitor.Enter(theLock); try { // kritická sekce } finally { Monitor.Exit(theLock); } }

13/04/ Třída ThreadPool (1) Definována ve jmenném prostoru System.Threading Statická třída, která poskytuje fond (sadu) vý- počtových vláken (řízených CLR), která je možné využít k provádění kódu (úloh) Vhodná zejména pro větší množství kratších úloh Všechna výpočtová vlákna prováděná v rám- ci třídy ThreadPool : –se chovají jako vlákna background –mají prioritu Normal

13/04/ Třída ThreadPool (2) Jestliže vlákno dokončí svou úlohu, je vráce- no do fondu vláken a může být opětovně po- užito: –minimalizuje režii při vytváření nových vláken pro každou úlohu Jsou-li všechna vlákna zaměstnána, pak jsou další úlohy vkládány do fronty, dokud se ne- uvolní vlákna pro jejich zpracování Metody: –GetMaxThreads : vrací maximální počet požadavků, které mohou být současně aktivní

13/04/ Třída ThreadPool (3) –GetAvailableThreads : vrací rozdíl mezi maximálním počtem vláken (hodno- tou vrácenou metodou GetMaxThreads ) a počtem aktuálně aktivních vláken –SetMaxThreads : nastavuje maximální počet požadavků, které mohou být současně aktivní –QueueUserWorkItem : zařazuje metodu, která má být provedena vláknem, do fronty metoda začne být prováděna v okamžiku, kdy je ve fondu vláken dostupné (volné) vlákno signatura metody musí odpovídat delegátu: public delegate void WaitCallback(object state)

13/04/ Třída ThreadPool (4) –RegisterWaitForSingleObject : registruje tzv. wait handle společně s metodou, která se zavolá v okamžiku, kdy dojde k signalizaci wait handlu signatura registrované metody musí odpovídat delagá- tu: public delegate void WaitOrTimerCallback(object state, bool timedOut) wait handle lze implementovat pomocí potomků třídy WaitHandle (vyjma třídy Mutex ), např. pomocí třídy ManualResetEvent Pro zjištění, zda vlákno ukončilo svoji čin- nost, je zapotřebí odeslat signál (např. pomo- cí wait handle)

13/04/ Task Parallel Library Task Parallel Library (TPL) představuje mno- žinu tříd definovanou ve jmenném prostoru System.Threading.Tasks a částečně i ve jmenném prostoru System.Threading Umožňuje efektivní zpracování úloh s využi- tím všech dostupných jader procesoru Provádí např. řízení vláken ve fondu vláken (ThreadPool) a další nízkoúrovňové operace Podobně jako u třídy ThreadPool : –mohou být vlákna opětovně použita –vlákna pracují na pozadí

13/04/ Třída Parallel (1) Třída TPL definovaná ve jmenném prostoru System.Threading.Tasks Automaticky používá vlákna z fondu vláken a řídí konkurenční přístup Obsahuje (přetěžované) statické metody For a ForEach, které umožňují iterovat kolek- cemi implementujícími rozhraní IEnumerable Tyto metody: –umožňují zadat část kódu, která má být zpracová- na paralelně –blokují provádění hlavního vlákna

13/04/ Třída Parallel (2) Přináší podporu datového paralelismu: –stejné operace jsou prováděny současně nad prv- ky v kolekci (poli) –vstupní kolekce (pole) je rozdělena tak, aby více vláken mohlo současně pracovat nad jejími růz- nými částmi Srovnání ( foreach ): –sekvenční verze: foreach (var item in sCollection) { DoWork(item); } –paralelní ekvivalent: Parallel.ForEach(sCollection, item => DoWork(item));

13/04/ Třída Parallel (3) Příklad (možná použití metody For ): static void TestMethod() { Parallel.For(0, 1000, DoWork); Parallel.For(0, 1000, delegate(int i) { // Provedení práce }); Parallel.For(0, 1000, i => { // Provedení práce }); } static void DoWork(int i) { // Provedení práce }

13/04/ Třída Task Definována ve jmenném prostoru System.Threading.Tasks Reprezentuje asynchronní operace Metoda, která má být provedena jako samo- statná úloha (task), může být specifikována (jako parametr) v době volání konstruktoru Její následné spuštění lze realizovat voláním metody Start Prováděná metoda neblokuje hlavní vlákno aplikace Na její dokončení počkat pomocí metody Wait