Concurrent and Distributed Programming and Systems 2021/2022
Pondelok 14:00-17:20 M.X
The evaluation of work during the semester (homeworks) forms 50% of the
final grade, at least 40% are required.
- Motivation. Separation of algorithmic and concurrent aspects in C.
Memory and time complexity of programs with I/O operations and dynamic
memory allocation. Polling and its consequences.
- Measuring time. Sources of time in PCs, real-time clock (RTC),
programmable interrupt timer (PIT). Access to time sources and alarms in
POSIX processes. Precision of time measurements.
A tutorial on PC timers
man clock_gettime(CLOCK_MONOTONIC_RAW, ...)
Linux Device Drivers (Chapter
- Threads. Thread state diagram. Shared variables, atomicity of memory
accesses, critical regions. Decker's and Peterson's algorithms, assumptions
on memory accesses. Deadlock, livelock. POSIX threads (pthread), mutexes,
Open Group pthread
A pthread tutorial
Another pthread tutorial
recommendation (when to use threads and when not, 1995)
- Threads in Java. Creation of a thread. Synchronised methods,
synchronised blocks. Built-in reentrant mutexes. Methods join(),
wait(), signal(). Problem with a direct use of synchronized methods.
Sun Certified Programmer for Java (Chapter 9)
Schildt: Java, The Complete Reference (Chapter 11)
- Multi-level memory. Examples of counter-intuitive behaviour of programs
and their explanation.
Means of memory synchronisation in C and Java. Volatile variables, implicit
H. Boehm: Threads cannot be
implemented as a library, ACM PLDI, 2005
Java memory model
"Double-checked locking" in Java
- OpenMP. Filozofia OpenMP. Fork-join paralelizmus. Architektura
GOMP (GNU OpenMP)
to OpenMP (University of Oregon)
Please send me your solutions via email.
For writing programs in C, use this template.
Make sure that 0 errors and 0 warnings are produced during the compilation
and linking (make).
Homework 1 (due to 4.10.), propose an architecture...
Homework 2 (due to 22.10.)
Homework 3 (due to 7.11.), attachment
Homework 4 (due to 7.11.), attachment
Homework 5 (due to 10.12.)