Uniwersytet Warszawski, Wydział Nauk Ekonomicznych - Centralny System Uwierzytelniania
Strona główna

Programowanie współbieżne

Informacje ogólne

Kod przedmiotu: 1000-213bPW
Kod Erasmus / ISCED: 11.3 Kod klasyfikacyjny przedmiotu składa się z trzech do pięciu cyfr, przy czym trzy pierwsze oznaczają klasyfikację dziedziny wg. Listy kodów dziedzin obowiązującej w programie Socrates/Erasmus, czwarta (dotąd na ogół 0) – ewentualne uszczegółowienie informacji o dyscyplinie, piąta – stopień zaawansowania przedmiotu ustalony na podstawie roku studiów, dla którego przedmiot jest przeznaczony. / (0612) Database and network design and administration Kod ISCED - Międzynarodowa Standardowa Klasyfikacja Kształcenia (International Standard Classification of Education) została opracowana przez UNESCO.
Nazwa przedmiotu: Programowanie współbieżne
Jednostka: Wydział Matematyki, Informatyki i Mechaniki
Grupy: Przedmioty obowiązkowe dla II roku informatyki
Przedmioty obowiązkowe dla II roku JSIM - wariant 3I+4M
Przedmioty obowiązkowe dla II roku JSIM - wariant 3M+4I
Punkty ECTS i inne: 9.00 Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.

zobacz reguły punktacji
Język prowadzenia: polski
Rodzaj przedmiotu:

obowiązkowe

Założenia (lista przedmiotów):

Architektura komputerów i systemy operacyjne 1000-212bAKSO
Wstęp do programowania 1000-211bWPI

Założenia (opisowo):

Założenia dotyczą cykli od 23/24.

Skrócony opis:

Podstawowe problemy oraz techniki programowania systemów współbieżnych i rozproszonych. Klasyczne problemy współbieżności. Mechanizmy synchronizacji w modelu scentralizowanym: semafory i monitory. Metody synchronizacji w modelu rozproszonym, komunikacja synchroniczna i asynchroniczna. Weryfikacja poprawności programów współbieżnych. Wybrane algorytmy rozproszone. Miary złożoności programów współbieżnych.

Pełny opis:

Wykład:

- Podstawowe pojęcia współbieżności: proces, przeplot, wykonanie współbieżne

- Poprawność programów współbieżnych

- Modele współbieżności

- Klasyczne problemy współbieżności: wzajemne wykluczanie, czytelnicy i pisarze, pięciu filozofów, producenci i konsumenci

- Wybrane algorytmy wzajemnego wykluczania niekorzystające ze wsparcia sprzętu ani systemu operacyjnego

- Definicja i różne semantyki semaforów: semafor Dijkstry, semafory słabe, silne, silnie uczciwe

- Definicja i różne semantyki monitorów: monitor Hoare, realizacja za pomocą biblioteki pthread

- Metody weryfikacji poprawności programów współbieżnych: LTL, model checking, metody dedukcyjne

- Metody synchronizacji w modelu rozproszonym: komunikacja synchroniczna i asynchroniczna (przestrzeń krotek).

- Spójność i modele spójności: llinearizability (or atomicity), sequential consistency, causal consistency, eventual consistency

- Wydajność w modelu współbieżnym: praca, rozpiętość, zrównoleglenie, przyspieszenie

- Wybrane algorytmy rozproszone (wzajemne wykluczanie w systemach rozproszonych, synchronizacja zegarów logicznych, uzgadnianie)

Laboratorium:

- Procesy i wątki oraz metody ich synchronizacji w systemach zgodnych ze standardem POSIX

- Współbieżność w Javie (java.util.concurrent, implementacja monitora)

Ćwiczenia:

- Algorytmy wzajemnego wykluczania bez wsparcia sprzętu i systemu operacyjnego

- Semafory

- Monitory

- Synchroniczna wymiana komunikatów

- Asynchroniczna wymiana komunikatów

- Miary wydajności programów współbieżnych

Literatura:

1. M. Ben - Ari, Podstawy programowania współbieżnego i rozproszonego

2. Z. Gruźlewski, Z. Weiss, Programowanie współbieżne i rozproszone w przykładach i zadaniach

3.M. Herlihy, N. Shavit, Sztuka programowania wieloprocesorowego

4. H. Casanova, A. Legrand, Y. Robert, Parallel Algorithms

5. T. H.Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Introduction to Alghorithms, 3rd edition

6.W. R. Stevens, Programowanie w środowisku systemu UNIX

7.B. Eckel, Thinking in Java

Efekty uczenia się:

Wiedza - absolwent zna i rozumie:

- teoretyczne podstawy z zakresu programowania, algorytmów i złożoności (K_W02),

- zasady działania systemów operacyjnych ze szczególnym uwzględnieniem procesów, współbieżności, szeregowania zadań i zarządzania pamięcią (K_W07)

Umiejętności - absolwent potrafi:

- pozyskiwać informacje z literatury, baz wiedzy, Internetu oraz innych wiarygodnych źródeł, integrować je, dokonywać ich interpretacji oraz wyciągać wnioski i formułować opinie (K_U02),

- samodzielnie planować i realizować własne uczenie się przez całe życie (K_U09),

- opisywać problemy związane z wykonywaniem programów współbieżnych (K_U10)

Kompetencje społeczne - absolwent jest gotów do:

- krytycznej oceny posiadanej wiedzy i odbieranych treści (K_K01),

- pracy z poszanowaniem uczciwości intelektualnej w działaniach własnych i innych osób; przestrzegania zasad etyki zawodowej i wymagania tego od innych oraz dbałości o dorobek i tradycje zawodu informatyka (K_K02),

- uznawania znaczenia wiedzy w rozwiązywaniu problemów poznawczych i praktycznych oraz wyszukiwania informacji w literaturze oraz zasięgania opinii ekspertów (K_K03)

Zajęcia w cyklu "Semestr zimowy 2023/24" (zakończony)

Okres: 2023-10-01 - 2024-01-28
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Ćwiczenia, 30 godzin więcej informacji
Laboratorium, 30 godzin więcej informacji
Wykład, 30 godzin więcej informacji
Koordynatorzy: Marcin Engel
Prowadzący grup: Marcin Engel, Konrad Iwanicki, Agata Janowska, Bartłomiej Kozaryna, Konrad Majewski, Mirosława Miłkowska, Wojciech Przytuła, Krzysztof Rogowski, Krzysztof Rządca, Marcin Wrochna, Artur Zaroda
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin

Zajęcia w cyklu "Semestr zimowy 2024/25" (jeszcze nie rozpoczęty)

Okres: 2024-10-01 - 2025-01-26
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Ćwiczenia, 30 godzin więcej informacji
Laboratorium, 30 godzin więcej informacji
Wykład, 30 godzin więcej informacji
Koordynatorzy: Marcin Engel
Prowadzący grup: Marcin Engel, Agata Janowska, Mirosława Miłkowska, Jakub Pawlewicz, Marcin Przybyłko, Wojciech Przytuła, Krzysztof Rządca, Michał Skrzypczak, Marcin Wrochna, Artur Zaroda, Wiktor Zuba
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Warszawski, Wydział Nauk Ekonomicznych.
ul. Długa 44/50
00-241 Warszawa
tel: +48 22 55 49 126 https://www.wne.uw.edu.pl/
kontakt deklaracja dostępności USOSweb 7.0.3.0 (2024-03-22)