12.07.2015 Views

Généralités sur les systèmes d'exploitation - Site personnel de ...

Généralités sur les systèmes d'exploitation - Site personnel de ...

Généralités sur les systèmes d'exploitation - Site personnel de ...

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

LO14 : Université Technologique <strong>de</strong> TroyesSoient <strong>les</strong> <strong>de</strong>ux transactions suivantes T1 et T2 qui effectuent une mise à jour <strong>sur</strong> la même donnée A:T1x=read(A)x=x+10write(A,x)T2y=read(A)y=y+20write(A,y)si au départ A=50, après exécution séquentielle <strong>de</strong> T1 puis T2 ou <strong>de</strong> T2 puis T1 on obtient A=80. Si <strong>les</strong>transactions sont exécutées <strong>de</strong> manière concurrente, nous pouvons alors obtenir la séquence suivante :T1x=read(A)x=x+10write(A,x)T2y=read(A)y=y+20write(A,y)Après cette exécution, A=70 . En d'autres termes, la mise à jour <strong>de</strong> T2 a écrasé celle <strong>de</strong> T1. Il y a perte <strong>de</strong>mise à jour. Les domaines d'écriture <strong>de</strong>s <strong>de</strong>ux transactions sont <strong>les</strong> mêmes.• La création d'incohérences.Soient <strong>les</strong> <strong>de</strong>ux transactions T1 et T2 qui utilisent une base <strong>sur</strong> laquelle on suppose que la contrainte A=Bdoit toujours être vérifiée :T1x=read(A)x=x+1write(A,x)y=read(B)y=y+1write(B,y)T2z=read(A)z=z*2write(A,z)t=read(B)t=t*2write(B,t)Si initialement A=50 et B=50, après exécution <strong>de</strong> T1 puis T2 (resp. T2 puis T1) on obtient A=102 et B=102(resp. A=101 et B=101) . La contrainte A=B est toujours vérifiée. Si <strong>les</strong> transactions sont exécutées <strong>de</strong>manière concurrente, nous pouvons alors obtenir la séquence suivante :T1x=read(A)x=x+1write(A,x)y=read(B)y=y+1write(B,y)T2z=read(A)z=z*2write(A,z)t=read(B)t=t*2write(B,t)Après cette exécution, A=102 et B=101 . Cette fois ci la base est <strong>de</strong>venue incohérente !• Les lectures non reproductib<strong>les</strong>.Soient <strong>les</strong> <strong>de</strong>ux transactions T1 et T2 tel<strong>les</strong> que la transaction T1 effectue <strong>de</strong>ux fois une même lecture <strong>sur</strong>la base.T1x=read(A)affiche xx=read(A)affiche xT2y=read(A)y=y+1write(A,y)66 /98 S. Moutou : Cours

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!