REKLAMA

Programista 11/2016 (54) – Algorytmy lock-free

W obecnych czasach cztery czy nawet osiem rdzeni w procesorze komputera osobistego nikogo nie zaskakuje. To, co jeszcze 10 lat temu zarezerwowane było prawie wyłącznie dla domeny procesorów serwerowych, dzisiaj znaleźć można w rozwiązaniach dedykowanych dla telefonów komórkowych. Jednakże czy ze wzrostem ilości rdzeni obserwujemy również wzrost wydajności aplikacji? Innymi słowy, czy trend wzrostu ilości rdzeni w procesorach jest odpowiednio wykorzystany przez programistów? Czy zastosowany algorytm współdzielenia danych może w znaczący sposób ograniczać skalowalność? W niniejszym artykule postaramy się odpowiedzieć na te pytania i jednocześnie pokazać, jak można poprawić swoje „kung-fu” programowania współbieżnego...

Niektóre zagadnienia poruszane w tym artykule:

  • Stara szkoła programowania przed popularyzacją SMP;
  • Algorytm bufora cyklicznego korzystającego z mutexa;
  • Algorytmy typu Lock-free;
  • Algorytm bufora cyklicznego korzystającego z CAS;
  • Diabeł tkwi w szczegółach – false sharing;
  • Model pamięci w językach programowania, czyli nawet jednorożce muszą czasami zejść na ziemię;
  • Poznaj swój arsenał atomowy.

Artykuł pochodzi z miesięcznika "Programista" nr 11/2016 (54). Jest to wydanie grudzień 2016 /styczeń 2017. Szczegółowy spis treści tego wydania: http://programistamag.pl/programista-11-2016-54/

Autorami artykułu są: 

Radosław Biernacki - programista systemów wbudowanych w krakowskiej firmie Semihalf. Autor systemu RTOS „RadOS”. Ostatnie dwa lata zajmuje się implementacją standardu ODP z wykorzystaniem procesorów zgodnych z architekturą ARMv8 dla wysokowydajnych rozwiązań sieciowych.

Maciej Czekaj - programista systemów wbudowanych w krakowskiej firmie Semihalf, poprzednio w Motoroli. Zajmuje się w systemami wbudowanymi Linux/ARM, stosami sieciowymi i wirtualizacją. Współtworzył m.in. aplikację do zarządzania siecią SDN na bazie DPDK: Contrail Virtual Router.

>>POBIERZ FRAGMENT TEGO ARTYKUŁU<<

54_stos750