Skip to content
EntityQ128392· pop 25· linked from 571 articles

przetwarzanie współbieżne

Sign in to save

Also known as concurrent programming, concurrent, concurrent computation, concurrent execution

form of computing in which several computations logically execute during overlapping time periods

Wikidata facts

Show 1 more fact
Commons category
Concurrent programming
Sources (3)

via Wikidata · CC0

Article · Polski

Przetwarzanie współbieżne (ang. concurrent computing) – przetwarzanie oparte na współistnieniu wielu wątków lub procesów, operujących na współdzielonych danych. Wątki uruchomione na tym samym procesorze są przełączane w krótkich przedziałach czasu, co sprawia wrażenie, że wykonują się równolegle. W przypadku procesorów wielordzeniowych lub wielowątkowych, możliwe jest faktycznie współbieżne przetwarzanie. Tego rodzaju przetwarzanie jest też możliwe w architekturach wieloprocesorowych. W takiej sytuacji wydajność poszczególnych wątków zasadniczo nie jest degradowana przez inne wątki, z wyjątkiem sytuacji, kiedy wątki muszą rywalizować o wspólne zasoby, np. przepustowość magistral i urządzeń lub czas procesora, lub muszą synchronizować swoją pracę. Przetwarzanie współbieżne znajduje szerokie zastosowanie w serwerach, które muszą obsługiwać liczne żądania od różnych klientów. Gdyby serwer działał , jedno duże żądanie sparaliżowałoby pracę serwera – pozostałe żądania czekałyby na swoją kolej, aż tamto zostanie ukończone. W architekturach jednowątkowych w celu zapobieżenia zatrzymaniu przetwarzania wątków przez duże zadanie, stosuje się technikę wywłaszczania i multitaskingu. W architekturach wieloprocesorowych lub z procesorami wielordzeniowymi i/lub wielowątkowymi, potrzeba multitaskingu jest dużo mniejsza, chyba że liczba wymagających wykonania wątków jest większa, niż liczba procesorów fizycznych lub wirtualnych w systemie. Jednoczesna praca na współdzielonych danych może doprowadzić do utraty ich spójności, dlatego konieczne jest stosowanie różnych mechanizmów synchronizacyjnych, np. semaforów i monitorów. Niektóre języki programowania (np. Go, Erlang, Ada, Rust) powstały z myślą o tworzeniu systemów współbieżnych i zawierają silne wsparcie dla komunikacji lub synchronizacji wątków już na poziomie języka.

Abstract from DBpedia / Wikipedia · CC BY-SA

Connections

Categories