Opis
- szacowanie wydajności przyszłej aplikacji wielowątkowej
- korzystanie z mechanizmów dostarczanych przez system operacyjny oraz bibliotekę pthread
- prawidłowe stosowanie mechanizmów synchronizacyjnych
- testowanie komponentów wielowątkowych
Cel
- umiejętność programowania wielowątkowego i stosowania mechanizmów asynchronicznych
- zdolność szacowania wydajności przyszłej aplikacji wielowątkowej
- zapoznanie się z mechanizmami dostępnymi w bibliotece pthread
- 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 z doświadczeniem w programowaniu z użyciem języka C, którzy chcą poszerzyć wiedzę i umiejętności o programowanie wielowątkowe.
W trakcie zajęć słuchacze zapoznają się z mechanizmami dostarczanymi przez system oraz bibliotekę pthread a także otrzymują wiedzę dotyczącą projektowania architektury aplikacji wielowątkowych. Zagadnienia teoretyczne znajdują swoje zastosowanie bezpośrednio w kodzie.
Uczestnicy szkolenia kształcą także umiejętności wyszukiwania i usuwania błędów w aplikacjach wielowątkowych z użyciem narzędzi na licencjach otwartych.
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 w języku C
- umiejętność biegłej pracy w wybranym środowisku IDE
- znajomość podstaw związanych z programowaniem systemowym będzie bardzo pomocna
Konspekt
- 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 pthread
- szeregowanie wątków
- Współpraca procesów
- tradycyjne mechanizmy synchronizujące współpracę procesów - przegląd
- mechanizmy strukturalne implementowania synchronizacji
- Wzajemne wykluczanie i dostęp do sekcji krytycznych
- mechanizmy wzajemnego wykluczania
- prawidłowa implementacja wzajemnego wykluczania
- Semafory
- tradycyjne operacje semaforowe
- modyfikacje operacji semaforowych
- zmienne decyzyjne i ich współpraca z semaforami
- współpraca wielu semaforów
- Bariery
- rodzaje barier i ich implementacja
- metody wznawiania działania wątków
- Blokady wirujące (ang. spinlock)
- zastosowanie blokad wirujących
- szacowanie wydajności blokad wirujących
- Obsługa anulowania wątku
- deklaracja punktów anulowania
- tryby anulowania wątków
- Projektowanie aplikacji wielowątkowych
- metody projektowania aplikacji wielowątkowych
- szacowanie stopnia wielowątkowości i przyszłego skalowania aplikacji
- obsługa błędów związanych z wielowątkowością
- 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