[007 Conocimientos básicos] ¿Por qué debe haber control de concurrencia y exclusión mutua en el controlador? ¿Como alcanzar? ¿Dar un ejemplo?

1. ¿Por qué necesitamos control de concurrencia y exclusión mutua?

La concurrencia significa que varias unidades de ejecución se ejecutan simultáneamente y en paralelo, mientras que el acceso de las unidades de ejecución simultáneas a los recursos compartidos (recursos de hardware y variables globales de software, variables estáticas, etc.) puede conducir fácilmente a condiciones de carrera.

La forma de resolver el problema de la raza es garantizar el acceso exclusivo a los recursos compartidos.

El llamado acceso mutuamente excluyente significa que cuando una unidad de ejecución accede a recursos compartidos, se prohíbe el acceso a otras unidades de ejecución.


En segundo lugar, ¿cómo lograr el acceso de exclusión mutua?

El área de código que accede a los recursos compartidos se denomina sección crítica . La sección crítica debe protegerse mediante algún mecanismo de exclusión mutua. El enmascaramiento de interrupciones, las operaciones atómicas, los bloqueos giratorios y los semáforos son enfoques mutuamente excluyentes que se pueden usar en los controladores de dispositivos de Linux. .
 


3. Ejemplos

Por ejemplo, su empresa tiene una impresora que todos en su empresa pueden usar. Ahora, si Xiao Li y Xiao Wang quieren usar esta impresora al mismo tiempo, ambos necesitan imprimir un documento.

Cuando dos personas imprimen al mismo tiempo, si la impresora no lo procesa, se puede imprimir una línea del documento de Xiao Li y luego se imprimirá el documento de Xiao Wang, por lo que el documento impreso se desordenará.

Si varias personas envían varios documentos a la impresora al mismo tiempo, la impresora debe asegurarse de que solo se pueda imprimir un documento a la vez y que los demás documentos solo se puedan imprimir después de que se complete la impresión.

Supongo que te gusta

Origin blog.csdn.net/qq_41709234/article/details/131205796
Recomendado
Clasificación