Potrubí (software)

Potrubí jsou často realizovány v multitasking OS, tím, že vypustí všechny prvky ve stejné době jako procesy, a automaticky opravovat údaje, přečtěte si požadavky každého procesu s daty napsal upstream proces – to může být nazýván multiprocessed potrubí. Tímto způsobem bude CPU přirozeně přepínán mezi procesy plánovačem, aby se minimalizovala doba nečinnosti. V jiných běžných modelech jsou prvky implementovány jako lehká vlákna nebo jako coroutiny, aby se snížila režie OS, která je často spojena s procesy. V závislosti na operačním systému mohou být vlákna naplánována přímo operačním systémem nebo správcem podprocesů. Coroutiny jsou vždy naplánovány manažerem coroutine nějaké formy.

Obvykle, číst a psát žádosti jsou blokující operace, což znamená, že výkon zdroje proces, při psaní, je pozastaven, dokud všechny údaje by mohly být zapsány do cílového procesu, a stejně tak i po provedení určení procesu, při čtení, je pozastaven, dokud alespoň některé požadované údaje by mohly být získány ze zdroje procesu. To nemůže vést k zablokování, kde se oba procesy by čekat nekonečně dlouho na sebe reagovat, protože alespoň jeden ze dvou procesů, brzy poté jeho žádost obsluhovány operačním systému, a pokračovat v jízdě.

Pro výkon, většina operačních systémů provádění potrubí použijte trubky vyrovnávacích pamětí, které umožňují zdroj procesu poskytnout více údajů, než je cílový proces je v současné době schopen nebo ochoten přijmout. Ve většině unixových a unixových operačních systémů je také k dispozici speciální příkaz, který implementuje pipe buffer potenciálně mnohem větší a konfigurovatelné velikosti, obvykle nazývané „buffer“. Tento příkaz může být užitečný, pokud je cílový proces výrazně pomalejší než zdrojový proces, ale přesto je žádoucí, aby zdrojový proces mohl dokončit svůj úkol co nejdříve. Např. pokud zdrojový proces sestává z příkazu, který čte zvukovou stopu z CD a cílový proces sestává z příkazu, který komprimuje zvuková data křivky do formátu MP3. V tomto případě, ukládání do vyrovnávací paměti celé trati v potrubí vyrovnávací paměti by umožnilo CD disk točit rychleji, a umožní uživateli vyjměte CD z mechaniky předtím, než kódování proces dokončil.

takový příkaz vyrovnávací paměti lze implementovat pomocí systémových volání pro čtení a zápis dat. Nehospodárnému zaneprázdněnému čekání se lze vyhnout pomocí zařízení, jako je hlasování nebo výběr nebo multithreading.

některé pozoruhodné příklady potrubních softwarových systémů zahrnují:

  • RaftLib-C / C++ Apache 2.0 licence

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.