¿Qué bloqueo del kernel utiliza Linux multinúcleo?
Con la transformación de kernel no preventivo a kernel preventivo. Los mecanismos de bloqueo de Linux son cada vez más eficaces y sofisticados.
Los bloqueos del kernel de Linux son principalmente bloqueos de giro y semáforos.
Un bloqueo de giro solo puede ser mantenido por como máximo un subproceso ejecutable. Si un hilo en ejecución intenta solicitar un bloqueo de giro en disputa (ya retenido), el hilo permanecerá ocupado haciendo bucles, girando, esperando que el bloqueo vuelva a estar disponible. Si el bloqueo no es impugnado, el hilo de ejecución que lo solicitó puede obtenerlo inmediatamente y continuar. Los bloqueos de giro evitan que más de un hilo de ejecución ingrese a la sección crítica en cualquier momento.
El semáforo en Linux es un bloqueo de suspensión. Si una tarea intenta adquirir un semáforo que ya está retenido, el semáforo lo colocará en la cola de espera y luego lo pondrá en suspensión. En este punto, el procesador es libre de ejecutar otro código. Cuando el proceso que contiene el semáforo lo libera, se despertará una tarea en la cola de espera y se podrá obtener el semáforo.