Write conclusion

This commit is contained in:
flyingscorpio@clevo 2022-11-06 20:05:49 +01:00
parent d784ea7be8
commit 531595ac32
2 changed files with 14 additions and 0 deletions

Binary file not shown.

View file

@ -671,4 +671,18 @@
\section{Conclusion}
Ce projet nous a permis d'appréhender de multiples composantes d'un programme multitâches complet.
Avec le langage C, nous avons pu maîtriser toutes les étapes nécessaires, de la synchronisation à la gestion de la transmission de flux caractère par caractère.
La gestion d'erreur a été une partie fondamentale du développement de l'application.
Nous avons en effet choisi de programmer de manière défensive~: tout code de retour des fonctions doit être vérifié, toute branche conditionnelle doit être explorée.
Il a également fallu choisir en fonction des cas que faire lors d'une erreur~: quitter le programme, ignorer et reprendre la boucle, fermer une connexion, informer le client\ldots
Un élément particulièrement délicat à mettre en \oe{}uvre a été la gestion du mutex lors de la réception d'un message.
Lors de la boucle de lecture, la fonction \texttt{read} (ou \texttt{recv} en fonction des cas) est bloquante.
Si le mutex est verrouillé juste avant, le thread garde la main de manière infinie, que ce soit lors de la lecture ou lors de son attente.
Ce type de considération à prendre montre les implications à avoir pour un programme multitâches, qui ne se contente pas de faire plusieurs choses en parallèle.
\end{document}