5 votos

Operación atómica. ¿Cómo se garantiza la consistencia de la perspectiva de hardware?

Operación atómica. ¿Cómo se garantiza la consistencia de la perspectiva de hardware ? ¿Cómo es implementado en HW ?

Hasta donde yo sé, atómica instrucción se asegura de que cuando se ejecuta, no hay otros hilos pueden modificar los datos (como una sección crítica). Estoy en lo cierto ?

Pero, ¿cómo es esto implementado en HW ? ¿cómo funciona la garantía de hardware de esto ? (hardware generar tres micro instrucciones internamente ? desbloquear, modificar, y de bloqueo ?) ¿cuál es la diferencia entre simplemente usando mutex vs atómica de la instrucción ? sólo se diferencia en el número de instrucciones ?? (1 instrucción atómica, múltiples insts para el normal mutex..)

Es que el número de instrucciones de diferencia (1 vs muchos) garantizar la corrección ? (como el uso de exclusión mutua), y garantizar la consistencia ?

Se lo agradezco ! lo siento por este amplio tema de la pregunta. Gracias

4voto

Daniel Pittman Puntos 3150

Los detalles son complejos; en un solo procesador es bastante simple de implementar algún equivalente de "bloquear, modificar, desbloquear" en el microcódigo de nivel o de otras técnicas.

Una vez que tenga varios procesadores el objeto se hace complejo, especialmente en vista de la caché de efectos. Protocolos como MSI, y los derivados de MESI, MOSI, MOESI, la espalda esta en los modernos procesadores de Intel.

WikiPedia tiene un buen resumen en la Coherencia de la Caché así.

Como a un mutex vs atómico de instrucción: un mutex es, más o menos, un acuerdo que uno de los bits de memoria se utiliza para atómicamente permiten-y-sólo-una persona a un estado específico. Eso significa que se puede utilizar operaciones atómicas para proteger a los no-operaciones atómicas - un protocolo que es acordado por ambos lados, para fingir que pueden ser atómicas en una escala más grande de lo que realmente puede.

3voto

David Schwartz Puntos 42148

En la mayoría de las Cpu modernas, una operación atómica funciona mediante el bloqueo de los afectados dirección de memoria en la CPU caché. La CPU adquiere la dirección de memoria exclusivamente en su caché y, a continuación, no permitir que ninguna otra CPU para adquirir o compartir esa dirección hasta que finaliza la operación.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: