Concurrent programming
General data
Course ID: | 1000-213bPW |
Erasmus code / ISCED: |
11.3
|
Course title: | Concurrent programming |
Name in Polish: | Programowanie współbieżne |
Organizational unit: | Faculty of Mathematics, Informatics, and Mechanics |
Course groups: |
Obligatory courses for 2nd grade Computer Science Obligatory courses for 2nd grade JSIM (3I+4M) Obligatory courses for 2nd grade JSIM (3M+4I) |
ECTS credit allocation (and other scores): |
9.00
|
Language: | Polish |
Type of course: | obligatory courses |
Prerequisites: | Computer architecture and operating systems 1000-212bAKSO |
Prerequisites (description): | (in Polish) Założenia dotyczą cykli od 23/24. |
Short description: |
The goal of the lecture is to present basic problems and techniques of programming in concurrent and distributed systems. The course is focused on two key issues: correctness and performance. In connection with fundamental problems of synchronisation such as mutual exclusion and readers-writers problem, the course presents solutions based upon shared variables and ones that require higher-level language support. |
Full description: |
(in Polish) 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 |
Bibliography: |
(in Polish) 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 |
Learning outcomes: |
(in Polish) 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) |
Classes in period "Winter semester 2023/24" (past)
Time span: | 2023-10-01 - 2024-01-28 |
Navigate to timetable
MO LAB
CW
LAB
CW
TU CW
CW
LAB
LAB
CW
LAB
CW
W WYK
CW
LAB
TH FR LAB
LAB
LAB
LAB
CW
|
Type of class: |
Classes, 30 hours
Lab, 30 hours
Lecture, 30 hours
|
|
Coordinators: | Marcin Engel | |
Group instructors: | 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 | |
Students list: | (inaccessible to you) | |
Examination: | Examination |
Classes in period "Winter semester 2024/25" (future)
Time span: | 2024-10-01 - 2025-01-26 |
Navigate to timetable
MO TU W TH FR |
Type of class: |
Classes, 30 hours
Lab, 30 hours
Lecture, 30 hours
|
|
Coordinators: | Marcin Engel | |
Group instructors: | 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 | |
Students list: | (inaccessible to you) | |
Examination: | Examination |
Copyright by University of Warsaw.