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

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Mengel (dyskusja | edycje)
Mengel (dyskusja | edycje)
Linia 46: Linia 46:
# [[Programowanie współbieżne i rozproszone/PWR Wykład 9|Semafory 2.]] ([[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 9|Laboratorium. IPC. Semafory]])
# [[Programowanie współbieżne i rozproszone/PWR Wykład 9|Semafory 2.]] ([[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 9|Laboratorium. IPC. Semafory]])
# [[Programowanie współbieżne i rozproszone/PWR Wykład 10|Monitory]] ([[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 10|Ćwiczenia. Tworzenie programów korzystających z monitorów.]])
# [[Programowanie współbieżne i rozproszone/PWR Wykład 10|Monitory]] ([[Programowanie współbieżne i rozproszone/PWR Ćwiczenia 10|Ćwiczenia. Tworzenie programów korzystających z monitorów.]])
# [[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]])
# [[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]])-->
<!--
<!--
# [[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]])
# [[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]])

Wersja z 13:31, 3 paź 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 — 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

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

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 (Ćwiczenia. Tworzenie programów w modelu asynchronicznym)
  4. Komunikacja synchroniczna na przykładzie Ady (Laboratorium. Łącza nienazwane)
  5. Communicating Sequential Processes (Ćwiczenia. Tworzenie programów w modelu synchronicznym)
  6. Mechanizmy scentralizowane. Semafory (Ćwiczenia. Tworzenie programów korzystających z semaforów.)
  7. Semafory 2. (Laboratorium. IPC. Semafory)
  8. Monitory (Ćwiczenia. Tworzenie programów korzystających z monitorów.)
  9. Specyfikowanie własności programów współbieżnych. CTL i LTL