Consistencia Flashcards

1
Q

¿Qué es un objeto?

A

Es una región de almacenamiento en la memoria. Es una secuencia de uno o varios bytes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Qué es una posición de memoria?

A

Es un objeto de un tipo escalar (tipos simples de C++) o una secuencia de campos de bits adyacentes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Campos de bits.

A

Indica cuántos bits se usan en cada campo. Cada campo es una posición de memoria independiente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Reglas de concurrencia.

A
  • 2 hilos pueden acceder a posiciones de memoria distintas de forma simultánea.
  • 2 hilos pueden acceder a la misma posición de memoria de forma simultánea si ambos accesos son de lectura.
  • Si los accesos son simultáneos y al menos uno de ellos es de escritura, existe condición de carrera potencial.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Qué son las operaciones atómicas?

A

Son operaciones que no tienen estados intermedios (operaciones indivisibles). Solo tienen posibilidad de estado inicial y final, por lo que pueden servir para prevenir las carreras de datos sin usar mutex. Permiten definir un orden de ejecución.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Orden de modificación.

A

Secuencia de escrituras sobre un objeto.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Uso del tipo atómico.

A
Tipo genérico atomic: para enteros, punteros y boool (no está definido para float y double).
Tipo atomic_flag (asegura que la implementación es libre de cerrojos).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Uso de atomic_flag.

A
  • Dos estados posibles: activado o desactivado.
  • iniciación:
    std: :atomic_flag f1 = ATOMIC_FLAG_INIT;
  • desactivar: f1.clear();
  • activar y comprobar valor previo: f1.test_and_set();
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Consistencia secuencial.

A
  • memory_order_seq_cst
  • El programa es consistente con una vista secuencial.
  • El comportamiento es como si todas las operaciones se realizasen en algún orden particular en un único hilo.
  • No puede haber reordenaciones.
  • Costoso en rendimiento.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Órdenes secuencialmente no consistentes.

A
  • No hay orden global de eventos (cada hilo puede tener una vista distinta).
  • Todos los hilos deben de estar de acuerdo en el orden de modificación de las variables.
  • Ordenamiento relajado
  • Ordenamiento adquisición liberación.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly