#include kernel/semaphore.c down(struct *semaphore); up(struct *semaphore); sema_init(sem, val); init_MUTEX(sem); init_MUTEX_LOCKED(sem); DECLARE_MUTEX(varname); down_interruptible(sem); #include kernel/mutex.c Documentation/mutex-design.txt Implementação nova. Quando? 9 Jan 2006, f3f54ffa703c6298240ffd69616451d645bae4d5 Rationale em Documentation/mutex-design.txt Enfim, pq usar? Pq "Mingo" says so! struct mutex mutex_init(struct mutex *); DEFINE_MUTEX(varname); mutex_lock(mutex); mutex_unlock(mutex); -- Ambos dormem. Portanto, cuidado com o contexo onde usá-los.