2.3. Bloqueando S�lo en el Contexto de Usuario

Si tienes una estructura de datos que siempre es accedida desde el contexto de usuario, entonces puedes usar un sem�foro simple (linux/asm/semaphore.h) para protegerla. Este es el caso m�s trivial; inicializas el sem�foro al n�mero de recursos disponibles (usualmente 1), y llamas a down_interruptible() para coger el sem�foro, y up() para liberarlo. Hay tambi�n una funci�n down(), que deber�a de ser evitada, porque no regresar� si se recibe una se�al.

Ejemplo: linux/net/core/netfilter.c permite el registro de unas nuevas llamadas setsockopt() y getsockopt(). El registro y desregistro s�lo son realizadas en la carga y descarga de un m�dulo (y tiempo de arranque, donde no hay concurrencia), y la lista de registros s�lo es consultada por una llamada al sistema desconocida setsockopt() o getsockopt(). La nf_sockopt_mutex es perfecta para proteger esto, especialmente desde que las llamadas setsockopt y getsockopt quiz�s se vayan a dormir. sleep.