Semáforos, mutex, bloqueo de giro, la operación atómica

Hay varias cierre del núcleo del núcleo de Linux, el papel del núcleo de bloqueo es:

procesadores de múltiples núcleos, habrá una pluralidad de procesos en el modo de núcleo, mientras que en modo de núcleo, el proceso de núcleo es el acceso a todos los datos, y la protección de datos por lo tanto, compartida, es decir, el procesamiento exclusivo;

mecanismos de bloqueo del núcleo de Linux semáforos, mutex, hay atómica bloqueo de bucle.

Un semáforo (struct semáforo):

Un mecanismo de comunicación se utiliza para resolver el problema de la exclusión mutua y sincronización entre procesos / hilos, que se utiliza para asegurar que dos o más códigos de clave no son llamadas simultáneas.

Semáforo (Saphore) y un valor de puntero de una composición, un puntero al semáforo para esperar a. valor del semáforo indica el uso de los recursos correspondientes. Semáforo S> = 0 cuando, S denota el número de recursos disponibles. Operación significa realiza una solicitud de asignación de P de un recurso, por lo que el valor de S menos 1; cuando S <0, representa no tiene los recursos disponibles, el valor absoluto de S indica el número actual de los procesos de espera para el recurso. Solicitante debe esperar a que otros procesos de liberación de esos recursos para seguir operando. Realiza una V medios de accionamiento que la liberación de un recurso, y por lo tanto el valor de S más 1, si S <0, expresado algunas proceso está esperando para el recurso, por lo que despertar un proceso que esperar para que el estado hacer que se ejecute siempre.

Semáforo se selecciona el modo de reposo para el acceso a una parada de trabajo compartido.

Ese conflicto través de la operación PV sincronización de semáforos para resolver el proceso / hilo en la utilización de recursos críticos;

En segundo lugar, el mutex: (mutex_lock)

sincronización objeto mutex y exclusión mutua es también un mecanismo alternativo para inter-hilo (no en el proceso).

Más mutex está bloqueado énfasis en el papel de los recursos compartidos, cuando un hilo retoma el recurso compartido actual, el uso mutex para bloquear en vivo, otros hilos pueden tener acceso, a continuación, debe esperar hasta desbloqueo, otros hilos para aprovechar compartida recursos dentro del contenido;

Mutex se selecciona el modo de suspensión para detener el acceso a un trabajo compartido.

Eso mutex bloqueado mediante el intercambio de recursos y el uso exclusivo de los recursos para resolver el problema del conflicto;

En tercer lugar, el spin-lock (spin_lock):

Con el fin de lograr el recurso compartido está protegido por un mecanismo de bloqueo que se propone. De hecho, el bloqueo de bucle mutex vez más similares, que están hechos para hacer frente a la utilización de un recursos exclusivos. Si mutex o giro de bloqueo, en cualquier momento, sólo puede tener un soporte, se dijo, sólo puede tener como máximo una unidad de ejecución en cualquier momento para adquirir un bloqueo. Pero los dos mecanismos de planificación ligeramente diferentes. Para el mutex, si el recurso ya está ocupado, la solicitud de recursos sólo puede ir a dormir. Pero el bloqueo de bucle sin causar la persona que llama a dormir, si el bloqueo de bucle se ha celebrado otra unidad de ejecución, la persona que llama ha sido ver si el titular de bloqueo ciclo de centrifugado ha lanzado la cerradura donde la palabra "giro" se llama así.

4.1, Linux conceptos atómicos:

Las denominadas operaciones atómicas, están "no interrumpidos o una serie de operaciones."

operación atómica que no puede ser interrumpido por un mayor nivel de prioridad a la operación arrancada. Desde hace esta pregunta, dije un poco más profundo. Debido a que el sistema operativo mayor parte del tiempo en el estado de interrupción abierto, por lo tanto, en la implementación de un programa puede ser un mayores interrupciones subproceso de prioridad. Y algunas operaciones no pueden ser interrumpidos, de lo contrario las consecuencias no serán restauradas en este momento, estas operaciones requieren operaciones atómicas. Eso no puede ser operado interrumpido.

átomos a nivel de hardware: En un sistema de procesador único (monoprocesador), la instrucción se puede completar en una sola operación pueden ser considerados "operaciones atómicas", porque la interrupción instrucción sólo se produce en el borde. En una estructura de multi-procesador (Symmetric Multi-Processor) es diferente, porque el sistema tiene varios procesadores funcionan de forma independiente, incluso si la instrucción se puede completar en una sola operación también es probable que sea perturbado. En la plataforma X86 prima, la CPU proporciona un medio de instrucción durante la ejecución del bus bloqueado. Tiene uno de los cables conectados a norte pin puente #HLOCK, si el programa en lenguaje ensamblador en un prefijo de instrucción frente a "LOCK", un código de máquina a través de la compilación más tarde hace que la CPU en el momento de la ejecución de esta instrucción en el pin CPU #HLOCK potencial abajo, poniendo en libertad al final de esta instrucción, con lo que se bloquee el bus, la otra CPU de modo que no el mismo bus está temporalmente acceso a la memoria a través del bus, para asegurar que la instrucción atómica en un entorno multiprocesador . Otras plataformas de CPU, una realización diferente, para lograr algunas operaciones atómicas (SPARC) interrupciones desactivar por algunos para poner en práctica las operaciones atómicas (IA64) por la serie de instrucciones cmpxchg. Este documento analiza la realización de operaciones atómicas bajo plataformas X86.

Los anteriores puntos de resumen:

Mutex bloqueos y semáforos diferencia:

1, la cantidad de señal se controla generalmente de manera sincronizada a un recurso compartido, el recurso compartido mutex ser controlado por medio de mutuamente excluyentes;

2, semáforos pueden controlar el proceso de compartir recursos, y no exclusión mutua;

3, el semáforo es número entero no negativo, y el valor sólo puede mutex es 0 o 1;

4, bloquear y desbloquear la corresponden mutex obligada fueron utilizados por el mismo hilo, el semáforo puede ser liberado de un hilo, otro hilo obtenido; y semáforo di distinción mutex es un valor que debe ser liberado mutex mismo proceso

bloqueo de bucle y la diferencia mutex:

1, debido a que la persona que llama no causa un sueño bloqueo de bucle, de modo más eficiente

2, más adecuado para la celebración de un tiempo de bloqueo de bloqueo de giro es relativamente corto en el bloqueo del usuario.

3, el bloqueo de bucle conducir fácilmente a callejones sin salida, por lo que es necesario para el uso seguro ella;

referencia

https://www.cnblogs.com/linhaostudy/p/6670693.html

Publicados 137 artículos originales · ganado elogios 44 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/qq_38769551/article/details/105151826
Recomendado
Clasificación