Principles of concurrent programming. Concurrent Process. Mutual Exclusion. Shared Memory. Sincronization primitives. Consensus. Concurrent data structures.
- Foundations of concurrent algorithms, Multicore Processors, Moore's Law and Amdahl's Law;
- Mutual Exclusion: time, critical regions, classic algorithms for mutual exclusion, concurrent objects, consistency, sequential and linear. The Java memory model;
- Foundations of shared memory: registers and photographies;