MIMINF: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)
Nie podano opisu zmian
Linia 3: Linia 3:


== 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, 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. W drugiej części zajęć uwaga skupi się na tematyce związanej z rozproszonymi systemami operacyjnymi, transakcjami oraz podstawowymi algorytmami rozproszonymi.


== Sylabus ==
== Sylabus ==
=== Autor ===
=== Autor ===
* Marcin Engel — Uniwersytet Warszawski
* Marcin Engel — Uniwersytet Warszawski
* janina Mincer-Daszkiewicz — Uniwersytet Warszawski


=== Wymagania wstępne ===
=== Wymagania wstępne ===
Linia 21: Linia 22:
** muteksy
** muteksy
** spotkania (Ada)
** spotkania (Ada)
** Linda
* Procesy i wątki w systemie Linux i najważniejsze metody ich synchronizacji
* Algorytmy rozproszone:
* Algorytmy rozproszone: wzajemnego wykluczania, elekcji i uzgadniania
** synchronizacja zegarów logicznych
** wzajemne wykluczanie
** elekcja
** uzgadnianie
* Transakcje
* Poprawność programów współbieżnych i jej weryfikacja
* Poprawność programów współbieżnych i jej weryfikacja
* Rozproszone systemy operacyjne
* Procesy i wątki w systemie Linux i najważniejsze metody ich synchronizacji
** topologie sieci
** rozproszone systemy plików
** organizacja pamięci 
* Notacje do opisu współbieżności:
* Notacje do opisu współbieżności:
** CSP
** CSP
Linia 39: Linia 32:
=== Literatura ===
=== Literatura ===
# M. Ben-Ari, ''Podstawy programowania współbieżnego i rozproszonego.'' Wydawnictwa Naukowo-Techniczne, Warszawa 1996.
# M. Ben-Ari, ''Podstawy programowania współbieżnego i rozproszonego.'' Wydawnictwa Naukowo-Techniczne, Warszawa 1996.
# A.S. Tanenbaum, M. van Steen, ''Systemy rozproszone. Zasady i paradygmaty.'' Wydawnictwa Naukowo-Techniczne, Warszawa 2006.
# G. Coulouris, J. Dollimore, T. Kindberg, ''Systemy rozproszone, podstawy i projektowanie.'' Wydawnictwa Naukowo-Techniczne, 1998.
# Z. Weiss, T. Gruźlewski, ''Programowanie współbieżne i rozproszone w przykładach i zadaniach.'' Wydawnictwa Naukowo-Techniczne, Warszawa 1993.
# 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. Rochkind, ''Programowanie w systemie Unix dla zaawansowanych.'' Wydawnictwa Naukowo-Techniczne, Warszawa 1997.

Wersja z 09:01, 4 gru 2006

Forma zajęć

Wykład (30 godzin) + ćwiczenia (30 godzin) + laboratorium (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. W drugiej części zajęć uwaga skupi się na tematyce związanej z rozproszonymi systemami operacyjnymi, transakcjami oraz podstawowymi algorytmami rozproszonymi.

Sylabus

Autor

  • Marcin Engel — Uniwersytet Warszawski
  • janina Mincer-Daszkiewicz — 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. A.S. Tanenbaum, M. van Steen, Systemy rozproszone. Zasady i paradygmaty. Wydawnictwa Naukowo-Techniczne, Warszawa 2006.
  3. G. Coulouris, J. Dollimore, T. Kindberg, Systemy rozproszone, podstawy i projektowanie. Wydawnictwa Naukowo-Techniczne, 1998.
  4. Z. Weiss, T. Gruźlewski, Programowanie współbieżne i rozproszone w przykładach i zadaniach. Wydawnictwa Naukowo-Techniczne, Warszawa 1993.
  5. M. Rochkind, Programowanie w systemie Unix dla zaawansowanych. Wydawnictwa Naukowo-Techniczne, Warszawa 1997.
  6. M.K. Johnson, E.W. Troan, Oprogramowanie użytkowe w systemie Linux. Wydawnictwa Naukowo-Techniczne, Warszawa2000.