|  | Concurrent and Distributed Programming and Systems 2021/2022Pondelok 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.Lecture notes
 A tutorial on PC timers
 Linux 
man clock_gettime(CLOCK_MONOTONIC_RAW, ...)
 Linux Device Drivers (Chapter
7)
 
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, 
condition variables.Lecture notes
 Open Group pthread
reference
 A pthread tutorial
 Another pthread tutorial
 Historical
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.SCJP 
Sun Certified Programmer for Java (Chapter 9)
 H.
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
memory synchronisation.H. Boehm: Threads cannot be
implemented as a library, ACM PLDI, 2005
 Java memory model
(JSR133)
 "Double-checked locking" in Java
 
OpenMP. Fork-join parallelism. Architecture of OpenMP:Specifikacia OpenMP
 GOMP (GNU OpenMP)
 Introduction
to OpenMP (University of Oregon)
 HomeworksPlease 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.) Updated by
 Tomas Plachetka,
Nov/29/2021
 |