2022-2023 - M1 Info
Summary
During these labs you will discover a few aspects of concurrent and
parallel programming. Despite the name of the lecture (parallelism), we
will actually spend most of the time on concurrency, and only a few
exercises on parallelism. There is another lecture on parallel
programming in M2, and the other M1 lecture called “concurrency” does
not treat the basics of concurrent programming that we will study
here.
Requirements
- notions of C programming, memory management, and Java
programming
- implementations of basic data structures (stacks, queues, lists,
etc) in such languages
- a laptop with a development environment for C and Java
Evaluation
The last lab will be graded.
Syllabus
- Lab 1 PThread library. Notion of
thread, data race, mutex, deadlock, deadlock-avoidance.
- Lab 2 (en) / TP 2 (fr) Java threads. Atomic
instructions, monitors, condition variable, semaphore. Example of loop
parallelisation.
- TP 3 (fr) (fin TP2 + cours)
Algorithme de Peterson. Linéarisabilité et cohérence séquentielle.
Listes concurrentes.
- TP 4
Resources
Annales