University of Warsaw - Central Authentication System
Strona główna

Concurrent programming

General data

Course ID: 1000-213bPW
Erasmus code / 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 The ISCED (International Standard Classification of Education) code has been designed by UNESCO.
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 Basic information on ECTS credits allocation principles:
  • the annual hourly workload of the student’s work required to achieve the expected learning outcomes for a given stage is 1500-1800h, corresponding to 60 ECTS;
  • the student’s weekly hourly workload is 45 h;
  • 1 ECTS point corresponds to 25-30 hours of student work needed to achieve the assumed learning outcomes;
  • weekly student workload necessary to achieve the assumed learning outcomes allows to obtain 1.5 ECTS;
  • work required to pass the course, which has been assigned 3 ECTS, constitutes 10% of the semester student load.

view allocation of credits
Language: Polish
Type of course:

obligatory courses

Prerequisites:

Computer architecture and operating systems 1000-212bAKSO
Introductory programming 1000-211bWPI

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
Selected timetable range:
Navigate to timetable
Type of class:
Classes, 30 hours more information
Lab, 30 hours more information
Lecture, 30 hours more information
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
Selected timetable range:
Navigate to timetable
Type of class:
Classes, 30 hours more information
Lab, 30 hours more information
Lecture, 30 hours more information
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
Course descriptions are protected by copyright.
Copyright by University of Warsaw.
Krakowskie Przedmieście 26/28
00-927 Warszawa
tel: +48 22 55 20 000 https://uw.edu.pl/
contact accessibility statement USOSweb 7.0.3.0 (2024-03-22)