Array ( [0] => 15483980 [id] => 15483980 [1] => cswiki [site] => cswiki [2] => Multitasking [uri] => Multitasking [3] => [img] => [4] => [day_avg] => [5] => [day_diff] => [6] => [day_last] => [7] => [day_prev_last] => [8] => [oai] => [9] => [is_good] => [10] => [object_type] => [11] => 1 [has_content] => 1 [12] => Multitasking je schopnost vykonávat více úkolů současně nebo se rychle přepínat mezi různými činnostmi. Tato dovednost je přirozenou součástí našeho každodenního života, ve kterém čelíme různým podnětům a požadavkům. Multitasking může být vnímán jako výhoda, zejména v dynamických prostředích. Umožňuje lidem efektivně reagovat na různé situace a zvyšovat produktivitu prostřednictvím rychlejších rozhodnutí. Například domácnosti, které se snaží vyvážit více aktivit, jako jsou práce, péče o rodinu a osobní zájmy, často prokazují, že dokážou vzájemně propojovat úkoly a tím dosahovat lepších výsledků. Nicméně existují i výzvy, které multitasking přináší. Rychlé přepínání mezi úkoly může vést ke snížení koncentrace a k menší efektivitě v některých situacích. Je důležité najít rovnováhu mezi multitaskingem a soustředěním se na jeden úkol najednou. I přes tyto výzvy mohou lidé s dovedností dobře organizovat svůj čas a zvolit prioritní úkoly, což povede k větší spokojenosti a úspěchu. Vědecké výzkumy naznačují, že náš mozek je schopen určité úrovně multitaskingu, i když není schopen naplno zvládnout více komplexních úloh současně. Osvědčené techniky, jako je plánování a stanovení priorit, mohou pomoci maximalizovat účinnost multitaskingu a vytvořit pozitivní pracovní prostředí. Celkově lze říci, že multitasking je užitečná a cenná dovednost, která nám může pomoci lépe reagovat na složitosti moderního života. S uváženým přístupem můžeme využít jeho výhod a naučit se efektivně řídit svůj čas a pozornost. [oai_cs_optimisticky] => Multitasking je schopnost vykonávat více úkolů současně nebo se rychle přepínat mezi různými činnostmi. Tato dovednost je přirozenou součástí našeho každodenního života, ve kterém čelíme různým podnětům a požadavkům. Multitasking může být vnímán jako výhoda, zejména v dynamických prostředích. Umožňuje lidem efektivně reagovat na různé situace a zvyšovat produktivitu prostřednictvím rychlejších rozhodnutí. Například domácnosti, které se snaží vyvážit více aktivit, jako jsou práce, péče o rodinu a osobní zájmy, často prokazují, že dokážou vzájemně propojovat úkoly a tím dosahovat lepších výsledků. Nicméně existují i výzvy, které multitasking přináší. Rychlé přepínání mezi úkoly může vést ke snížení koncentrace a k menší efektivitě v některých situacích. Je důležité najít rovnováhu mezi multitaskingem a soustředěním se na jeden úkol najednou. I přes tyto výzvy mohou lidé s dovedností dobře organizovat svůj čas a zvolit prioritní úkoly, což povede k větší spokojenosti a úspěchu. Vědecké výzkumy naznačují, že náš mozek je schopen určité úrovně multitaskingu, i když není schopen naplno zvládnout více komplexních úloh současně. Osvědčené techniky, jako je plánování a stanovení priorit, mohou pomoci maximalizovat účinnost multitaskingu a vytvořit pozitivní pracovní prostředí. Celkově lze říci, že multitasking je užitečná a cenná dovednost, která nám může pomoci lépe reagovat na složitosti moderního života. S uváženým přístupem můžeme využít jeho výhod a naučit se efektivně řídit svůj čas a pozornost. ) Array ( [0] => {{upravit}} [1] => '''Multitasking''' (z [[angličtina|angličtiny]], ''multi = mnoho, task = úloha'', používán ve '''víceúlohovém systému''') označuje v [[Informatika|informatice]] schopnost [[Operační systém|operačního systému]] provádět (přinejmenším zdánlivě) několik [[Proces (informatika)|procesů]] současně. [[Operační systém]] velmi rychle střídá na [[mikroprocesor|procesoru]] běžící procesy (tzv. [[změna kontextu]] za použití [[plánování procesů|scheduleru]]), takže [[Uživatel (počítačový)|uživatel]] počítače má dojem, že běží současně. Dnešní operační systémy jsou nejčastěji víceúlohové – sem patří např. [[Microsoft Windows]], [[Linux]], [[macOS]]. Naopak [[DOS]] je příkladem jednoúlohového systému, na kterém vždy běží pouze jediný [[počítačový program|program]] a teprve po jeho ukončení je možné spustit jiný. [2] => [3] => Za autora myšlenky multitaskingu bývá považován [[Edgar Frank Codd]]. [4] => [5] => == Motivace == [6] => Jednoúlohové systémy, jako například klasický [[DOS|MS DOS]], umožňovaly spuštění nejvýše jednoho [[Počítačový program|programu]], což bylo pro [[Uživatel (informatika)|uživatele]] počítače nepohodlné (musel nejprve rozpracovanou práci uložit, právě spuštěný program ukončit, spustit jiný program, zde provést požadovanou činnost a pak se vrátit zpět k dříve používanému programu a uložené práci). Na druhou stranu byl takový [[operační systém]] velmi jednoduchý a tudíž i nenáročný nejen na [[Programování|naprogramování]], ale i na systémové zdroje počítačů, které v té době byly pomalé a měly málo [[Operační paměť|operační paměti]]. Tyto systémy byly často tak jednoduché, že ani neposkytovaly ochranu samotnému systému (viz [[správa paměti]]), natož aby zajistily, že systém neztratí nad počítačem kontrolu (viz [[privilegovaný režim]] a preemptivní multitasking níže). [7] => [8] => Protože byly počítače drahé, byla snaha o jejich vyšší využití (viz [[dějiny počítačů]]), které bylo možné zajistit tak, že ve chvíli, kdy počítač nebyl spuštěnou úlohou využíván (například při čekání na data z magnetické pásky), bylo možné spustit dočasně jinou úlohu. To vedlo ke vzniku víceúlohových operačních systémů, které využívaly multitasking. Avšak v tomto okamžiku bylo nutné zajistit ochranu samotného operačního systému, který zajišťoval přepínání běžících úloh, před samotnými úlohami, protože nesprávně naprogramovaná úloha mohla způsobit havárii i dalších (již spuštěných) úloh. Taková ochrana však vyžadovala podporu v [[mikroprocesor|procesorech]], které musely poskytovat nástroje pro efektivní oddělení systému a běžící úlohy (tj. [[správa paměti]]), které znemožnilo právě běžící úloze měnit jinou část paměti, než jí byla přidělena. Aby celý systém nezhavaroval a nezpůsobil tak pád několika spuštěných úloh, musel procesor podporovat [[privilegovaný režim]], který neumožnil úloze provést potenciálně nebezpečné [[Strojová instrukce|strojové instrukce]]. Tím vznikly první skutečné operační systémy, které nikdy neztrácely nad počítačem kontrolu. [9] => [10] => S rostoucím výkonem počítačů, jejich vysokou cenou i zvyšujícími se nároky uživatelů došlo k vývoji [[Víceuživatelský operační systém|víceuživatelských operačních systémů]], které s výhodou využily stávající víceúlohové systémy a přidaly navíc oddělení jednotlivých uživatelů a zavedení [[oprávnění v systému souborů]]. [11] => [12] => == Multiprogramování == [13] => Multiprogramování ({{Vjazyce2|en|''multiprogramming''}}) je technika vícenásobného zpracování, kdy se zdroje počítače dělí mezi více úloh. V počátcích bylo multiprogramování řešeno tak, že se úlohy vystřídaly v běhu v okamžiku, kdy jedna z nich čekala na pomalejší periferii, až dokončí [[Vstup/výstup|vstupně-výstupní]] operaci (požadavek na tisk, čtení z pásky, disku a podobně). V dnešní době operační systém střídá úlohy v rychlém sledu, aby obsluha počítače mohla se všemi plynule pracovat. Multiprogramování tak v současné době využívá multitasking jako hlavní nástroj. [14] => [15] => Programátor využívá multitasking zcela přirozeným způsobem, nemusí ho ve svém programu nijak řešit. Naopak může programovat tak, že předpokládá současný běh více procesů zároveň, využívá komunikaci mezi procesy, může problém vyřešit několika samostatnými programy, které jsou spuštěny současně a podobně. [16] => [17] => == Implementace == [18] => V počítači obvykle není k dispozici tolik procesorů, kolik úloh chceme spustit zároveň. Proto není možné zajistit, aby všechny spuštěné úlohy běžely současně. Místo toho je zajištěno, že se běžící úlohy na [[mikroprocesor|procesoru]] (resp. procesorech) počítače velmi rychle střídají a vytváří se tak zdání jejich současného běhu. Čas, po který je umožněno každé úloze běžet, se nazývá ''časové kvantum''. [19] => [20] =>
[21] => [22] => TimeAxis = orientation:horizontal format:yyyy [23] => ImageSize = width:460 height:120 [24] => PlotArea = width:400 height:100 bottom:10 left:50 [25] => [26] => Colors = [27] => id:canvas value:rgb(0.97,0.97,0.97) [28] => id:grid1 value:rgb(0.86,0.86,0.86) [29] => id:grid2 value:gray(0.8) [30] => id:bars value:rgb(0.1,0.1,0.5) [31] => [32] => BackgroundColors = canvas:canvas [33] => [34] => Period = from:0 till:9 [35] => [36] => BarData= [37] => bar:task0 text: "Úloha A" [38] => bar:task1 text: "Úloha B" [39] => bar:task2 text: "Úloha C" [40] => [41] => PlotData= [42] => [43] => # set defaults [44] => width:25 fontsize:L textcolor:black align:left anchor:from color:bars [45] => [46] => bar:task0 from:0 till:1 [47] => bar:task0 from:3 till:4 [48] => bar:task0 from:6 till:8 [49] => bar:task1 from:1 till:2 [50] => bar:task1 from:4 till:5 [51] => bar:task2 from:2 till:3 [52] => bar:task2 from:5 till:6 [53] => bar:task2 from:8 till:9 [54] => [55] =>
[56] => [57] => Na obrázku vpravo jsou znázorněny úlohy A, B a C, které se střídají v běhu na jednom procesoru, přičemž je naznačeno, že úloha může běžet kratší dobu, než je maximální časové kvantum. [58] => [59] => Podle způsobu přidělování a odebírání časových kvant úlohám se rozlišují dva základní způsoby multitaskingu: [60] => [61] => # kooperativní (nepreemptivní) multitasking [62] => # preemptivní multitasking [63] => [64] => === Kooperativní (nepreemptivní) multitasking === [65] => Kooperativní multitasking vyžaduje aktivní spoluúčast běžících úloh. Každá úloha je povinna dostatečně často [[Systémové volání|systémovým voláním]] předat řízení zpět operačnímu systému, který díky tomu může spustit jinou úlohu, která se po chvíli opět dobrovolně vzdá procesoru atd. Výhodou řešení je jednodušší implementace operačního systému. Podstatnou nevýhodou je skutečnost, že chybně naprogramovaná úloha, která nevrátí řízení zpět operačnímu systému, způsobí úplné zastavení systému i ostatních úloh. [66] => [67] => [[Microsoft Windows]], které nepoužívaly 32bitové jádro NT (tj. [[Windows 3.x]], [[Windows 95]], [[Windows 98]], Windows Me), používaly nepreemptivní multitasking. Z marketingových důvodů byl však označován jako ''kooperativní multitasking'' s tím, že úloha, která byla na popředí (tj. měla aktivní okno), dostávala větší časová kvanta, než ostatní úlohy (které uživatel přímo neovládal, a proto mu to nevadilo, naopak systém vypadal jako výkonnější). Ve Windows 2.x (vydané v roce [[1988]]) a novějších bylo možné samostatně spouštět více DOS aplikací, které běžely v preemptivním multitaskingu, ale vlastní Windows aplikace běžely v kooperativním multitaskingu, takže chybně naprogramovaná aplikace způsobila „zatuhnutí“ celého systému. Nepreemptivní multitasking používal též [[Mac OS]] (používaný před [[macOS]]) a [[RISC OS]]. [68] => [69] => === Preemptivní multitasking === [70] => {{Viz též|Preempce (informatika)}} [71] => V preemptivním multitaskingu o přidělování a odebírání procesoru jednotlivým úlohám plně rozhoduje [[operační systém]]. V pravidelných intervalech (typicky zhruba 100× až 1000× za sekundu) za pomoci časovače dojde k vyvolání [[přerušení]] aktuálně běžícího programu (procesu), vyhodnotí se aktuální situace (které úlohy žádají o přidělení procesoru, jejich priority atd.) a nechá běžet buď opět úlohu, kterou přerušil, nebo jinou úlohu, která má zájem o přidělení procesoru (to která úloha bude následně běžet, určuje prioritní fronta). I v preemptivním multitaskingu však může úloha dobrovolně požádat o přepnutí kontextu a vzdát se zbytku svého kvanta (úloha takzvaně „usne“ - proces přejde do stavu sleep nebo se zablokuje provedením pomalé [[Vstup/výstup|vstupně-výstupní]] operace, jako je například čtení dat z [[pevný disk|pevného disku]]). [72] => [73] => Preemptivní multitasking používají [[Windows 95]] (jen pro [[32bitový|32bitové]] programy, zbytek běží nepreemptivně). Plně preemptivní je až řada [[Windows NT]]. Dále ho již od svého vzniku používá [[macOS]], [[UN*X|unixová]] jádra (včetně [[Linux]]u) a další operační systémy. [74] => [75] => Výhodou tohoto řešení je, že nedochází k „zatuhnutí“ počítače, neboť i v případě, že se úloha zacyklí, odebere operační systém pomocí [[Časovač (počítač)|časovače]] dané úloze řízení a přidělí procesor jiné úloze. Nevýhodou je složitější implementace operačního systému a nutnost hardwarové podpory v procesoru počítače (viz [[privilegovaný režim]]). [76] => [77] => == Atomické operace == [78] => {{Viz též|Atomická operace}} [79] => [80] => U některých operací musí být zaručeno, že proběhnou celé, že jejich provádění nebude v polovině přerušeno např. přepnutím na jinou úlohu. Takové operace se označují jako ''[[atomická operace|atomické]]''. Každá atomická operace musí proběhnout buď celá, nebo vůbec. Příkladem atomické operace je např. použití [[Semafor (synchronizace)|semaforu]] či jiného [[synchronizační primitivum|synchronizačního primitiva]]. Mezi zjištěním jeho stavu a následnou změnou nesmí být úloha přerušena, protože úloha, která by pak dostala řízení, by mohla stav semaforu změnit a došlo by k chybnému chování. [81] => [82] => Příklad: [83] => * Proces kontroluje, zda je na semaforu signál ''volno'', [84] => * Proces zjistí, že ano, proto se chystá nastavit ''stůj'' a vpustit vlak na trať. [85] => * V tu chvíli ovšem dojde k přepnutí na jinou úlohu. [86] => * Druhá úloha zkontroluje, že na semaforu je signál ''volno'', nastaví ''stůj'' a z druhé strany vpustí vlak na trať. [87] => * Dojde k přepnutí zpět na první úlohu. [88] => * Ta dokončí nastavení na ''stůj'' a vpustí vlak na trať, čímž dojde ke kolizi. [89] => [90] => U kooperativního multitaskingu je atomicita takových operací zaručena prostě tím, že se v jejím průběhu nevolají systémové funkce, které by umožnily přepnutí kontextu. Jelikož nikdy jindy k přepnutí dojít nemůže, je tím zaručena správná funkce. U preemptivního multitaskingu je naopak potřeba takovému nevhodnému přepnutí explicitně bránit - aplikace používají [[synchronizační primitivum|synchronizační primitiva]] implementovaná buď jako služby operačního systému, nebo s využitím hardwarové podpory. U skutečného multitaskingu, tzn. při práci na více procesorech, se atomicita operací zajišťuje pouze pomocí hardwarových prostředků: procesor poskytuje instrukce současně zjišťující a měnící stav paměti, které jsou nejen atomické z hlediska samotného procesoru, ale navíc vyvolají hardwarovou synchronizaci mezi procesory. V dřívějších systémech postačovalo „zamknout“ paměťovou sběrnici, tedy zabránit ostatním procesorům v přístupu k paměti. Moderní systémy vyžadují navíc zneplatnit části cache ostatních procesorů. [91] => [92] => == Multithreading == [93] => Multitasking vylepšil na úrovni operačního systému využití počítačů, protože v případě zablokování spuštěného programu (například vstupně-výstupní operací) byl procesor automaticky přidělen dalšímu (čekajícímu) procesu. Maximalizovalo se tak využití dostupného hardware. Programátoři začali záhy multitasking využívat též zcela vědomě tak, že v rámci řešení jednoho problému naprogramovali několik samostatných programů, které mohly díky multitaskingu spolupracovat. Typickým využitím multitaskingu je implementace síťových služeb, jako je [[webový server]] (například [[Apache HTTP Server]]), [[Mail Transfer Agent|přeprava elektronické pošty]] (například [[Sendmail]]) a podobně, kde rodičovský proces naslouchá na [[Síťová karta|síťovém rozhraní]] a příchozí požadavky předává ke zpracování svým potomkům. Jiným příkladem je paralelizace výpočtů (viz [[paralelní programování]]), kdy je možné využít výhody [[Víceprocesorový systém|víceprocesorového systému]]. [94] => [95] => Takové využití multitaskingu však přineslo výkonnostní problémy, které se projevovaly zvýšenou režií operačního systému na přepínání mezi jednotlivými úlohami (viz [[změna kontextu]]) a úzkým hrdlem v podobě nízké průchodnosti dat mezi jednotlivými procesy (viz [[meziprocesová komunikace]]). Při snaze o vyřešení těchto základních problémů byla do operačních systémů implementována podpora pro tak zvaná [[Vlákno (informatika)|vlákna]] (tzv. odlehčené procesy, tato technika se nazývá multithreading). Hlavní vlastností vláken je sdílená paměť (běží ve stejném [[Adresní prostor|adresním prostoru]]), což je zároveň i jejich hlavní výhoda (vede ke snížení režie změny kontextu a snadnějšímu předávání dat mezi vlákny). Operační systém, který neobsahuje podporu vláken, může za pomoci nastavení sdílení paměti pracovat s běžnými procesy (avšak za cenu vyšší režie). Existuje též [[Hardware|hardwarová]] podpora vláken. [96] => [97] => {{Viz též|Vlákno (informatika)}} [98] => [99] => == Ochrana paměti == [100] => Při implementaci multitaskingu je důležité, aby operační systém podporoval ochranu paměti, díky které je možné zamezit úmyslné či neúmyslné změně v [[Adresní prostor|adresním prostoru]] různých současně spuštěných procesů nebo dokonce prostoru operačního systému. Pokud se běžící proces pokusí přistupovat k paměti, která mu nepatří (nebyla mu přidělena modulem správy paměti v jádře operačního systému), je obvykle ještě před provedením této [[Strojová instrukce|strojové instrukce]] jádrem operačního systému ukončen. Pro umožnění ochrany paměti je vyžadována podpora ze strany hardware (modulu správy paměti, který je součástí [[mikroprocesor|procesoru]]). Existují též operační systémy podporující multitasking, avšak bez ochrany paměti, které byly určeny pro procesory bez hardwarové podpory (procesory Intel a kompatibilní do příchodu [[Intel 80386]]). [101] => [102] => {{Viz též|Správa paměti}} [103] => [104] => == Virtuální paměť == [105] => Virtuální paměť umožňuje nabízet běžícím procesům více operační paměti, než je fyzicky v počítači přítomno pomocí jejího rozšíření o místo na pevném disku. I když mechanismus virtuální paměti přímo s multitaskingem nesouvisí, jsou obě techniky u pokročilých operačních systémů typicky využívány společně. [106] => [107] => {{Viz též|Virtuální paměť}} [108] => [109] => == Reference == [110] => {{Překlad [111] => | jazyk = en [112] => | článek = Computer multitasking [113] => | revize = 5888886 [114] => }} [115] => [116] => == Související články == [117] => * [[Lidský multitasking]] [118] => * [[Transakční zpracování]] [119] => * [[Spooling]] [120] => [121] => {{Autoritní data}} [122] => [123] => [[Kategorie:Operační systém]] [124] => [[Kategorie:Počítačová terminologie]] [] => )
good wiki

Multitasking

Multitasking (z angličtiny, multi = mnoho, task = úloha, používán ve víceúlohovém systému) označuje v informatice schopnost operačního systému provádět (přinejmenším zdánlivě) několik procesů současně. Operační systém velmi rychle střídá na procesoru běžící procesy (tzv.

More about us

About

Tato dovednost je přirozenou součástí našeho každodenního života, ve kterém čelíme různým podnětům a požadavkům. Multitasking může být vnímán jako výhoda, zejména v dynamických prostředích. Umožňuje lidem efektivně reagovat na různé situace a zvyšovat produktivitu prostřednictvím rychlejších rozhodnutí. Například domácnosti, které se snaží vyvážit více aktivit, jako jsou práce, péče o rodinu a osobní zájmy, často prokazují, že dokážou vzájemně propojovat úkoly a tím dosahovat lepších výsledků. Nicméně existují i výzvy, které multitasking přináší. Rychlé přepínání mezi úkoly může vést ke snížení koncentrace a k menší efektivitě v některých situacích. Je důležité najít rovnováhu mezi multitaskingem a soustředěním se na jeden úkol najednou. I přes tyto výzvy mohou lidé s dovedností dobře organizovat svůj čas a zvolit prioritní úkoly, což povede k větší spokojenosti a úspěchu. Vědecké výzkumy naznačují, že náš mozek je schopen určité úrovně multitaskingu, i když není schopen naplno zvládnout více komplexních úloh současně. Osvědčené techniky, jako je plánování a stanovení priorit, mohou pomoci maximalizovat účinnost multitaskingu a vytvořit pozitivní pracovní prostředí. Celkově lze říci, že multitasking je užitečná a cenná dovednost, která nám může pomoci lépe reagovat na složitosti moderního života. S uváženým přístupem můžeme využít jeho výhod a naučit se efektivně řídit svůj čas a pozornost.

Expert Team

Vivamus eget neque lacus. Pellentesque egauris ex.

Award winning agency

Lorem ipsum, dolor sit amet consectetur elitorceat .

10 Year Exp.

Pellen tesque eget, mauris lorem iupsum neque lacus.

You might be interested in

,'mikroprocesor','privilegovaný režim','macOS','Adresní prostor','operační systém','Windows 95','Linux','Microsoft Windows','správa paměti','Strojová instrukce','DOS','Vstup/výstup'