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> Troyes• Les verrous posés en cas <strong>de</strong> sélection pour mise à jour. D'autres transactions peuvent lire <strong>les</strong> données àcondition qu'el<strong>les</strong> n'aient pas l'intention <strong>de</strong> <strong>les</strong> modifier. C'est le mo<strong>de</strong> protégé (Protected).• Les verrous posés en cas d'écriture. Si une transaction vient d'écrire une donnée, aucune autre ne doitpouvoir la lire tant que cette transaction n'est pas terminée. C'est le mo<strong>de</strong> exclusif (eXclusive).La compatibilité entre ces trois mo<strong>de</strong>s est résumée Fig.10.3. Deux mo<strong>de</strong>s sont incompatib<strong>les</strong> si Non estinscrit à leur intersection dans la matrice <strong>de</strong> verrouillage. Par exemple, si une transaction a obtenu unverrou <strong>de</strong> type Share <strong>sur</strong> une donnée, un autre verrou <strong>de</strong> type Share sera accepté mais un verrou eXclusivesera refusé.Verrou S P XS Oui Oui NonP Oui Non NonX Non Non NonFig. 9.3 ­ Matrice <strong>de</strong>s compatibilités <strong>de</strong> verrouillageOn utilisera par la suite <strong>les</strong> notations lockS, lockP et lockX pour <strong>les</strong> différents verrous ainsi que unlock pourle déverrouillage.Voici <strong>de</strong>ux exemp<strong>les</strong> d'exécutions concurrentes possib<strong>les</strong> <strong>de</strong> transactions avec verrous. T1 effectue unvirement compte à compte, T2 et T3 affichent la somme <strong>de</strong> <strong>de</strong>ux comptes (el<strong>les</strong> ne font que <strong>de</strong>s ordres <strong>de</strong>lecture).T1 T2 T1 T3lockX(B)x=read(B)x=x­10write(B,x)unlock(B)lockX(A)t=read(A)t=t+10write(A,t)unlock(A)lockS(A)y=read(A)unlock(A)lockS( C )z=read( C )unlock( C )affiche(y+z)lockX(B)x=read(B)x=x­10write(B,x)unlock(B)lockX(A)t=read(A)t=t+10write(A,t)unlock(A)lockS(A)y=read(A)unlock(A)lockS(B)z=read(B)unlock(B)affiche(y+z)L'usage <strong>de</strong> verrous n'est néanmoins pas suffisant pour as<strong>sur</strong>er la sérialisabilité d'une exécution. Là encore ilexiste un test permettant <strong>de</strong> savoir si une exécution avec verrous est sérialisable. Elle se base toujours <strong>sur</strong>la recherche <strong>de</strong> cyc<strong>les</strong> dans un graphe <strong>de</strong> dépendance.Les sommets du graphe sont constitués <strong>de</strong> toutes <strong>les</strong> transactions participant à l'exécution. Un arc relie unetransaction Ti à une transaction Tj si et seulement si il existe une donnée X telle que Ti apposé un verroudans un mo<strong>de</strong> A <strong>sur</strong> X et Tj pose ultérieurement un verrou <strong>sur</strong> X dans un mo<strong>de</strong> B incompatible avec A.Sémantiquement, le fait qu'un arc existe entre Ti et Tj dans le graphe <strong>de</strong> précé<strong>de</strong>nce signifie que dans touteexécution équivalente à celle traitée, Ti doit précé<strong>de</strong>r Tj.T1 T2 T1 T3Fig. 9.4 ­ graphe <strong>de</strong>s transactions précé<strong>de</strong>ntes avec verrouSi le graphe <strong>de</strong> dépendance possè<strong>de</strong> un cycle alors l'exécution n'est pas sérialisable. Dans le cas contraireelle l'est. L'ordre <strong>de</strong> sérialisation peut être obtenu par tri topologique du graphe. On notera que ce tri n'esten général pas unique.Comme on peut le voir <strong>sur</strong> le graphe Fig. 10.4 l'exécution précé<strong>de</strong>nte entre T1 et T2 est sérialisable tandisque T1 et T3 ne l'est pas. Cet exemple montre par ailleurs que même si l'auteur d'une transaction n'exécuteque <strong>de</strong>s lectures, l'exécution <strong>de</strong> celle ci n'est pas sûre si un protocole <strong>de</strong> verrouillage adéquat n'est pasappliqué.69 /98 S. Moutou : Cours

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

Saved successfully!

Ooh no, something went wrong!