• Aucun résultat trouvé

Séance d'Exercices IBD N°3 Exercice1 :

N/A
N/A
Protected

Academic year: 2022

Partager "Séance d'Exercices IBD N°3 Exercice1 :"

Copied!
3
0
0

Texte intégral

(1)

Exercices du 6 avril 2005

Exercices IBD 1 / 3

Séance d'Exercices IBD N°3

Exercice1 : concurrence

Soit T1 et T2 les transactions suivantes:

Transaction T1

Read (a) a:=a+100;

write(a);

read(b) b:=b+100;

write(b);

Transaction T2

Read (a) a:=a*2;

write(a);

read(b) b:=b*2;

write(b);

a) si la valeur initiale de a est 25 et celle de b est 25, quelles sont leurs valeurs de a et b si on

exécute les transactions à la suite, T1 puis T2.

a=b=250

b) Quelles sont les valeurs si on exécute T2 puis T1?

a=b=150

c) maintenant les deux transactions sont exécutées de façon concurrente de la façon suivante:

Transaction T1

Read (a) a:=a+100;

write(a);

read(b) b:=b+100;

write(b);

Transaction T2

Read (a) a:=a*2;

write(a);

read(b) b:=b*2;

write(b);

Si on considère les mêmes valeurs initiales qu'en a) quelles sont les valeurs de a et b à l'issue de l'éxécution des transactions?

a=b=250

Cette exécution entremêlée est elle correcte, pourquoi?

L'exécution concurrente de T1 et T2 donne le même résultat que T1 puis T2. Correcte !

d) Si les deux transactions sont exécutées de façon concurrente de la façon suivante:

Transaction T1

Read (a) a:=a+100;

write(a);

read(b) b:=b+100;

write(b);

Transaction T2

Read (a) a:=a*2;

write(a);

read(b) b:=b*2;

write(b);

(2)

Exercices du 6 avril 2005

Exercices IBD 2 / 3

Si on considère les mêmes valeurs initiales qu'en a) quelles sont les valeurs de a et b à l'issue de l'exécution des transactions?

a=250 et b=150

Cette exécution entremêlée est elle correcte, pourquoi?

L'exécution concurrente de T1 et T2 ne donne pas le même résultat que T1 puis T2 ou T2 puis T1. Incorrecte ! Exercice2 : concurrence

Notre système utilise le protocole de verrous exclusifs avec libération explicite. Supposons l'exécution suivante des transactions T1 et T2:

Transaction T1 Transaction T2

t1 XRead (a)

t2 a:=a+100; XRead (a) t3 mise en attente t4 write(a);

t5

t6 XRelease (a) a:=a*2;

t7 write(a);

t8 XRelease (a) t9

t10 Xread(b)

t11 b:=b+100; Xread(b) t12 mise en attente t13 write(b);

t14

t15 XRelease (b) b:=b*2;

t16 write(b);

t17 XRelease (b)

a) Cette exécution se passe t'elle correctement? Quels sont les problèmes possibles en cas d'échec

de T1?

Si T1 se passe bien (Commit), alors l'exécution de T2 fournit un résultat correct.

Si T1 se passe mal (RollBack), alors T2 utilisera des données incorrectes (lectures avant le RollBack) et écrira des informations incorrectes dans la base.

b) Proposez une solution à ce problème.

Toutes transactions qui dépendent d'une transaction annulée doivent être annulées. Il s'agit donc de surveiller les Commit/RollBack des transactions.

Exercice3 : concurrence

Soit les deux transactions T1 et T2.

T1:

Xread(a) a:=a+2;

Write(a);

Xread(b);

b:=b*3;

Write(b) XRealease(a) XRealease(b);

T2:

Xread(b) b:=b*2;

Write(b);

Xread(a);

a:=a+3;

Write(a) Xrealease(a) Xrealease(b);

Pouvez vous proposer une exécution concurrente pour ces deux transactions? Justifiez votre réponse.

(3)

Exercices du 6 avril 2005

Exercices IBD 3 / 3

Il y a manifestement interblocage ! Les commandes Xread(b) de T1 et Xread(a) de T2 s'attendent mutuellement et aucune de peut libérer a ou b.

Le problème réside dans la position des Xrealease qui sont tous en fin de transaction. Pour T1, Xrealease(a) devrait remonter avant le Xread(b). (Idem pout T2 avec Xrealeas(b).

Références

Documents relatifs

Figure 4 – Cartoon showing a cross-section of Kardia mine. The dashed line shows the faces and the benches as they were in June 2010 and the thick line as they were in July 2012. 3

L'agence enregistre pour chaque appartement un numéro d'appartement, son coût de base par semaine, son type (simple, moyen, élégant) et les périodes pendant lesquelles il peut

Déterminer, en justifiant chaque étape, les variations des fonctions suivantes sur l intervalle donné.. Conclure sur le sens de variation

Soit les deux transactions T1

Soit un système multi-utilisateurs qui gère des pannes avec un journal d’opérations effectuées par les transactions. Le protocole utilisé est UNDO/REDO. Les opérations

Dans le but de construire un outil d’aide au diagnostic des anomalies de la tension artérielle, la clinique « Petit-Des-Champs » a effectué un échantillonnage simple dans le

Student(STUID, STUname, Major, Credits) Faculty(FACID, FACname, Dept, Rank) Class(Course#, Facno, Sched, Room) Enroll(Coursno, STUno, Grade). 1) Considérer le graphe ci-dessous

6: Comparison of the restart time between global restart and partial restart, for different checkpoint periods and different computation grains (lower is better) The restart time