Roura (software)

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
Tento článek pojednává o obecné datové struktuře. O propojení příkazů v shellu pojednává článek Roura (Unix).

Roura nebo také kolona, trubka (anglicky pipeline) je v softwarovém inženýrství zřetězení zpracovávaných prvků (programy, vlákna, koprogramy apod.) tak, aby výstup každého prvku byl pomocí roury přesměrován na vstup následujícího. Roura je implementována jako fronta FIFO a využívá vyrovnávací paměti, případně kruhový buffer. Datový tok, který skrz rouru proudí, označujeme jako proud (stream) záznamů, bajtů nebo bitů.

Celkově ideu označujeme jako návrhový vzor pro roury a filtry. Jeho pojmenování vychází ze stejného principu jakým fungují běžně používané skutečné roury (trubky) a filtry.

Vlastnosti a využití kolony[editovat | editovat zdroj]

Kolony jsou nejčastěji používány ve víceúčelovém zpracování u operačních systémů. Jak už výše bylo napsáno, že kolona je tvořena z řetězců a tyto řetězce se skládají z elementů. Když se nějaké množství elementů spustí ve stejném době, vepíše se datový proces do proudu procesu. To znamená, že CPU bude přirozeně plánovat procesy, aby byl minimalizován ztrátový čas. V dalších běžných modelech jsou elementy implementované do lehkých kategorií, kde se procesy řadí od shora dolů. Procesy také mohou být naplánovaný přímo operačním systémem a nebo pomocí manažera procesorů.

Výkon zdroje kolony[editovat | editovat zdroj]

Výkon zdroje procesu u psaní je pozastaven až do té chvíle, než by mohla být všechna data zapsána na cílového procesu. Podobné to je také při čtení dat. A to že výkon zdroje u čtení je pozastaven až do té chvíle, než z některých požadovaných dat bude možno získat zdrojový proces. Ale toto by mohlo vést do mrtvého bodu, kde by oba procesy čekaly nějakou dobu na vzájemnou odpověď. Tedy alespoň jeden z dvou procesů by měl brzy požadovat opravení operačním systémem a pokračovat tak v běhu. Pro největší výkon se zavádí do operačních systémů užití bufferu, který dovoluje zdrojovému procesu poskytovat větší množství data, než aktuální proces u cíle umožňující dobrou vůli přijmout data. U největších Unixů a Unix-like operačních systémů se používá zvláštní příkaz, který potencionálně větší konfigurovatelnou velikost výkonu zdroje. Tento příkaz může být užitečný, jestliže cílový proces je významně pomalejší než zdrojový proces.

Shromaždiště dat v koloně[editovat | editovat zdroj]

CMS Pipelines je ideální shromaždiště pro datové toky u VM/CMS a MVS systému. Toto podporuje mnohem víc komplexních struktur u vícenásobných proudů než unixový shell. Unixový shelly pracují a produkují vícenásobně výstupní toky dat. Taková funkčnost je podporována Unixovým jádrem. Ale málo programů toho využije, protože žádný z unixových shellů to nebude poskytovat pro syntaxi. CMS Pipelines realizuje mnoho schodů, které jsou v Unixu vnějšími programy.

Zpracování dat v koloně[editovat | editovat zdroj]

Zpracování jednotlivých úloh operačním systémem je prováděno podle operačního systému. Tedy veškeré procesy jsou vykonávaný jeden po druhém v následující instrukci tak, že výstup každého procesu musí být přiřazen k dočasnému souboru. Pak je tento soubor čten příštím procesem, protože tam není žádná rovnoběžnost nebo přepínání CPU.

Objektová kolona[editovat | editovat zdroj]

Vedle bajtového proudu jsou také založeny objektové kolony. Objektová kolona je zpracována pomocí výstupů na místo textů. Tudíž se odstraňují syntaktické řetězce u analýzy úkolů, které jsou běžné v UNIxových skriptech. Windows PowerShell užívá tohoto schématu a přenosů.

Kolona u grafického prostředí[editovat | editovat zdroj]

Grafická prostředí jako RISC OS a ROX Desktop také používají datové kolony. Zde kolony spíše poskytují ochranu dialogových oken obsahující správce souborů, které uživatel může specifikovat (např.: kde by měl program psát data). RISC OS a ROX Desktop také poskytují ochranu dialogovému oknu, které obsahují ikonu. Uživatel může kdekoli snížit ikonu, aby zabezpečený soubor mohl klesnout i včetně ikony dalších programů.

Další kolony[editovat | editovat zdroj]

Jmenné kolony přichází z hrubé analogie s fyzickou instalací. Takováto kolona obvykle dovoluje informacím, aby vstupovaly jen v jednom směru. Kolona a filtry mohou být viděny jako forma funkčně orientovaného programování. Používají se proudy bajtů jako datové objekty. Pojem kolona je také centrální označení Cocoon webovému vývojovému rámci. Ten dovoluje zdrojovému proudu být předem upravován. Tento vzor vzbuzuje použití textového proudu jako vstupu a výstupu u programů.

Historie[editovat | editovat zdroj]

První kolonu vymyslel a vytvořil Douglas McIlroy. Douglas McIlroy také navrhl první řadu "Unixových skořápek". Tím velmi přispěl k popularitě operačního systému Unix. "Unixové skořápky" mnozí považovali za první příklad softwarové komponenty. Ideou bylo nakonec toto importovat do další operačním systémům jako DOS, OS/2, Windows NT, BeOS a Mac OSX.

Související články[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku Pipeline (software) na anglické Wikipedii.