Hledat:

Invia.cz Last minute Tunisko Dovolená v Chorvatsku Pojeďte do Egypta Bulharsko Vydělávejte peníze s INVIA.CZ
 

Vlákno (program)

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu, tedy posloupnost po sobě jdoucích operací. Každá spuštěná aplikace má alespoň jeden proces a každý proces má alespoň jedno vlákno, ve kterém počítá. Dříve platilo, že proces měl jen jedno vlákno (přesněji, nebyl důvod tyto pojmy odlišovat). Dnes je stále více programů multithreadových, tedy uvnitř jednoho procesu (a v jednom adresovém prostoru, tedy se sdílenou pamětí) může zároveň běžet více vláken.

Praktickým rozdílem mezi multithreadovým a multiprocesovým multitaskingem je kromě sdílené paměti (která některé věci usnadňuje a jiné naopak ztěžuje) režie při přepínání: přepnutí mezi vlákny bývá výrazně rychlejší neboť vlákna sdílejí paměť a uživatelská práva svého mateřského procesu a není je třeba při přepínání měnit. V některých případech není třeba při přepínání vláken volat jádro OS. Rychlejší může být i vytváření a rušení vlákna. Vlákno také spotřebuje méně paměti, což je důležité pro aplikace, které používají stovky nebo více vláken.

Vlákna je možné vytvořit i čistě aplikačně bez operačního systému (například pokud podporu multithreadingu nemá). Takto vzniklá vlákna je poté možné spouštět postupně v jednom vláknu operačního systému nebo takzvaně m:n, tedy v několika vláknech operačního systému současně spouštět větší počet aplikačních vláken. Toto řešení sice není tak dobré jako řešení s podporou operačního systému - například volání služby operačního systému zablokuje „větší“ vlákno OS a ne jenom aplikační vlákno - ale pro některé úlohy může být stále rychlejší.

Obsah

[editovat] Podpora vláken v OS

Z hlediska spravování vláken OS můžeme vlákna rozdělit na

[editovat] Vlákna na uživatelské úrovni (ULT)

Správu vláken provádí tzv. vláknová knihovna (thread library) na úrovni aplikačního procesu, jádro operačního systému o jejich existenci neví a přepojování mezi vlákny nepožaduje provádění funkcí jádra. Nepřepíná se ani kontext procesu ani režim procesoru. Přepínání vláken a jeho plánování je specifické pro konkrétní aplikaci. Programátor má možnost zvolit si nejvhodnější plánovací strategii a algoritmus sám. U OS není vyžadováno multiprogramování, stačí speciální knihovna. Příklad V případě POSIXu je to knihovna Pthreads („pítred“)

[editovat] Vláknová knihovna

Pro provozování vláken na uživatelské úrovni je třeba speciální knihovna, která musí umožňovat:

[editovat] Výhody uživatelských vláken

[editovat] Nevýhody

[editovat] Vlákna na úrovni jádra OS (KLT)

Veškerá správa vláken je řízena OS a každé vlákno v uživatelském prostoru je zobrazeno na vlákno v jádře. Samotné jádro vytváří, ruší a plánuje vlákna.

[editovat] Výhody

[editovat] Nevýhody

[editovat] Příklady

[editovat] Kombinace ULT a KLT

Některé OS podporují oba způsoby běhu vláken. Přiřazování uživatelských vláken k systémovým se děje automaticky (bez programátora) anebo programátor může nastavit počet vláken na úrovni jádra.

[editovat] Podpora u OS

Kombinaci ULT a KLT podporují například následující OS:

[editovat] Související články


 
Vlákno (program) v jiných jazycích: العربية, Deutsch, English, Español, Français, עברית, Magyar, Bahasa Indonesia, Íslenska, 日本語, 한국어, Nederlands, ‪Norsk (bokmål)‬, Polski, Português, Русский, Slovenčina, Српски / Srpski, Svenska, Türkçe, 中文
Tento článek je převzat z české wikipedie - otevřené encyklopedie, originální článek naleznete na adrese: „http://cs.wikipedia.org/wiki/Vl%C3%A1kno_(program)
Stránka byla naposledy upravena v Stránka byla naposledy editována 2. 7. 2008 v 21:27.
Veškerý text je dostupný za podmínek GNU Free Documentation License (Autorské právo pro podrobnosti).
Další služby: Portál | Katalog | Hledej | Zprávy | Počasí | Kurzy | Práce | Slovník | TV | Online hry | Java hry | SMS | Loga a melodie | Chat | Fórum | Kontakt