ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Introducción a los Sistemas Distribuidos


Enviado por   •  25 de Noviembre de 2022  •  Trabajos  •  670 Palabras (3 Páginas)  •  52 Visitas

Página 1 de 3

[pic 1]

17/11/2022

Ingeniería de Sistemas

Introducción a los Sistemas Distribuidos

Examen Parcial #2 (5 Puntos / 25%)

Instrucciones:

  1. El examen está diseñado para ser realizado usando cualquier material de apoyo, incluyendo la discusión entre estudiantes del curso.
  2. La entrega de la respuesta a este examen es individual. Se verificará el plagio, y la individualidad en la redacción de las respuestas.
  3. Cada respuesta debe ir acompañada de la explicación del procedimiento de solución. El procedimiento debe ser ordenado y legible, en las casillas disponibles para la respuesta. Si requiere anexar páginas para extender explicaciones, puede hacerlo de forma ordenada.
  4. Dado que es un examen a libro abierto, no habrá contacto con el profesor.

1.- (1 punto) Verdadero y Falso con explicación. Marque V ó F en la casilla correspondiente a cada afirmación, y explique brevísimamente la razón. (0.2 puntos c/u)

Afirmación

V/F

Explicación

1

Toda ejecución de transacciones que sea serializable (secuencialmente equivalente) es recuperable.

2

Toda ejecución de transacciones serializable no contiene operaciones conflictivas.

3

Toda ejecución con Bloqueo de dos fases (Two Phase Locking ó 2PL) es serializable.

4

El control de concurrencia optimista de transacciones suele funcionar mejor que el  2PL en casos donde la mayor parte del trabajo es de lecturas, y las operaciones son pocas.

5

En Two Phase Commit (2PC) para dos procesos P1 y P2, Si P2 hace Commit inmediatamente después de enviar un mensaje de preparado, sin esperar la orden de Commit el protocolo sigue siendo válido.

2.- (1 puntos) Transacciones. Un servidor tiene a su cargo  objetos , y provee para su uso tres operaciones:[pic 2][pic 3]

read(i)                         // devuelve el valor de [pic 4]

write(i, Valor)                 // asigna el valor Valor a [pic 5]

Commit()                        // Termina ejecución y avisa

Se desea ejecutar dos transacciones A y B, estructuradas de la siguiente forma:

Transacción A

Transacción B

x = read(j);

y = read(i);

write (j, 35);

write (i, 65);

commit();

x = read (k);

write (i, 45);

y = read (j);

write (I, 55);

commit();

Escriba en la siguiente tabla, dos ejecuciones concurrentes que sean serializables ó secuencialmente equivalentes, recordando que las ejecuciones son secuencialmente equivalentes si producen el mismo resultado final en las salidas ( y ) de cada transacción y en los objetos compartidos , que alguna ejecución secuencial de transacciones completas (A antes de B ó B antes de A). Justifique detalladamente cómo esta ejecución alcanza los valores finales secuencialmente equivalentes.[pic 6][pic 7][pic 8]

orden

Ejecución 1

Ejecución 2

A

B

A

B

1

2

3

4

5

6

7

8

9

Justificación:


3.- (2 puntos) Manejo de Concurrencia con Bloqueos. En la tabla se muestra una ejecución concurrente de dos transacciones T y Q para  objetos . Para manejar la concurrencia, se han usado bloqueos para proteger los objetos. Este uso de bloqueos a veces garantiza la equivalencia secuencial y a veces no. Para este caso responda las preguntas asociadas. [pic 9][pic 10]

Orden

T

Q

1

lock(i);

2

X = read(i)

3

Unlock(i)

4

Lock(i);

5

Write(i, 85);

6

Unlock(i)

7

Lock(j);

8

Write(j,65);

9

Unlock(j)

10

Commit()

11

Lock(j);

12

Write(j, 45);

13

Unlock(j);

14

Commit()

...

Descargar como (para miembros actualizados)  txt (5.5 Kb)   pdf (220.4 Kb)   docx (676 Kb)  
Leer 2 páginas más »
Disponible sólo en Clubensayos.com