Chen seems to be using it confidently, and it's clearly there in the names of the API entry points. Is this just something Microsoft made up? It's the first I've noticed it.
Chen seems to be using it confidently, and it's clearly there in the names of the API entry points. Is this just something Microsoft made up? It's the first I've noticed it.
I disagree on that front. Mutex kernel objects have existed just as long as critical sections. Critical section objects are cheaper because they don’t switch into the kernel when not contended.
A pthread mutex on Linux won't enter the kernel when uncontended (thanks to futex -- this wasn't true ~20 years ago).
I would say the terms are pretty synonymous, and implementation choices differ; sometimes implementation choices are implied by the name but I don't think everybody agrees on how those choices map to names.
> On the CDC CYBER, an interlock register is available ... Operation of this interlock register is similar to TEST AND SET
Concurrency in Operating Systems, October 1976 https://www.computer.org/csdl/magazine/co/1976/10/01647182/1...
-- https://en.wiktionary.org/wiki/interlock#Noun
Which seems weirdly fitting considering the Win98 behavior on 80386 CPUs ;)
Further googling leads me to believe that MS indeed made the term up for referring to atomic operations back then, but they kept it ever since.