Ajout du premier README.md

This commit is contained in:
Moncef STITI 2024-12-03 20:23:28 +01:00
parent 8bddab0b57
commit fada8714e5

@ -1,3 +1,64 @@
# MiniProjet2
# Miniprojet 2 - Concurrence 🏦
Mini projet n°2 - ...
Ce projet explore les défis de la gestion concurrentielle dans une "base de données bancaire". À travers deux implémentations (sécurisée et non sécurisée), nous analysons les problèmes d'accès concurrent et proposons une solution à l'aide de verrous.
## 📚 Table des matières
- 📖 [Description générale](#📖-description-générale)
- 🎯 [Objectifs du projet](#🎯-objectifs-du-projet)
- 📁 [Données](#📁-données)
- 🛠️ [Générateur de données](#🛠️-générateur-de-données)
- 🔓 [Transactions non sécurisées](#🔓-transactions-non-sécurisées)
- 🔒 [Transactions sécurisées](#🔒-transactions-sécurisées)
- 🤝 [Auteurs](#🤝-auteurs)
## 📖 Description Générale
Le projet met en œuvre des transactions simulées entre comptes bancaires en conditions concurrentielles.
Deux versions ont été développées :
1. Une version non sécurisée, exposant les incohérences possibles sans précautions.
2. Une version sécurisée, utilisant des verrous pour garantir la cohérence.
Chaque version est documentée et accompagnée de son code source dans des sous-répertoires dédiés.
## 🎯 Objectifs du Projet
- Mettre en évidence les effets néfastes d'une mauvaise gestion des accès concurrents.
- Implémenter une solution robuste en utilisant des verrous pour assurer la cohérence tout en conservant un bon niveau de parallélisme.
## 📁 Données
Le répertoire **Data** contient la base de données `accounts.db`, qui sert de point de départ pour les transactions. Chaque ligne correspond à un compte bancaire avec un nom et un solde initial.
- **[Accéder au répertoire Data](./Data)**
- **Fichiers**:
- `accounts.db`: Fichier texte simulant une base de données avec des comptes.
## 🛠️ Générateur de Données
Le répertoire **DataGenerator** contient un programme pour générer une base de données bancaire. Cela permet de créer des fichiers `.db` personnalisés pour vos tests.
- **[Accéder au répertoire DataGenerator](./DataGenerator)**
- **Fichiers**:
- `README.md`: Documentation sur l'utilisation du générateur.
- `generate_accounts.c`: Code source pour générer `accounts.db`.
## 🔓 Transactions Non Sécurisées
Le répertoire **Unsecured** contient une implémentation basique de gestion de transactions bancaires.
**Problème :** Sans mécanismes de protection, les accès concurrents entraînent des incohérences dans les soldes.
- **[Accéder au répertoire Unsecured](./Unsecured)**
- **Fichiers**:
- `README.md`: Documentation sur lutilisation du programme ainsi que des tests et observations.
- `unsecured_transaction.c`: Code source.
## 🔒 Transactions Sécurisées
Le répertoire **Secured** contient une version améliorée avec des verrous (fonction lockf) pour résoudre les problèmes d'accès concurrent.
- **[Accéder au répertoire Secured](./Secured)**
- **Fichiers**:
- `README.md`: Documentation sur l'implémentation sécurisée.
- `secured_transaction.c`: Code source.
## 🤝 Auteurs
Ce projet a été réalisé par :
- Moncef STITI (@stiti)
- Lenny FOULOU (@foulou)