Souběžné výpočty

Z Wikipedie, otevřené encyklopedie

Souběžné výpočty neboli souběžné zpracování (anglicky concurrent computing) je ve výpočetní technice zpracování založené na současné existenci mnoha vláken nebo procesů pracujících se sdílenými daty. Při provádění více vláken na stejném procesoru se přepíná mezi vlákny v krátkých intervalech, což vytváří dojem, že se provádějí paralelně. Skutečně souběžné zpracování je možné v multiprocesorových architekturách nebo na vícejádrových nebo vícevláknových procesorech. Výkon jednotlivých vláken pak není negativně ovlivňován jinými vlákny, kromě případů, když vlákna musí soutěžit o společné prostředky, např. kapacitu sběrnic nebo zařízení nebo čas procesoru, nebo musí synchronizovat svoji práci.

Souběžné zpracování je významné v serverech, které musí zpracovávat mnoho požadavků od různých klientů. Pokud by server pracoval sekvenčně, jedna velká žádost by jeho práci ochromil – zbylé požadavků by musely čekat, až na ně přijde řada, až bude právě obsluhovaný požadavek proveden. Aby se v jednovláknových architekturách zabránilo zastavení zpracování ostatních vláken časově náročným úkolem, používají se techniky preempce a multitaskingu. V multiprocesorových architekturách nebo s vícejádrovými nebo vícevláknovými procesory je potřeba multitaskingu menší, může se však stát, že počet vláken vyžadujících provádění je větší než počet fyzických nebo virtuálních procesorů v systému.

Současná práce se sdílenými daty může vést ke ztrátě jejich integrity, a proto je nutné použití různých synchronizačních mechanismů, např. semaforů nebo monitorů. Do návrhu některých programovacích jazyků (např. Go, Erlang, Ada, Rust) byly zahrnuty nástroje podporující vytváření souběžných systémů. Tyto jazyky obsahují silnou podporu komunikace nebo synchronizace vláken již na úrovni jazyka.

Odkazy[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku Przetwarzanie współbieżne na polské Wikipedii.

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

Externí odkazy[editovat | editovat zdroj]