Introducción a los Sistemas Distribuidos
Enviado por Sebasgmv • 25 de Noviembre de 2022 • Trabajo • 670 Palabras (3 Páginas) • 75 Visitas
[pic 1] | 17/11/2022 |
Ingeniería de Sistemas
Introducción a los Sistemas Distribuidos
Examen Parcial #2 (5 Puntos / 25%)
Instrucciones:
|
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() |
...