Programowanie współbieżne
Informacje ogólne
Typ:specjalnościowyKierunek:Informatyka studia licencjackie
Semestr:5
Wymiar zajęć:30 godzin wykładu, 30 godzin laboratorium
Punkty ECTS:8
Program
Teoretyczne modele maszyn równoległych. Miary złożoności stosowane do obliczeń równoległych. Przykłady algorytmów równoległych i szacowanie ich złożoności. Systemy rozproszone i skupione, równoległość rzeczywista (nakładanie) i przeplot. Przykłady architektury systemów komputerowych służących do obliczeń współbieżnych. Formalizmy matematyczne stosowane do opisu procesów współbieżnych. Pojęcie uczciwości (fairness) i sprawiedliwości (justice) wykonywania obliczeń współbieżnych. Podstawowe modele komunikacji miedzyprocesowej, pamięć dzielona i kanały komunikacyjne. Komunikacja synchroniczna i asynchroniczna. Buforowanie. Koordynacja procesów współbieżnych. Pojęcie blokady (deadlock) i głodzenia (starvation) procesów. Problem wzajemnego wykluczania i inne podstawowe problemy programowania współbieżnego. Mechanizmy koordynacji, semafory i monitory. Mechanizmy komunikacji i synchronizacji procesów w systemie UNIX (kolejki, pamięć dzielona, semafory). Narzędzia tworzenia i koordynacji wątków.Sposób zaliczenia
Laboratorium - napisanie kilka mniejszych projektów programistycznych w ciągu semestru + jeden większy projekt na koniec (wszystko wykonywane indywidualnie, nie zespołowo).Wykład kończy się egzaminem pisemnym w formie testu wyboru (zarówno termin podstawowy, jak i poprawkowy).
Literatura
M. Ben - Ari - Podstawy programowania współbieżnego i rozproszonego, WNT 1996 J.S.Gray, Komunikacja między procesami w UNIXie, RM 1998.