Ta witryna wykorzystuje pliki cookie, dowiedz się więcej Zgadzam się
Programowanie współbieżne w informatyce i nie tylko


O Kursie

Cel kursu
Celem kursu jest przekazanie uczestnikom wiedzy z zakresu programowania współbieżnego.

Tematyka kursu
Program współbieżny to zestaw wykonujących się w tym samym czasie „zwykłych” programów. Techniki współbieżne stosuje się przy tworzeniu wielu współczesnych programów, na przykład opracowując interfejs użytkownika, programując gry czy aplikacje sieciowe. Tworzenie programów współbieżnych wymaga od programisty większej dyscypliny i wyobraźni niż pisanie programów sekwencyjnych. Oprócz zagwarantowania poprawności poszczególnych składowych programu współbieżnego, trzeba jeszcze dobrze zsynchronizować ich działanie oraz przewidzieć wszystkie możliwe scenariusze wykonania. Nie jest to łatwe – przekonamy się, jak często podczas analizowania programów współbieżnych może zawieść nas intuicja!
W trakcie zajęć przedstawimy podstawowe pojęcia programowania współbieżnego. Zdefiniujemy pojęcie procesu i wyjaśnimy, jak mogą być wykonywane programy współbieżne. Powiemy także, jak współczesne systemy operacyjne radzą sobie z wykonywaniem wielu zadań na jednym procesorze. Na przykładzie dwóch klasycznych problemów współbieżności: wzajemnego wykluczania oraz pięciu filozofów omówimy pojęcia związane z analizą programów współbieżnych: przeplot, poprawność, bezpieczeństwo oraz żywotność. Przekonamy się, że z tymi pojęciami oraz problemami synchronizacyjnymi spotykamy się na co dzień, na przykład ucząc się, piekąc ciasto albo obserwując ruch samochodów na ulicach.
Zajęcia będą miały formę wykładu, ale w jego trakcie będziemy wspólnie uruchamiać niektóre programy współbieżne na „wirtualnym komputerze wieloprocesorowym”, którego procesorami będą słuchacze.

  1. Co to jest programowanie współbieżne
    • 1.1. Model komputera
    • 1.2. Program sekwencyjny
    • 1.3. Program współbieżny
    • 1.4. Programy i procesy
    • 1.5. Różne sposoby wykonywania programu współbieżnego
    • 1.6. Znaczenie programowania współbieżnego
    • 1.7. Jak komputery wykonują programy współbieżne
  2. Kłopoty z programami współbieżnymi
    • 2.1. Problemy synchronizacyjne
    • 2.2. Problem z brakiem atomowości instrukcji
    • 2.3. Problem z jednoznaczną modyfikacją zmiennych globalnych
  3. Wzajemne wykluczenie
  4. Poprawność programów współbieżnych
    • 4.1. Własność bezpieczeństwa
    • 4.2. Własność żywotności
    • 4.3. Przykłady braku żywotności
  5. Podsumowanie

Struktura kursu
Kurs składa się z następujących elementów:

  1. Wykład wprowadzający do kursu (video)
  2. Zeszyt dydaktyczny do kursu - w formacie PDF,
  3. Prezentacja PowerPoint do kursu - w formacie .ppt,
  4. Test z pytaniami sprawdzającymi wiedzę

Sposób realizacji kursu
Kurs jest przeznaczony do realizacji w trybie samokształcenia lub pod kierunkiem nauczyciela. Po zapoznaniu się ze wszystkimi elementami kursu oraz wykonaniu testu sprawdzającego wiedzę, uczestnik otrzymuje prawo do samodzielnego wystawienia certyfikatu potwierdzającego zrealizowanie kursu e-learningowego „Programowanie współbieżne w informatyce i nie tylko” przygotowanego przez Warszawską Wyższą Szkołę Informatyki.

Certyfikat potwierdzający realizację kursu

certyfikat

O wykładowcy
Dr Marcin Engel jest wykładowcą na Uniwersytecie Warszawskim.