July 7th, 2003

ronin

Dekker's Algorithm.

I can't believe I was never taught this in college!

Dekker's Algorithm and Peterson's simplification thereof.

From Wikipedia:


A concurrent programming algorithm for mutual exclusion that allows two processes to share a single-use resource without conflict, using only software means and shared memory for communication.

It avoids the strict alternation of a naive turn-taking algorithm, and was one of the first mutual exclusion algorithms to be invented. The first proveably correct software-only mutual exclusion algorithm.