Cena Netto:
3 200.00 PLN
Brutto: 3 936.00 PLN
Nadchodzące szkolenia:
Warszawa
17.12.2018-19.12.2018

Generuj PDF

Zapisz się

Opis

Umiejętności zdobywane podczas kursu:

  • szacowanie wydajności przyszłej aplikacji wielowątkowej
  • korzystanie z mechanizmów dostarczanych przez system operacyjny oraz bibliotekę Boost
  • prawidłowe stosowanie mechanizmów synchronizacyjnych w idiomie programowania proceduralnego i obiektowego
  • testowanie komponentów wielowątkowych
  • znajomość i zakres stosowania wzorców projektowych związanych z wielowątkowością

Cel

  • umiejętność programowania wielowątkowego i stosowania mechanizmów asynchronicznych
  • zdolność szacowania wydajności przyszłej aplikacji wielowątkowej
  • określanie i prawidłowe stosowanie wzorców związanych z programowaniem wielowątkowym we własnej aplikacji
  • zapoznanie się z mechanizmami dostępnymi w bibliotece Boost
  • identyfikacja mechanizmów synchronizacji i reagowania aplikacji na problemy wynikające z działania wątków

Grupa docelowa:

Szkolenie przeznaczone jest dla programistów, którzy w swojej codziennej pracy posługują się językiem C++ i chcą wydajnie implementować obsługę wielowątkowości i wieloprogramowości. Zajęcia skupiają się na aspektach praktycznych związanych z mechanizmami, które znajdą swoje odzwierciedlenie w następnej wersji biblioteki standardowej języka. Kurs obejmuje także zagadnienia teoretyczne, których znajomość umożliwia prawidłowe oszacowanie wydajności przyszłej aplikacji oraz orientacyjny koszt jej konserwacji. Zagadnienia teoretyczne mają swoje bezpośrednie przełożenie na praktyczne aspekty codziennej pracy programisty.
W trakcie zajęć szeroko omawiane są mechanizmy dostarczane przez bibliotekę  Boost oraz wstępnie mechanizmy dostarczane przez bibliotekę pthread (mającą swój rodowód w języku C).

Uwagi:

Czas trwania szkolenia - 3 dni. 
Oferujemy szkolenia w naszych ośrodkach w Warszawie, Wrocławiu, Krakowie, jak i w lokalizacjach wskazanych przez klienta. 
W celu ustalenia szczegółów prosimy o kontakt na osec@osec.pl

Wymagania:

  • umiejętność programowania proceduralnego i obiektowego w języku C++
  • umiejętność biegłej pracy w wybranym środowisku IDE
  • praktyka w programowaniu systemowym w języku C będzie bardzo pomocna
  • znajomość podstaw związanych z programowaniem systemowym będzie bardzo pomocna

Konspekt

  1. Programowanie wielowątkowe - wyzwania i problemy
    • rodzaje implementacji wieloprocesowości i wielowątkowości
    • dostępne w języku C++ mechanizmy implementowania wielowątkowości i wieloprocesowości
    • implementacja biblioteki Boost
    • implementacja biblioteki pthread
    • szeregowanie wątków
    • obiektowe programowanie i wątki
  2. Współpraca procesów
    • tradycyjne mechanizmy synchronizujące współpracę procesów - przegląd
    • mechanizmy strukturalne implementowania synchronizacji
    • mechanizmy obiektowe implementowania synchronizacji
  3. Wzajemne wykluczanie i dostęp do sekcji krytycznych
    • mechanizmy wzajemnego wykluczania
    • typy blokad wzajemnego wykluczania
    • prawidłowa implementacja wzajemnego wykluczania
    • jednokrotna inicjalizacja
  4. Funkcje blokad
    • tradycyjne operacje semaforowe
    • implementacja blokad w bibliotece Boost
    • zmienne decyzyjne i ich współpraca z blokadami
    • współpraca wielu blokad
  5. Bariery
    • bariery i ich implementacja w bibliotece Boost
    • metody wznawiania działania wątków
  6. Wzorce projektowe wielowątkowości
    • rodzaje wzorców projektowych związanych z wielowątkowością
    • zakres zastosowań wzorców
    • implementowanie wybranych wzorców projektowych związanych z wielowątkowością
  7. Projektowanie aplikacji wielowątkowych
    • metody projektowania aplikacji wielowątkowych
    • rola i zastosowanie wzorców projektowych związanych z wielowątkowością
    • szacowanie stopnia wielowątkowości i przyszłego skalowania aplikacji
    • obsługa błędów związanych z wielowątkowością w bibliotece Boost
  8. Testowanie aplikacji wielowątkowych
    • testy jednostkowe i ich specyfika w aplikacjach wielowątkowych
    • diagnozowanie błędów w aplikacjach wielowątkowych
    • metody formalne testowania aplikacji wielowątkowych