\section{Conclusion et prévisions pour la suite}

Même si nous avons une base plutôt avancée, nous pouvons améliorer certains aspects, notamment par l'ajout de fonctionnalités facultatives. Nous pensons ajouter le support des signaux, et surtout de la préemption et le support multicoeurs. Mais il y a un ordre !

\vspace{1\baselineskip}
Par exemple, implémenter la \textit{préemption} nécessite de:

\vspace{-0.35\baselineskip} 
\begin{enumerate}
    \item Pouvoir \textbf{déclencher des interruptions asynchrones}. Nous allons choisir l'implémentation de \textit{setitimer} qui enverra le signal \textit{SIGALARM} au processus à intervalle de temps régulier.
\vspace{-0.5\baselineskip} 
    \item Pouvoir \textbf{gérer le signal envoyé lors de l'interruption}, et ainsi bénéficier d'un \textit{handler} qui va effectuer un changement de contexte.
 \vspace{-0.5\baselineskip}
    \item Pouvoir \textbf{protéger des parties communes} à tous les \textit{threads}. Pour \textit{free} ou \textit{yield} par exemple.
\end{enumerate}

\vspace{-0.35\baselineskip} 
Ainsi, avant d'implémenter cette \textit{préemption}, il sera nécessaire de savoir gérer le signal \textit{SIGALARM}, et ainsi de configurer au préalable un \textit{gestionnaire de signaux}. 
Néanmoins, il n'est pas nécesaire d'implémenter tous les signaux pour cette dernière.

\vspace{0.35\baselineskip}
On peut s'attendre aussi à une baisse des performances pour les calculs de \textit{Fibonacci}.

\vspace{1\baselineskip}
En ce qui concerne le \textit{support des machines multicoeurs}, nous avons déjà implémenté les \textit{mutex}. Plusieurs questions subsistent encore concernant l'efficacité de l'ordonnanceur, mais aussi concernant des problèmes de \textit{fausse concurrence}, engendrant une diminution de la performance du code.