- How concurrency works: A visual guide
- This article is an interesting take on how concurrency can be visualised and how can we validate the concurrency programs.
- Uses Model checkers like SPIN software to give a glimpse of how different states in concurrency can be modeled for a program and viewed.
- To increase confidence in a program’s correctness, we can define certain invariants or correctness properties that must hold across a program’s state space.
- Two key types of properties that can be used to validate corectness:
- Safety properties: Ensuring that nothing bad happens.
- Liveness properties: Ensuring that something good eventually happens.
- When the Simplest Concurrent Program Goes Against All Intuition
- Interesting to see that how interleaving for a loop with more than 10 cycles each and incrementing a number can lead end result to be 2.
- Shows how concurrent programs are affected highly by extreme interleaving that produces this lowest value of for a incrementing number.
- Hardware-Aware Coding: CPU Architecture Concepts Every Developer Should Know
- With a restaurant analogy talks about 3 CPU architecture concepts
- Instruction pipelining
- Memory caching
- Speculative execution