El segundo tipo es el sem�foro (include/asm/semaphore.h): puede tener m�s de un recept�culo en alg�n momento (el n�mero se decide en tiempo de inicializaci�n), aunque es usado m�s com�nmente como un bloqueo de recept�culo-simple (un mutex). Si no puedes obtener el sem�foro, tus tareas se pondr�n en una cola, y ser�n despertadas cuando el sem�foro sea liberado. Esto significa que la CPU har� algo mientras que est�s esperando, pero hay muchos casos en los que simplemente no puedes dormir (ver Secci�n 4.8), y por lo tanto tienes que usar un spinlock en vez del sem�foro.
Ning�n tipo de bloqueo es recursivo: ver Secci�n 4.2.
Los sem�foros todav�a existen, porque son requeridos para la sincronizaci�n entre contextos de usuario, tal como veremos a continuaci�n.