Modification des readme.md
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
|
||||
Ce programme simule des transactions bancaires concurrentes sans mécanismes de protection. Les processus effectuent des transferts entre comptes bancaires stockés dans un fichier de base de données. Cependant, en l'absence de verrouillage, des incohérences peuvent survenir lorsque plusieurs processus accèdent simultanément au fichier.
|
||||
|
||||
---
|
||||
|
||||
## 📋 Description du Programme
|
||||
Le programme exécute plusieurs processus en parallèle, chacun effectuant un certain nombre de transactions aléatoires entre des comptes bancaires.
|
||||
|
||||
@@ -18,6 +20,8 @@ Aucune protection n'est mise en place pour gérer les accès concurrents au fich
|
||||
4. **Calcul du solde total :**
|
||||
Le solde total des comptes est calculé avant et après les transactions pour détecter d'éventuelles incohérences.
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Compilation et Exécution
|
||||
### Compilation
|
||||
Utilisez le fichier `Makefile` pour compiler le programme :
|
||||
@@ -37,6 +41,8 @@ Exemple :
|
||||
```
|
||||
Ici, 4 processus seront lancés, chacun effectuant 10 transactions.
|
||||
|
||||
---
|
||||
|
||||
## 🛑 Problèmes et Limites
|
||||
En raison de l'absence de verrouillage, plusieurs problèmes peuvent survenir, en particulier dans des situations d'accès concurrent à la base de données :
|
||||
### **1. Incohérences des Données :**
|
||||
@@ -62,6 +68,8 @@ Le solde final est différent du solde initial...
|
||||
### **3. Absence de Contrôle des Transactions :**
|
||||
Sans un mécanisme de verrouillage, il est impossible de garantir qu'une transaction soit complète avant qu'une autre ne soit lancée. Par exemple, un transfert de 100€ entre `Alice` et `Bob` peut être partiellement effectué si le programme est interrompu au moment de l'écriture.
|
||||
|
||||
---
|
||||
|
||||
## 📜 Exemple de Résultat
|
||||
### Avant l'exécution
|
||||
Le fichier [`accounts.db`](../Data/accounts.db) contient :
|
||||
@@ -78,6 +86,7 @@ Elaina 4904
|
||||
...
|
||||
```
|
||||
|
||||
|
||||
### Compilation et exécution
|
||||
On compile le programme avec :
|
||||
```bash
|
||||
@@ -95,6 +104,7 @@ On exécute avec la commande suivante :
|
||||
./unsecured_transaction 30 40
|
||||
```
|
||||
|
||||
|
||||
### Après l'exécution
|
||||
On obtient cette sortie sur la console :
|
||||
|
||||
@@ -112,6 +122,8 @@ Le solde final est différent du solde initial...
|
||||
Tout les processus sont terminés !
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Points à Améliorer
|
||||
- **Ajout de verrouillage :** Utiliser des mécanismes comme lockf pour sécuriser les accès concurrents au fichier.
|
||||
- **Détection de conflits :** Identifier et gérer les conflits d'écriture pour éviter les pertes de données.
|
||||
|
Reference in New Issue
Block a user