Corrección, sección crítica Flashcards

1
Q

¿Que componentes tiene la Corrección?

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

¿Cual es la definición de Safety?

A

Asegura que nunca ocurren cosas malas durante la ejecución del sistema. Es una garantía de que el sistema no violará invariantes críticos. Un sistema con esta propiedad evita estados incorrectos o peligrosos.

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

Propiedades de Safety

A
  1. Exclusión Mutua: dos procesos no deben intercalar ciertas (sub)secuencias de instrucciones. Ejemplo: incremento de variable global.
  2. Ausencia de deadlock: un sistema que aún no finalizó debe poder continuar realizar su tarea, es decir, avanzar productivamente.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Qué es la exclusión mutua?

A

Es la garantía de que solo un hilo o proceso puede acceder a una sección crítica de código o a un recurso compartido en un momento dado.

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

¿Cual es la definición de Liveness?

A
  • Asegura que algo bueno eventualmente ocurra.
  • Garantiza que todas las tareas en ejecución puedan progresar y no se queden bloqueadas indefinidamente.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Propiedades de Liveness

A
  1. Ausencia de starvation: todo proceso que esté listo para utilizar un recurso debe recibir dicho recurso eventualmente.
  2. Fairness: Se refiere a la idea de tratar a todos los procesos de manera justa y equitativa en términos de acceso a recursos o ejecución. Garantiza que ningún proceso sea permanentemente excluído o postergado indefinidamente.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Qué es starvation?

A

Ninguna tarea se queda esperando indefinidamente sin hacer progreso porque otras ocupan los recursos.

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

¿Qué es un escenario Fair?

A

Cada tarea recibe su turno, de manera que todas las tareas puedan avanzar en algún momento.
Sin fairness: Algunas tareas pueden ser ignoradas indefinidamente, incluso si técnicamente el sistema sigue haciendo progreso (lo que se conoce como starvation o inanición).

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

¿Que es un Lock?

A

Es un método para bloquear el proceso hasta poder obtener el lock

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

¿Qué es unlock?

A

Es un método que libera el lock que tomó previamente.

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

¿Qué tipos de locks existen?

A
  • Locks de lectura o shared locks.
  • Locks de escritura o exclusive locks.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Qué es un Lock de lectura o shared lock?

A

Permiten que varios hilos lean el mismo recurso al mismo tiempo, porque la lectura no altera el estado del recurso. Sin embargo, mientras haya hilos leyendo, ningún hilo puede escribir en ese recurso (para evitar inconsistencias)Más de un proceso a la vez puede tener el lock.

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

¿Qué es un Lock de escritura o exclusive lock?

A

Permiten que solo un hilo acceda al recurso mientras lo está escribiendo, garantizando que no ocurran inconsistencias. Ningún otro hilo puede leer o escribir durante una escritura activa.

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

¿Cómo debe poder dividirse la sección crítica?

A

El código puede dividirse en parte crítica y parte no crítica.

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

¿Qué debe suceder con la sección crítica?

A

Debe progresar (finalizar eventualmente)

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

¿Qué debe suceder con la sección no crítica?

A

No requiere progreso (el proceso puede terminar o entrar en un loop infinito)

17
Q

¿Cual es la condición para poder tomar un shared (read) lock?

A

el proceso debe esperar hasta que sean liberados todos los exclusive locks

18
Q

¿Cual es la condición para poder tomar un exclusive (write) lock?

A

el proceso debe esperar hasta que sean liberados todos los locks (de ambos tipos)

19
Q

¿Qué es el trait marker Sync en Rust?

A

Indica que un tipo es seguro para ser accedido desde múltiples hilos simultáneamente a través de referencias inmutables. En otras palabras, si un tipo implementa Sync, es seguro que varias referencias a ese tipo (&T) existan en diferentes hilos al mismo tiempo.

20
Q

¿Qué es el trait marker Send en Rust?

A

Es una propiedad que indica que un tipo puede ser transferido con seguridad entre hilos (threads). Cuando un tipo implementa el trait Send, su ownership puede moverse de un hilo a otro sin violar las garantías de seguridad en tiempo de compilación.

21
Q

¿Que hace Arc?

A

Comparte el acceso al elemento