Programowanie współbieżne i rozproszone
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwaniaForma zajęć
Wykład (30 godzin) + laboratorium/ćwiczenia (30 godzin)
Opis
Celem wykładu jest zaprezentowanie najważniejszych technik stosowanych do synchronizacji procesów i realizacji komunikacji między nimi, problemów, jakie stają przed programistą opracowującym programy współbieżne. Omówiony zostanie scentralizowany i rozproszony model programu współbieżnego. Problematyka zostanie zilustrowana przykładami klasycznych problemów współbieżności oraz mechanizmów synchronizacji procesów i wątków w systemie operacyjnym Linux. Przedstawione też zostaną metody weryfikacji programów współbieżnych oraz notacje do opisu współbieżności oraz podstawowe algorytmy rozproszone.
Sylabus
Autor
- Marcin Engel — Uniwersytet Warszawski
Wymagania wstępne
- Wstęp do programowania
- Systemy operacyjne
- Środowisko programisty
Zawartość
- Klasyczne problemy współbieżności
- Mechanizmy synchronizacji procesów w modelu scentralizowanym i rozproszonym:
- semafory
- monitory
- muteksy
- spotkania (Ada)
- Procesy i wątki w systemie Linux i najważniejsze metody ich synchronizacji
- Algorytmy rozproszone: wzajemnego wykluczania, elekcji i uzgadniania
- Poprawność programów współbieżnych i jej weryfikacja
- Procesy i wątki w systemie Linux i najważniejsze metody ich synchronizacji
- Notacje do opisu współbieżności:
- CSP
- Sieci Petriego
Literatura
- M. Ben-Ari, Podstawy programowania współbieżnego i rozproszonego. Wydawnictwa Naukowo-Techniczne, Warszawa 1996.
- Z. Weiss, T. Gruźlewski, Programowanie współbieżne i rozproszone w przykładach i zadaniach. Wydawnictwa Naukowo-Techniczne, Warszawa 1993.
- M. Rochkind, Programowanie w systemie Unix dla zaawansowanych. Wydawnictwa Naukowo-Techniczne, Warszawa 1997.
- M.K. Johnson, E.W. Troan, Oprogramowanie użytkowe w systemie Linux. Wydawnictwa Naukowo-Techniczne, Warszawa2000.
Moduły
Moduły wykładowe
- Wprowadzenie do programowania współbieżnego
- Komunikacja asynchroniczna w modelu rozproszonym
- Linda
- Komunikacja synchroniczna na przykładzie Ady
- Communicating Sequential Processes
- CSP cd.
- Rozproszony algorytm uzgadniania
- Mechanizmy scentralizowane. Semafory
- Semafory cd.
- Monitory
- Specyfikowanie i weryfikacja własności programów współbieżnych. CTL
Moduły ćwiczeniowe
- Ćwiczenia. Algorytm Petersona
- Ćwiczenia. Tworzenie programów w modelu asynchronicznym
- Ćwiczenia. Linda
- Ćwiczenia. Ada
- Ćwiczenia. CSP
- Ćwiczenia. Semafory
- Ćwiczenia. Monitory