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...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

LO14 : Université Technologique <strong>de</strong> Troyes4.4 Le protocole à <strong>de</strong>ux phasesS'il est aisé <strong>de</strong> savoir quand poser <strong>les</strong> verrous, la levée <strong>de</strong>s verrous est beaucoup plus délicate. En effetd'autres précautions sont encore à prendre. Si on tente d'augmenter le ren<strong>de</strong>ment du traitement simultané<strong>de</strong>s transactions en déverrouillant <strong>les</strong> données dés que possible, la base peut se trouver en étatinconsistant. Si on ne déverrouille pas un article avant d'en verrouiller un autre, on crée <strong>de</strong>s interblocages. Ilfaut donc imposer aux transactions un protocole <strong>de</strong> déverrouillage. Le plus fréquent est le protocole <strong>de</strong>verrouillage à <strong>de</strong>ux phases, qui garantit la sérialisabilité <strong>de</strong> l'exécution <strong>de</strong>s transactions. Ce protocoleimplique que chacune <strong>de</strong>s transactions émette ses <strong>de</strong>man<strong>de</strong>s <strong>de</strong> verrouillage et <strong>de</strong> déverrouillage en <strong>de</strong>uxphases distinctes :• Verrouillage croissant. La transaction peut obtenir <strong>de</strong> nouveaux verrouillages mais pas <strong>de</strong> nouveauxdéverrouillages• Verrouillage décroissant. La transaction peut obtenir <strong>de</strong>s déverrouillages mais pas <strong>de</strong> nouveauxverrouillages.Initialement une transaction est en phase <strong>de</strong> verrouillage croissant. Lorsqu'elle libère un verrou, elle entreen phase <strong>de</strong> décroissance et aucun verrouillage ne peut plus être <strong>de</strong>mandé.Définition : Une transaction est dite à <strong>de</strong>ux phases si elle n'exécute aucun LOCK après avoir exécuté unUNLOCK.Voici <strong>les</strong> <strong>de</strong>ux transactions T1 et T3 précé<strong>de</strong>ntes transformées pour être compatib<strong>les</strong> avec le protocole <strong>de</strong>verrouillage à <strong>de</strong>ux phases.T1'lockX(B)x=read(B)x=x­10write(B,x)lockX(A)t=read(A)t=t+10write(A,t)unlock(B)unlock(A)T3'lockS(A)y=read(A)lockS(C)z=read( C)display(y+z)unlock(A)unlock( C)Bien que ce verrouillage à <strong>de</strong>ux phases as<strong>sur</strong>e la sérialisabilité il n'évite pas pour autant <strong>les</strong> interblocages. Ilse peut en effet que plusieurs transactions s'atten<strong>de</strong>nt mutuellement. C'est le cas avec la transaction à <strong>de</strong>uxphases T4 qui fonctionne comme T3' (lui-même transformation <strong>de</strong>ux phases <strong>de</strong> T3) mais <strong>sur</strong> la donnée B àla place <strong>de</strong> la donnée C.T1'lockX(B)x=read(B)x=x­10write(B,x)lockX(A)t=read(A)t=t+10write(A,t)unlock(B)unlock(A)T4lockS(A)y=read(A)lockS(B)z=read(B)display(y+z)unlock(A)unlock(B)Avec ces <strong>de</strong>ux transactions à <strong>de</strong>ux phases, <strong>de</strong>s interblocages peuvent se produire. Il y a interblocage siplusieurs transactions s'atten<strong>de</strong>nt mutuellement pour accé<strong>de</strong>r aux données. En voici un exemple :70 /98 S. Moutou : Cours

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

Saved successfully!

Ooh no, something went wrong!