Informatique distribuée : pb de parallèlisme dans une transaction

Informatique distribuée : pb de parallèlisme dans une transaction - Algo - Programmation

Marsh Posté le 20-11-2003 à 10:16:54    

Salut :hello:  
 
Voilà j'ai un exercie d'informatique distribué sur lequel je ne suis pas trop sûr de moi. Pouvez-vous m'aider ?
 
Enoncé
 
Etude du parallélisme d'accèsdans le cadre d'un système bancaire.
 
On considère un ensemble d'établissement bancaires b1, b2, b3, ..., et un ensemble de clients c1b1, ..., cpb1, cqbn, et des transactions Ti de la forme :
 
Ti : chbk crédite cjbl S
 
dans laquelle on débite le client ch de l'établissement bk de la somme S.
 
Résoudre les problème d'accès simultanés, à l'aide de section critique verouillées par les outils déjà décrits.
 
Les outils étant :
 
- verrou_exclusif(ressource)
- deverrou_exclusif(ressource)
- verrou_partagé(ressource)
- deverrou_partagé(ressource)
 
Ma proposition de solution
 
Les objets :
 
Clients
Nom : chaîne      
Adresse : chaîne    
Comptes : liste de comptes
 
Compte
Numéro : entier
Solde : réel
 
Les opérations :
 
Simples
Créditer(compte_à_créditer, montant)
Débiter(compte_à_débiter, montant)
 
Complexes
Virement(compte_à_débiter, compte_à_créditer, montant)
 
Implémentation :
 
Méthode Virement
    (Compte_à_débiter, Compte_à_créditer, Montant)
Début
    Début_transaction
        Créditer(Compte_à_créditer, Montant)
        si Compte_à_débiter < montant alors
            Annuler_transaction
        sinon
            Débiter(Compte_à_débiter, Montant)
            Valider_transaction
        fsi
Fin
 
Méthode Créditer(Compte_à_créditer, Montant)
Début
    verrou_exclusif(Compte_à_créditer)
    compte_à_créditer:= compte_à_créditer+montant
    deverrou_exclusif(Compte_à_créditer)
Fin
 
Méthode Débiter(Compte_à_débiter, Montant)
Début
    verrou_exclusif(Compte_à_débiter)
    compte_à_débiter:= compte_à_débiter-montant
    deverrou_exclusif(Compte_à_débiter)
Fin
 
Tout en sachant que, si j'ai trois sites A, B et C, on a :
 
Sur l'agent principal (A)
Méthode Virement
(Compte_à_débiter, Compte_à_créditer, Montant)
 
Sur l'agent crédit (B)
Méthode Créditer(Compte_à_créditer, Montant)
 
Sur l'agent débit (C)
Méthode Débiter(Compte_à_débiter, Montant)
 
Conclusion
 
Cela me paraît un peu trop simple et j'ai l'impression d'avoir omis de traiter certains aspects du problèmes.
 
Pouvez-vous m'aider ?


Message édité par Roco le 20-11-2003 à 10:25:39
Reply

Marsh Posté le 20-11-2003 à 10:16:54   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed