Programowanie współbieżne
Informacje ogólne
Kod przedmiotu: | 1000-213bPW |
Kod Erasmus / ISCED: |
11.3
|
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
|
Język prowadzenia: | polski |
Rodzaj przedmiotu: | obowiązkowe |
Założenia (lista przedmiotów): | Architektura komputerów i systemy operacyjne 1000-212bAKSO |
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 |
Przejdź do planu
PN LAB
CW
CW
LAB
WT CW
CW
LAB
LAB
CW
LAB
CW
ŚR WYK
CW
LAB
CZ PT LAB
LAB
LAB
LAB
CW
|
Typ zajęć: |
Ćwiczenia, 30 godzin
Laboratorium, 30 godzin
Wykład, 30 godzin
|
|
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" (w trakcie)
Okres: | 2024-10-01 - 2025-01-26 |
Przejdź do planu
PN LAB
CW
WT CW
CW
LAB
LAB
CW
LAB
ŚR WYK
CW
LAB
CW
LAB
CZ PT LAB
LAB
CW
LAB
LAB
CW
|
Typ zajęć: |
Ćwiczenia, 30 godzin
Laboratorium, 30 godzin
Wykład, 30 godzin
|
|
Koordynatorzy: | Marcin Engel, Marcin Wrochna | |
Prowadzący grup: | Marcin Engel, Agata Janowska, Mirosława Miłkowska, Jakub Pawlewicz, Marcin Przybyłko, Wojciech Przytuła, Krzysztof Rządca, Marcin Wrochna, Artur Zaroda, Wiktor Zuba | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: | Egzamin |
Właścicielem praw autorskich jest Uniwersytet Warszawski.