Cap�tulo 1. Introducci�n

Bienvenido, a la Gu�a Informal de Bloqueo de N�cleo de Rusty. Este documento describe los sistemas de bloqueo en el n�cleo Linux como aproximaci�n al 2.4.

Parece que es aqu� donde tiene que estar SMP ; por lo tanto todo el mundo que est� en estos d�as hackeando el n�cleo necesita conocer los fundamentos de la concurrencia y el bloqueos para SMP.

1.1. El Problema con la Concurrencia

(S�ltate esto si sabes lo que es una Condici�n de Carrera (Race Condition).

En un programa normal, puedes incrementar un contador de la forma:


      contador_muy_importante++;
    

Esto es lo que esperar�as que pasase:

Esto es lo que quiz�s pase:

Este solapamiento, donde lo que sucede depende del tiempo relativo de m�ltiples tareas, es llamado condici�n de carrera. La parte de c�digo que contenie al punto de concurrencia se llamado regi�n cr�tica. Y especialmente desde que Linux se empez� a ejecutar en m�quinas SMP, se ha convertido en uno de los puntos m�s grandes del dise�o e implementaci�n del n�cleo.

La soluci�n es reconocer cuando ocurren estos accesos simult�neos, y usar bloqueos para asegurar que s�lo una instancia puede entrar en la regi�n cr�tica en cada instante. Hay muchas primitivas amigables en el n�cleo Linux que te ayudan a hacer esto. Y entonces hay primitivas no amigables, pero yo intento que no existan.