Programowanie współbieżne i rozproszone: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
mNie podano opisu zmian |
|||
(Nie pokazano 43 wersji utworzonych przez 2 użytkowników) | |||
Linia 1: | Linia 1: | ||
== 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, 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 == | == Sylabus == | ||
=== Autor === | === Autor === | ||
Marcin Engel | * Marcin Engel — Uniwersytet Warszawski | ||
=== Wymagania wstępne === | === Wymagania wstępne === | ||
* Wstęp do programowania | * Wstęp do programowania | ||
* Systemy operacyjne | * Systemy operacyjne | ||
* Środowisko programisty | |||
=== Zawartość === | === Zawartość === | ||
* Klasyczne problemy współbieżności | * Klasyczne problemy współbieżności | ||
* Mechanizmy synchronizacji procesów w modelu scentralizowanym i rozproszonym | * Mechanizmy synchronizacji procesów w modelu scentralizowanym i rozproszonym: | ||
** semafory | ** semafory | ||
** monitory | ** monitory | ||
Linia 25: | Linia 25: | ||
* Poprawność programów współbieżnych i jej weryfikacja | * Poprawność programów współbieżnych i jej weryfikacja | ||
* Procesy i wątki w systemie Linux i najważniejsze metody ich synchronizacji | * Procesy i wątki w systemie Linux i najważniejsze metody ich synchronizacji | ||
* Notacje do opisu współbieżności | * Notacje do opisu współbieżności: | ||
** CSP | ** CSP | ||
** Sieci Petriego | ** Sieci Petriego | ||
=== Literatura === | === Literatura === | ||
# M. Ben-Ari | # M. Ben-Ari, ''Podstawy programowania współbieżnego i rozproszonego.'' Wydawnictwa Naukowo-Techniczne, Warszawa 1996. | ||
# Z. Weiss, T. Gruźlewski | # Z. Weiss, T. Gruźlewski, ''Programowanie współbieżne i rozproszone w przykładach i zadaniach.'' Wydawnictwa Naukowo-Techniczne, Warszawa 1993. | ||
# M. Rochkind | # M. Rochkind, ''Programowanie w systemie Unix dla zaawansowanych.'' Wydawnictwa Naukowo-Techniczne, Warszawa 1997. | ||
# M.K. Johnson, E.W. Troan | # M.K. Johnson, E.W. Troan, ''Oprogramowanie użytkowe w systemie Linux.'' Wydawnictwa Naukowo-Techniczne, Warszawa2000. | ||
== Moduły == | |||
=== Moduły wykładowe === | |||
# [[Programowanie współbieżne i rozproszone/PWR Wykład 1|Wprowadzenie do programowania współbieżnego]] | |||
# [[Programowanie współbieżne i rozproszone/PWR Wykład 2|Komunikacja asynchroniczna w modelu rozproszonym]] | |||
# [[Programowanie współbieżne i rozproszone/PWR Wykład 3|Linda]] | |||
# [[Programowanie współbieżne i rozproszone/PWR Wykład 4|Komunikacja synchroniczna na przykładzie Ady]] | |||
# [[Programowanie współbieżne i rozproszone/PWR Wykład 5|Communicating Sequential Processes]] | |||
# [[Programowanie współbieżne i rozproszone/PWR Wykład 5b|CSP cd.]] | |||
<!-- # [[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 Wykład 7|Rozproszony algorytm uzgadniania]] | |||
# [[Programowanie współbieżne i rozproszone/PWR Wykład 8|Mechanizmy scentralizowane. Semafory]] | |||
# [[Programowanie współbieżne i rozproszone/PWR Wykład 9|Semafory cd.]] | |||
# [[Programowanie współbieżne i rozproszone/PWR Wykład 10|Monitory]] | |||
<!--# [[Programowanie współbieżne i rozproszone/PWR Wykład 12|Muteksy i inne mechanizmy synchronizacyjne]] --> | |||
# [[Programowanie współbieżne i rozproszone/PWR Wykład 11|Specyfikowanie i weryfikacja własności programów współbieżnych. CTL]] | |||
<!--# [[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 Wykład 14|Synchronizacja w Javie]] | |||
--> | |||
=== Moduły ćwiczeniowe === | |||
# [[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 1|Ćwiczenia. Algorytm Petersona]] | |||
# [[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 3|Ćwiczenia. Tworzenie programów w modelu asynchronicznym]] | |||
# [[Programowanie współbieżne i rozproszone/PWR Ćwiczenia Linda|Ćwiczenia. Linda]] | |||
# [[Programowanie współbieżne i rozproszone/PWR Ćwiczenia Ada|Ćwiczenia. Ada]] | |||
# [[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 5|Ćwiczenia. CSP]] | |||
# [[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 8|Ćwiczenia. Semafory]] | |||
# [[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 10|Ćwiczenia. Monitory]] | |||
=== Moduły laboratoryjne === | |||
# [[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 2|Laboratorium. Procesy w systemie Linux]] | |||
# [[Programowanie współbieżne i rozproszone/PWR Ćwiczenia sygnały|Laboratorium. Sygnały w Linuksie]] | |||
# [[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 4|Laboratorium. Łącza nienazwane]] | |||
# [[Programowanie współbieżne i rozproszone/PWR Ćwiczenia koleki|Laboratorium. IPC Kolejki komunikatów]] | |||
# [[Programowanie współbieżne i rozproszone/PWR Ćwiczenia R-A|Laboratorium. Algorytm Ricarta-Agrawali]] | |||
# [[Programowanie współbieżne i rozproszone/PWR Ćwiczenia sem|Laboratorium. IPC. Semafory]] | |||
# [[Programowanie współbieżne i rozproszone/PWR Ćwiczenia shm|Laboratorium. IPC. Segmenty pamięci dzielonej]] | |||
# [[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 9|Laboratorium. Wątki i muteksy w Linuksie]] | |||
<!--# [[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 13|Laboratorium. Wątki i ich synchronizacja w Javie]]) | |||
# [[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 14|Laboratorium. Narzędzia do weryfikacji programów współbieżnych SMV ]] --> |
Aktualna wersja na dzień 09:05, 4 gru 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, 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