Faculté des Sciences de Tunis Département des Sciences de l’Informatique Année Universitaire : 2022/2023 Licence Fondamentale d’Informatique LCE-1 Système d’Exploitation Mini-Projet Consignes Vous pouvez réaliser le travail par groupe de trois étudiants. Il est interdit de travailler seul. Vous devez rendre un mini-rapport de projet (5 pages maximum, format pdf). Vous y détaillerez les difficultés auxquelles vous avez été confronté, et comment vous les avez résolues. Vous indiquerez également le nombre d’heures passées sur les différentes étapes de ce projet (conception, codage, tests, rédaction du rapport) par chaque membre du groupe. Vous devrez nous faire une démonstration de votre projet et être prêts à répondre à toutes les questions techniques sur le codage de l’application. Objectif du projet Dans ce projet, il vous est demandé l’implémentation d'un système de gestion des transactions bancaires. Description du projet Dans ce projet, vous devrez implémenter un système de gestion des transactions bancaires en utilisant la fonction fork de la bibliothèque standard C. Le but de ce système est de permettre aux clients de la banque d'effectuer des transactions en temps réel, tout en garantissant la sécurité et la cohérence des données. Pour cela, vous devrez créer une application en ligne de commande qui permettra aux clients de la banque de réaliser des opérations de retrait, de dépôt, et de transfert d'argent entre comptes bancaires. Ces opérations seront réalisées en utilisant des processus fils créés à partir du processus principal. Voici les fonctionnalités attendues pour cette application : Création de processus fils pour chaque transaction bancaire effectuée Vérification de la validité des transactions (vérification de la solvabilité du compte, de la conformité de l'opération...) Gestion de l'état des transactions (en cours, terminé, en attente...) Affichage des informations détaillées pour chaque transaction (montant, compte émetteur, compte bénéficiaire, etc.) Vous devrez également fournir une documentation complète pour votre application, qui expliquera comment l'utiliser, comment elle est implémentée, et comment elle peut être étendue. Compétences requises : Connaissance de la bibliothèque standard C Maîtrise de la gestion de processus en environnement Unix Connaissance des concepts de sécurité en matière de transactions bancaires Livraison attendue : Code source de l'application. Documentation complète. Fichiers de test pour démontrer le fonctionnement de l'application. Démarche à suivre Tout d'abord, vous devrez créer une structure de données pour stocker les informations de compte bancaire, telles que le solde et le numéro de compte. Vous pouvez également créer des fonctions pour ajouter et supprimer des comptes bancaires, ainsi que pour modifier les informations de compte existantes. Ensuite, vous pouvez créer des fonctions pour effectuer les opérations bancaires de retrait, de dépôt et de transfert. Ces fonctions doivent vérifier la validité des transactions, tels que la solvabilité des comptes et la conformité de l'opération. Si une transaction est valide, elle doit être ajoutée à une liste d'opérations en attente ou en cours. Pour créer des processus fils pour chaque transaction bancaire, vous pouvez utiliser la fonction fork() de C. Chaque processus fils doit exécuter la fonction correspondante pour l'opération bancaire, puis mettre à jour l'état de la transaction dans la liste d'opérations en attente ou en cours. Pour afficher les informations détaillées pour chaque transaction, vous pouvez créer une fonction d'affichage qui parcourt la liste d'opérations en cours et en attente, et affiche les informations pertinentes pour chaque transaction. Bon courage pour votre projet !