Programowanie współbieżne i rozproszone: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Mengel (dyskusja | edycje)
mNie podano opisu zmian
Mengel (dyskusja | edycje)
mNie podano opisu zmian
Linia 4: Linia 4:
== Opis ==
== 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.
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 ==
== Sylabus ==
=== Autor ===
=== Autor ===
Marcin Engel
* Marcin Engel
 


=== Wymagania wstępne ===
=== Wymagania wstępne ===
* [[Wstęp do programowania]]
* [[Wstęp do programowania]]
* [[Systemy operacyjne]]
* [[Systemy operacyjne]]
Linia 37: Linia 33:
# Z. Weiss, T. Gruźlewski. ''Programowanie współbieżne i rozproszone w przykładach i zadaniach.'' WNT, 1993.
# 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. Rochkind. ''Programowanie w systemie Unix dla zaawansowanych.'' WNT, 1997.
# M.K. Johnson, E.W. Troan. ''Oprogramowanie uzytkowe w systemie Linux.'' WNT, 2000.
# M.K. Johnson, E.W. Troan. ''Oprogramowanie użytkowe w systemie Linux.'' WNT, 2000.


== Moduły ==
== Moduły ==
# [[PWR Wykład 1|Wprowadzenie do programowania współbieżniego]] ([[PWR Ćwiczenia 1|Ćwiczenia. Algorytm Petersena]])
# [[PWR Wykład 1|Wprowadzenie do programowania współbieżniego]] ([[PWR Ćwiczenia 1|Ćwiczenia. Algorytm Petersena]])
# [[PWR Wykład 2|Komunikacja asynchroniczna w modelu rozproszonym]] ([[PWR Ćwiczenia 2|Laboratorium. Procesy w systemie Linux]])
# [[PWR Wykład 2|Komunikacja asynchroniczna w modelu rozproszonym]] ([[PWR Ćwiczenia 2|Laboratorium. Procesy w systemie Linux]])

Wersja z 08:22, 9 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

  1. M. Ben-Ari. Podstawy programowania współbieżnego i rozproszonego. WNT, 1996.
  2. Z. Weiss, T. Gruźlewski. Programowanie współbieżne i rozproszone w przykładach i zadaniach. WNT, 1993.
  3. M. Rochkind. Programowanie w systemie Unix dla zaawansowanych. WNT, 1997.
  4. M.K. Johnson, E.W. Troan. Oprogramowanie użytkowe w systemie Linux. WNT, 2000.

Moduły

  1. Wprowadzenie do programowania współbieżniego (Ćwiczenia. Algorytm Petersena)
  2. Komunikacja asynchroniczna w modelu rozproszonym (Laboratorium. Procesy w systemie Linux)
  3. Linda (Laboratorium. Łącza nazwane i nienazwane)
  4. Komunikacja synchroniczna na przykładzie Ady (Ćwiczenia. Tworzenie programów w modelu asynchronicznym)
  5. Communicating Sequential Processes (Ćwiczenia. Tworzenie programów w modelu synchronicznym)
  6. Algorytmy rozproszone: synchronizacja zegarów logicznych, wzajemne wykluczanie, elekcja ( Laboratorium.RPC)
  7. Rozproszony algorytm uzgadniania (Laboratorium. Sygnały w Linuksie)
  8. Mechanizmy scentralizowane. Semafory (Laboratorium. IPC. Kolejki komunikatów)
  9. Monitory i muteksy (Laboratorium. IPC. Semafory)
  10. Synchronizacja w Javie (Ćwiczenia. Tworzenie programów korzystających z semaforów.)
  11. Specyfikowanie własności programów współbieżnych. CTL i LTL (Laboratorium. Wątki i muteksy w Linuksie)
  12. Weryfikacja poprawności programów współbieżnych. (Ćwiczenia. Tworzenie programów korzystających z monitorów i muteksów)
  13. Inne notacje do opisu współbieżności. Sieci Petriego (Laboratorium. Wątki i ich synchronizacja w Javie)
  14. Inne notacje do opisu współbieżności. Sieci Petriego (Laboratorium. Narzędzia do weryfikacji programów współbieżnych SPIN )