Skip to content
Extraits de code Groupes Projets
Valider 8a2dc3b8 rédigé par Arnaud Lefebvre's avatar Arnaud Lefebvre
Parcourir les fichiers

Upload New File

parent a5c563c6
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Pipeline #10329 réussi
# Projet_Q4_Groupe_O4
## Description des fichiers :
@fonctions.h
Un fichier header qui reprend les structures utilisées pour les listes chaînées ainsi que les nom
des fonctions utilisées dans fonctions.c
@fonctions.c
Un fichier avec l'implémentation des différentes fonctions décrites dans le fichier header.
Dans celui-ci, il y a les fonctions liées aux listes chaînées, une fonction pour trouver les
diviseurspremiers d'un nombre donné, une fonction comptant les listes d'un fichier et des fonctions
pour initialiser les 2 buffers.
@main.c
Le code source à compiler pour obtenir le programme
@test.c
Un fichier reprenant les tests unitaires de nos fonctions
@Makefile
Le fichier reprenant les commandes à executer pour lancer le code de façon plus agréable
## Lancer le code :
- make fact : produit l'exécutable "fact"
- make cpp / make cpp_xml : compile le programme et analyse ou donne le rapport d'analyse avec cppcheck
- make val / make val_xml : compile le programme et analyse ou donne le rapport d'analyse avec valgrind
- make test : compile le programme et exécute les test unitaires
- make clean : nettoie le dossier et supprime les exécutables créés
- ./fact -N nthreads input.txt output.txt : lance le programme exécutable fact
* nthreads : le nombre de threads du programme, un entier >= 1
* input.txt : le nom du fichier input ayant des lignes d'entiers compris entre 2 et 2^(31)-1
* output.txt : le nom du fichier output qui est créé si il n'existe pas encore
## Architecture du code :
Notre code est découpé en 3 parties :
1) Lecture (1 thread ) : lit les lignes du fichier input et en stock les entiers dans le buffer_1
2) Calcul (n threads) : prend les entiers du buffer_1, calcul la liste des diviseurs premiers de l'entier
et stock cette liste d'entiers dans le buffer_2
3) Ecriture (1 thread ) : prend les listes d'entiers du buffer_2 et les écrit dans le fichier output
Les 2 buffers sont protégés par 1 mutex et 2 sémaphores (free et full) chacun
## Bon fonctionnement :
Pour un bon fonctionnement du code, il faut respecter quelque règles :
1) Le fichier input doit être composé de lignes ne comportant que des entiers compris entre 2 et 2^(31)-1
avec un seul entier par ligne
2) Le nombre de thread(s) doit être précisé et doit être >= 1
3) Pour un bon fonctionnement de valgrind, il faut que le fichier "example_input.txt" soit dans le même dossier
que le Makefile
# Projet_Q4_Groupe_O4
\ No newline at end of file
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter