Diferença entre Mutex, Semáforo e Spin Locks

Estou fazendo experimentos com o IPC, especialmente com o Mutex, o Semáforo e o Spin Lock. O que aprendi é que o Mutex é usado para o mecanismo de bloqueio assíncrono (com o modo de suspensão (conforme teorias que li na NET)), o semáforo é o mecanismo de bloqueio síncrono (com sinalização e o modo de suspensão) e os bloqueios de rotação são um mecanismo síncrono, mas não adormecido.

Alguém pode me ajudar a esclarecer essas coisas profundamente? E outra dúvida é sobre o Mutex, quando escrevi um programa com thread e mutex, enquanto um thread está executando outro thread não está no estado de suspensão, mas tenta continuamente adquirir o bloqueio. Então, o Mutex está dormindo ou não dormindo ???

questionAnswers(2)

yourAnswerToTheQuestion