Przejdź do zawartości

Przetwarzanie współbieżne

Z Wikipedii, wolnej encyklopedii

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ł sekwencyjnie, 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.

Zobacz też

[edytuj | edytuj kod]
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy