2012-05-13 20:48:51 +02:00
\begin { frame}
2012-06-15 13:16:37 +02:00
\frametitle { Etats ("status") de la configuration}
2012-05-13 20:48:51 +02:00
\begin { itemize}
2012-06-15 13:16:37 +02:00
\item système d'états de la configuration par \emph { droits d'accès} ;
\item \texttt { read write} , \texttt { read only} ;
2012-05-13 20:48:51 +02:00
\item correspond à \texttt { freeze} , \texttt { hidden} , \texttt { disabled} \dots ;
2012-06-15 13:16:37 +02:00
\item \texttt { doc/status.html} ;
\item \texttt { eole-report/D03ReglesEtats.pdf} ;
2012-05-13 20:48:51 +02:00
\end { itemize}
\end { frame}
\begin { frame}
\frametitle { hidden if in, hidden if not in}
\begin { itemize}
\item les hidden if in, disabled if, \dots sont généralisés
\item dans tiramisu, ce sont des pré-requis sur une (des) variables
\item \texttt { eole-report/D03ReglesEtats.pdf}
\item \texttt { doc/consistency.html}
\end { itemize}
2012-06-12 23:05:08 +02:00
\end { frame}
2012-05-13 20:48:51 +02:00
2012-06-12 23:05:08 +02:00
\begin { frame}
\frametitle { un peu de mathématiques : prévenir les deadlocks}
\begin { itemize}
2012-06-13 08:37:27 +02:00
\item sûreté : prévention des deadlocks ;
2012-06-12 23:05:08 +02:00
\item dans tiramisu, le modèle est suffisamment abstrait pour que son exploitation mathématique soit
2012-06-13 08:37:27 +02:00
réalisable par les techniques de \emph { Model Checking} ;
2012-06-12 23:05:08 +02:00
\item soit on a besoin de ne connaître que l'ensemble des états, pas leurs liens $ \Rightarrow $ espace d'états ;
\item soit on a besoin de connaître toutes les relations $ \Rightarrow $ graphe d'accessibilité ;
2012-06-13 08:37:27 +02:00
\item la configuration est modélisable en une structure de \emph { Kripe} ;
2012-06-15 13:16:37 +02:00
\item déjà le parsing de la conf est facile, la preuve : \texttt { tiramisu/report/build/index.html}
2012-06-12 23:05:08 +02:00
\end { itemize}
2012-05-13 20:48:51 +02:00
\end { frame}
2012-06-12 23:05:08 +02:00
\begin { frame}
2012-06-13 08:37:27 +02:00
\frametitle { un peu de mathématiques (suite) CreoleLint}
2012-06-12 23:05:08 +02:00
\begin { itemize}
\item exemple : $ P = 3 \wedge Q = 1 \triangleleft \langle P = 1 \hookleftarrow Q = 0 \rangle $
2012-06-15 13:16:37 +02:00
\item la propriété \og dans aucun état on a $ P = 3 $ et $ Q = 1 $ \fg ~ est-elle vraie ?
2012-06-12 23:05:08 +02:00
Pour vérifier cette propriété, on a besoin de connaître l'espace d'états ;
2012-06-15 13:16:37 +02:00
\item la propriété \og chaque chemin débutant dans un état accessible $ P = 1 $ passe par un état où $ Q = 3 $ et $ P = 2 $ \fg ~
2012-06-14 09:58:28 +02:00
est-elle vraie ? Cela demande de connaître le graphe d'accessibilité ;
\item les structures de \emph { Kripe} sont des machines à états étiquetées par les valuations de toutes les variables propositionnelles ;
2012-06-13 08:37:27 +02:00
\item une compliation statique devient possible dans \emph { CreoleLint} \dots
2012-06-12 23:05:08 +02:00
\end { itemize}
\end { frame}
2012-05-13 20:48:51 +02:00
\begin { frame}
\frametitle { compatibilité Créole : ce qui reste à faire}
\begin { itemize}
2012-06-14 09:58:28 +02:00
\item les options spéciales sont implémentées (auto, fill, obligatoire, \dots ) reste la librairie des fonctions pour les variables automatiques \texttt { eosfunc} ;
\item tous les états sont implémentés (hidden, disabled, mode (normal/expert), \dots ), il faut fixer les comportement \texttt { read write} ;
\item les "valprec" (valeur précédentes) et une mémoire de \emph { tous} les états antérieurs ;
\item fixer les comportement des hides (sous-groupes récursifs, \dots ) ;
\item validations master/slaves, validations globales au regard de la configuration entière puisque c'est possible maintenant.
2012-05-13 20:48:51 +02:00
\end { itemize}
\end { frame}