Programowanie współbieżne i rozproszone: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 37: | Linia 37: | ||
== Moduły == | == Moduły == | ||
# [[Programowanie współbieżne i rozproszone/PWR Wykład 1|Wprowadzenie do programowania współbieżniego]] ([[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 1|Ćwiczenia. Algorytm Petersena]]) | # [[Programowanie współbieżne i rozproszone/PWR Wykład 1|Wprowadzenie do programowania współbieżniego]] ([[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 1|Ćwiczenia. Algorytm Petersena]]) | ||
# [[PWR Wykład 2|Komunikacja asynchroniczna w modelu rozproszonym]] ([[PWR Ćwiczenia 2|Laboratorium. Procesy w systemie Linux]]) | # [[Programowanie współbieżne i rozproszone/PWR Wykład 2|Komunikacja asynchroniczna w modelu rozproszonym]] ([[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 2|Laboratorium. Procesy w systemie Linux]]) | ||
# [[PWR Wykład 3|Linda]] ([[PWR Ćwiczenia 3|Ćwiczenia. Tworzenie programów w modelu asynchronicznym]]) | # [[Programowanie współbieżne i rozproszone/PWR Wykład 3|Linda]] ([[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 3|Ćwiczenia. Tworzenie programów w modelu asynchronicznym]]) | ||
# [[PWR Wykład 4|Komunikacja synchroniczna na przykładzie Ady]] ([[PWR Ćwiczenia 4|Laboratorium. Łącza nazwane i nienazwane]]) | # [[Programowanie współbieżne i rozproszone/PWR Wykład 4|Komunikacja synchroniczna na przykładzie Ady]] ([[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 4|Laboratorium. Łącza nazwane i nienazwane]]) | ||
# [[PWR Wykład 5|Communicating Sequential Processes]] ([[PWR Ćwiczenia 5|Ćwiczenia. Tworzenie programów w modelu synchronicznym]]) | # [[Programowanie współbieżne i rozproszone/PWR Wykład 5|Communicating Sequential Processes]] ([[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 5|Ćwiczenia. Tworzenie programów w modelu synchronicznym]]) | ||
# [[PWR Wykład 6|Algorytmy rozproszone: synchronizacja zegarów logicznych, wzajemne wykluczanie, elekcja]] ([[PWR Ćwiczenia 6| Laboratorium.RPC]]) | # [[Programowanie współbieżne i rozproszone/PWR Wykład 6|Algorytmy rozproszone: synchronizacja zegarów logicznych, wzajemne wykluczanie, elekcja]] ([[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 6| Laboratorium.RPC]]) | ||
# [[PWR Wykład 7|Rozproszony algorytm uzgadniania]] ([[PWR Ćwiczenia 7|Laboratorium. Sygnały w Linuksie]]) | # [[Programowanie współbieżne i rozproszone/PWR Wykład 7|Rozproszony algorytm uzgadniania]] ([[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 7|Laboratorium. Sygnały w Linuksie]]) | ||
# [[PWR Wykład 8|Mechanizmy scentralizowane. Semafory]] ([[PWR Ćwiczenia 8|Laboratorium. IPC. Kolejki komunikatów]]) | # [[Programowanie współbieżne i rozproszone/PWR Wykład 8|Mechanizmy scentralizowane. Semafory]] ([[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 8|Laboratorium. IPC. Kolejki komunikatów]]) | ||
# [[PWR Wykład 9|Monitory i muteksy]] ([[PWR Ćwiczenia 9|Laboratorium. IPC. Semafory]]) | # [[Programowanie współbieżne i rozproszone/PWR Wykład 9|Monitory i muteksy]] ([[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 9|Laboratorium. IPC. Semafory]]) | ||
# [[PWR Wykład 10|Synchronizacja w Javie]] ([[PWR Ćwiczenia 10|Ćwiczenia. Tworzenie programów korzystających z semaforów.]]) | # [[Programowanie współbieżne i rozproszone/PWR Wykład 10|Synchronizacja w Javie]] ([[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 10|Ćwiczenia. Tworzenie programów korzystających z semaforów.]]) | ||
# [[PWR Wykład 11|Specyfikowanie własności programów współbieżnych. CTL i LTL]] ([[PWR Ćwiczenia 11|Laboratorium. Wątki i muteksy w Linuksie]]) | # [[Programowanie współbieżne i rozproszone/PWR Wykład 11|Specyfikowanie własności programów współbieżnych. CTL i LTL]] ([[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 11|Laboratorium. Wątki i muteksy w Linuksie]]) | ||
# [[PWR Wykład 12|Weryfikacja poprawności programów współbieżnych.]] ([[PWR Ćwiczenia 12|Ćwiczenia. Tworzenie programów korzystających z monitorów i muteksów]]) | # [[Programowanie współbieżne i rozproszone/PWR Wykład 12|Weryfikacja poprawności programów współbieżnych.]] ([[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 12|Ćwiczenia. Tworzenie programów korzystających z monitorów i muteksów]]) | ||
# [[PWR Wykład 13|Inne notacje do opisu współbieżności. Sieci Petriego]] ([[PWR Ćwiczenia 13|Laboratorium. Wątki i ich synchronizacja w Javie]]) | # [[Programowanie współbieżne i rozproszone/PWR Wykład 13|Inne notacje do opisu współbieżności. Sieci Petriego]] ([[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 13|Laboratorium. Wątki i ich synchronizacja w Javie]]) | ||
# [[PWR Wykład 14|Inne notacje do opisu współbieżności. Sieci Petriego]] ([[PWR Ćwiczenia 14|Laboratorium. Narzędzia do weryfikacji programów współbieżnych SPIN ]]) | # [[Programowanie współbieżne i rozproszone/PWR Wykład 14|Inne notacje do opisu współbieżności. Sieci Petriego]] ([[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 14|Laboratorium. Narzędzia do weryfikacji programów współbieżnych SPIN ]]) |
Wersja z 12:16, 20 cze 2006
Forma 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 oraz 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 przedstawiona na przykładzie klasycznych problemów współbieżności oraz procesów i wątków w systemie operacyjnym Linux. Przedstawione też będą klasyczne algorytmy rozproszone oraz zagadnienia związane z weryfikacją programów współbieżnych oraz notacje do opisu współbieżności.
Sylabus
Autor
- Marcin Engel
Wymagania wstępne
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. WNT, 1996.
- Z. Weiss, T. Gruźlewski. Programowanie współbieżne i rozproszone w przykładach i zadaniach. WNT, 1993.
- M. Rochkind. Programowanie w systemie Unix dla zaawansowanych. WNT, 1997.
- M.K. Johnson, E.W. Troan. Oprogramowanie użytkowe w systemie Linux. WNT, 2000.
Moduły
- Wprowadzenie do programowania współbieżniego (Ćwiczenia. Algorytm Petersena)
- Komunikacja asynchroniczna w modelu rozproszonym (Laboratorium. Procesy w systemie Linux)
- Linda (Ćwiczenia. Tworzenie programów w modelu asynchronicznym)
- Komunikacja synchroniczna na przykładzie Ady (Laboratorium. Łącza nazwane i nienazwane)
- Communicating Sequential Processes (Ćwiczenia. Tworzenie programów w modelu synchronicznym)
- Algorytmy rozproszone: synchronizacja zegarów logicznych, wzajemne wykluczanie, elekcja ( Laboratorium.RPC)
- Rozproszony algorytm uzgadniania (Laboratorium. Sygnały w Linuksie)
- Mechanizmy scentralizowane. Semafory (Laboratorium. IPC. Kolejki komunikatów)
- Monitory i muteksy (Laboratorium. IPC. Semafory)
- Synchronizacja w Javie (Ćwiczenia. Tworzenie programów korzystających z semaforów.)
- Specyfikowanie własności programów współbieżnych. CTL i LTL (Laboratorium. Wątki i muteksy w Linuksie)
- Weryfikacja poprawności programów współbieżnych. (Ćwiczenia. Tworzenie programów korzystających z monitorów i muteksów)
- Inne notacje do opisu współbieżności. Sieci Petriego (Laboratorium. Wątki i ich synchronizacja w Javie)
- Inne notacje do opisu współbieżności. Sieci Petriego (Laboratorium. Narzędzia do weryfikacji programów współbieżnych SPIN )