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.


nask logo   


Drogi użytkowniku
Przechodząc do serwisu poprzez kliknięcie odnośnika „Zgadzam się” wyrażasz zgodę na przetwarzanie przez nas Twoich danych osobowych.
Pliki cookies
Gdy korzystasz z naszych serwisów, gromadzimy informacje o Twojej wizycie i sposobie poruszania się w naszych serwisach. W tym celu stosujemy pliki cookies. Plik cookies zawiera dane informatyczne, które są umieszczone w Twoim urządzeniu końcowym - przeglądarce internetowej, z której korzystasz.
Pliki cookies używane w naszych serwisach wykorzystywane są między innymi do bieżącej optymalizacji serwisów oraz ułatwiania Twojego z nich korzystania. Niektóre funkcjonalności dostępne w naszych serwisach mogą nie działać, jeżeli nie wyrazisz zgody na instalowanie plików cookies.
Instalowanie plików cookies lub uzyskiwanie do nich dostępu nie powoduje zmian w Twoim urządzeniu ani w oprogramowaniu zainstalowanym na tym urządzeniu.
Stosujemy dwa rodzaje plików cookies: sesyjne i trwałe. Pliki sesyjne wygasają po zakończonej sesji, której czas trwania i dokładne parametry wygaśnięcia określa używana przez Ciebie przeglądarka internetowa oraz nasze systemy analityczne. Trwałe pliki cookies nie są kasowane w momencie zamknięcia okna przeglądarki, głównie po to, by informacje o dokonanych wyborach nie zostały utracone. Pliki cookies aktywne długookresowo wykorzystywane są, aby pomóc nam wspierać komfort korzystania z naszych serwisów, w zależności od tego czy dochodzi do nowych, czy do ponownych odwiedzin serwisu.

Do czego wykorzystujemy pliki cookies?
Pliki cookies wykorzystywane są w celach statystycznych oraz aby usprawnić działanie serwisów i zwiększyć komfort z nich korzystania, m.in:

  • pozwalają sprawdzić jak często odwiedzane są poszczególne strony serwisów - dane te wykorzystujemy do optymalizacji serwisów pod kątem odwiedzających;
  • umożliwiają rozpoznanie rodzaju Twojego urządzenia, dzięki czemu możemy lepiej dopasować sposób i format prezentowania treści oraz funkcjonalności serwisów;
  • poprawiają wydajność i efektywność serwisów dla korzystających.

W jaki sposób możesz nie wyrazić zgody na instalowanie plików cookies za pomocą ustawień przeglądarki?
Jeśli nie chcesz, by pliki cookies były instalowane na Twoim urządzeniu, możesz zmienić ustawienia swojej przeglądarki w zakresie instalowania plików cookies. W każdej chwili możesz też usunąć z pamięci swojego urządzenia pliki cookies zapisane w trakcie przeglądania naszych serwisów. Pamiętaj jednak, że ograniczenia w stosowaniu plików cookies mogą utrudnić lub uniemożliwić korzystanie z tych serwisów.
Wykorzystywane narzędzia firm trzecich
Niektóre pliki cookies są tworzone przez podmiot, z usług których korzystamy, np.

  • Google Inc.

W naszych serwisach wykorzystujemy narzędzie Google Analytics do analizy ruchu na stronie internetowej oraz aktywności dotyczących jej przeglądania. Wykorzystujemy je w szczególności do celów statystycznych, aby sprawdzić jak często odwiedzane są poszczególne serwisy. Dane te wykorzystujemy również do optymalizacji i rozwoju serwisów. Więcej informacji na temat narzędzia Google Analytics znajdziesz na stronie:  https://policies.google.com/technologies/cookies

  • Facebook

Więcej informacji o zasadach plików cookies możesz znaleźć na:
https://pl-pl.facebook.com/policies/cookies/     

  • Twitter

Więcej informacji o zasadach plików cookies możesz znaleźć na:
https://help.twitter.com/en/rules-and-policies/twitter-cookies

  • Youtube

Więcej informacji o zasadach plików cookies możesz znaleźć na:
https://policies.google.com/privacy?hl=pl&gl=pl

 

Wyrażam zgodę na podstawowe oraz funkcjonalne cookies.
Podstawowe cookies są niezbędne aby strona mogła działać prawidłowo.
Cookies funkcjonalne wykorzystujemy do analizowania wizyt na stronie internetowej. Pomoże nam to zrozumieć, jak często odwiedzane są poszczególne serwisy oraz pozwoli optymalizować i rozwijać stronę. ZGADZAM SIĘ