reorganisation

This commit is contained in:
Amaury
2023-07-03 14:32:03 +02:00
parent f1b1dc40ca
commit b00fc6acbe
46 changed files with 856 additions and 1 deletions

View File

@ -0,0 +1,88 @@
\begin{frame}
\frametitle{Cohérence Causale (Convergente)}
\begin{columns}
\column{0.5\textwidth}
\resizebox{\columnwidth}{!}{
\includegraphics{images/carte_criteres.png}
}
\column{0.5\columnwidth}
\begin{block}{La cohérence causale selon Van Der Linde}
Usage du terme \textbf{Causal Consistency} qui pourrait être confondue avec la Cohérence Causale de Perrin. \newline
Mais s'approche plus de ce que Perrin qualifie de \textbf{Convergence Causale} (ou Causal Convergence (CCv)). \newline
Les auteurs souhaitent privilégier la \textbf{Convergence} à la \textbf{Validité}.
\end{block}
\end{columns}
\end{frame}
\begin{frame}
\frametitle{Cohérence Causale Faible (WCC)}
\begin{block}{Définition}
Il existe un ordre causal tel que pour chaque lecture, il existe une linéarisation du passé causal de cet événement le justifiant.
\end{block}
\only<1>{
\begin{columns}
\column{0.4\columnwidth}
\begin{tcolorbox}[colframe=green!50!black]
\input{schemas/wcc_hc_1}
\end{tcolorbox}
\column{0.5\columnwidth}
$\textcolor{red}{w(1)} \bullet \textcolor{red!50}{r/(0,1)}$ \newline
$\textcolor{blue}{w(3)} \bullet \textcolor{red}{w(1)} \bullet \textcolor{green!75!black}{r/(3,1)}$ \newline
$\textcolor{blue}{w(3)} \bullet \textcolor{red}{w(1)} \bullet \textcolor{green!75!black}{r} \bullet \textcolor{blue!50}{r/(3,1)}$ \newline
$\textcolor{red}{w(1)} \bullet \textcolor{blue}{w(3)} \bullet \textcolor{green!75!black}{r} \bullet \textcolor{green!95!black}{w(2)} \bullet \textcolor{red!25}{r/(3,2)}$ \newline
$\textcolor{red}{w(1)} \bullet \textcolor{blue}{w(3)} \bullet \textcolor{green!75!black}{r} \bullet \textcolor{green!95!black}{w(2)} \bullet \textcolor{blue!50}{r} \bullet \textcolor{blue!25}{r/(3,2)}$ \newline
\end{columns}
\begin{columns}
\column{0.4\columnwidth}
\begin{tcolorbox}[colframe=red!50!black]
\input{schemas/wcc_hc_2}
\end{tcolorbox}
\column{0.5\columnwidth}
$w(1) \bullet r/(0,1)$ \newline
Ici il n'est pas possible de trouver un ordre causal qui permette de linéariser le passé causal de $r/(2,1)$.
\end{columns}
}
\only<2>{
\begin{columns}
\column{0.4\columnwidth}
\begin{tcolorbox}[colframe=green!50!black]
\input{schemas/wcc_hc_3}
\end{tcolorbox}
\column{0.5\columnwidth}
$\textcolor{green!75!black}{r/(0,0)}$ \newline
$\textcolor{red}{w(1)} \bullet \textcolor{blue}{w(3)} \bullet \textcolor{red!50}{r/(3,1)}$ \newline
$\textcolor{blue}{w(3)} \bullet \textcolor{red}{w(1)} \bullet \textcolor{blue!50}{r/(1,3)}$ \newline
$\textcolor{red}{w(1)} \bullet \textcolor{blue}{w(3)} \bullet \textcolor{green!75!black}{r} \bullet \textcolor{green!95!black}{w(2)} \bullet \textcolor{red!25}{r/(1,2)^\omega}$ \newline
$\textcolor{blue}{w(3)} \bullet \textcolor{red}{w(1)} \bullet \textcolor{blue!50}{r} \bullet \textcolor{green!75!black}{r} \bullet \textcolor{green!95!black}{w(2)} \bullet \textcolor{blue!25}{r/(3,2)^\omega}$ \newline
Cet exemple respecte la validité, mais pas la convergence.
\end{columns}
}
\end{frame}
\begin{frame}
\frametitle{Convergence Causale (CCv)}
\begin{block}{Définition}
Il existe un ordre causal et un ordre total tel que pour chaque lecture, il existe une linéarisation du passé causal de cet événement trié suivant l'ordre total le justifiant.
\end{block}
\begin{columns}
\column{0.4\columnwidth}
\begin{tcolorbox}[colframe=green!50!black]
\resizebox{1.2\columnwidth}{!}{
\includegraphics{schemas/ccv_hc_1.png}
}
\end{tcolorbox}
\column{0.5\columnwidth}
% J'expliquerai au tableau
\end{columns}
\end{frame}

View File

@ -0,0 +1,36 @@
\subsubsection{Le début de l'informatique distribuée}
\begin{frame}
\frametitle{Les processeurs multicœurs}
\begin{block}{Historique (1970)}
\begin{itemize}
\item Besoin d'augmenter les performances des processeurs
\begin{itemize}
\item Augmentation de la fréquence (limite physique)
\item Augmentation du nombre de processeurs (problèmes de cohérence)
\end{itemize}
\item Lamport à défini des propriétés permettant de définir la notion de cohérence forte.
\item L'approche de Lamport est de classer l'exécution et non pas l'algorithme.
\end{itemize}
\begin{quotation}
"A correct execution is achieved if the results produced are the same as would be produced by executing the program steps in order."
\footnote{Lamport, \emph{How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs}, 1979}
\end{quotation}
\end{block}
\end{frame}
\begin{frame}
\frametitle{La généralisation aux systèmes distribuée}
\begin{block}{Historique (1980)}
\begin{itemize}
\item Lamport étend sa définition de la cohérence forte aux systèmes distribués. \footnote{Lamport, \emph{On interprocess communication}, 1986}
\item Il définit trois propriétés :
\begin{itemize}
\item \textbf{Sûreté}
\item \textbf{Régularité}
\item \textbf{Atomicité}
\end{itemize}
\item Une exécution qui respecte ces 3 propriétés est dite linéarisable.
\end{itemize}
\end{block}
\end{frame}

View File

@ -0,0 +1,11 @@
\subsection{Historique}
\include{intro/history.tex}
\subsection{La linéarisabilité}
\include{intro/linearisabilite.tex}
\subsection{Rappels}
\include{intro/rappel.tex}
\subsection{Cohérence Causale (Convergente)}
\include{intro/coherencecausale.tex}

View File

@ -0,0 +1,45 @@
\begin{frame}
\frametitle{Sûreté}
\begin{block}{Définition}
Toute lecture réalisée dans un même environnement non-concurrent est identique.
\end{block}
\begin{figure}
\input{schemas/linearisation_surete_hc}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Régularité}
\begin{block}{Définition}
Une lecture concurrente à une écriture peut lire soit la valeur avant l'écriture, soit la valeur après l'écriture.
\end{block}
\begin{figure}
\input{schemas/linearisation_regularite_hc}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Atomicité}
\begin{block}{Définition}
Si deux lectures ne sont pas concurrente la deuxième doit retourner une valeur au moins aussi récente que la première.
\end{block}
\begin{figure}
\input{schemas/linearisation_atomicite_hc}
\end{figure}
\end{frame}
\begin{frame}
\frametitle{Cohérence Atomique ($C_\top$)}
\begin{block}{Définition}
La cohérence atomique est le critère de cohérence le plus fort existant.
\begin{itemize}
\item Il est le moins efficace en terme d'interactivité.
\item Il demande une synchronisation entre les opérations
\begin{itemize}
\item Chaque opération d'écriture ou de lecture est bloquante et doit attendre la fin de la précédente.
\end{itemize}
\item Il est utilisé en tant que référence.
\end{itemize}
\end{block}
\end{frame}

View File

@ -0,0 +1,147 @@
\begin{frame}
\frametitle{Les modèles de cohérences}
\begin{columns}
\column{0.6\textwidth}
\footnote{Perrin, \emph{Concurrence et cohérence dans les systèmes répartis}, 2017}
\resizebox{\columnwidth}{!}{
\includegraphics{images/carte_criteres.png}
}
\column{0.4\columnwidth}
\begin{block}{Les classes de cohérences}
2 Grandes familles :
\begin{itemize}
\item Cohérence Forte
\item Cohérence Faible :
\begin{itemize}
\item Localité d'état (SL)
\item Convergence (EC)
\item Validité (V)
\end{itemize}
\end{itemize}
\end{block}
\end{columns}
\end{frame}
\begin{frame}
\frametitle{Validité (V)}
\begin{block}{Définition}
Il existe, un ensemble cofini d'événement tel que pour chacun d'entre eux une linéarisation de toutes les opérations d'écriture les justifient. \\
\end{block}
\begin{columns}
\column{0.4\columnwidth}
\begin{tcolorbox}[colframe=green!50!black]
\input{schemas/validite_hc_1}
\end{tcolorbox}
\column{0.5\columnwidth}
\begin{math}
\begin{array}{ll}
E' = & \{r/(2,1)^\omega, r/(1,2)^\omega\} \\
& w(2) \bullet w(1) \bullet \textcolor{red}{r/(2,1)^\omega} \\
& w(1) \bullet w(2) \bullet \textcolor{red}{r/(1,2)^\omega} \\
\end{array}
\end{math}
\end{columns}
\begin{columns}
\column{0.4\columnwidth}
\begin{tcolorbox}[colframe=red!50!black]
\input{schemas/validite_hc_2}
\end{tcolorbox}
\column{0.5\columnwidth}
$E' = \{r/(0,1)^\omega, r/(1,2)^\omega\}$. \\
Il n'existe pas de linéarisation des opérations d'écritures qui justifie $r/(0,1)^\omega$.
\end{columns}
\end{frame}
\begin{frame}
\frametitle{Localité d'état}
\begin{block}{Définition}
Pour tout processus $p$, il existe une linéarisation contenant toutes les lectures pures de $p$. Respectant l'ordre local de ces lectures. \\
\end{block}
\begin{columns}
\column{0.4\columnwidth}
\begin{tcolorbox}[colframe=green!50!black]
\input{schemas/localiteetat_hc_1}
\end{tcolorbox}
\column{0.5\columnwidth}
\begin{math}
\begin{array}{l}
\textcolor{blue}{C_{p_0} = \{r/(0,0), r/(0,2)^\omega, w(2)\}}, \\
\textcolor{red}{C_{p_1} = \{r/(0,0), r/(0,1)^\omega, w(1)\}}, \\
\textcolor{blue}{r/(0,0) \bullet w(2) \bullet r/(0,2)^\omega} \\
\textcolor{red}{r/(0,0) \bullet w(1) \bullet r/(0,1)^\omega} \\
\end{array}
\end{math}
\end{columns}
\begin{columns}
\column{0.4\columnwidth}
\begin{tcolorbox}[colframe=red!50!black]
\input{schemas/localiteetat_hc_2}
\end{tcolorbox}
\column{0.5\columnwidth}
$E'_{p_0} = \{r/(0,0), r/(2,1)^\omega\},$ \newline
$r/(0,0) \bullet w(2) \bullet w(1) \bullet r/(2,1)^\omega$ \newline
$E'_{p_1} = \{r/(0,1), r/(2,1)^\omega\}$. \newline
Il n'existe pas de linéarisation de $p_1$ respectant la localité d'état.
\end{columns}
\end{frame}
\begin{frame}
\frametitle{Convergence (EC)}
\begin{block}{Définition}
Il existe un ensemble cofini d'événements dont chacun peut être justifié par un seul et même état. \\
\end{block}
\begin{columns}
\column{0.4\columnwidth}
\begin{tcolorbox}[colframe=green!50!black]
\input{schemas/convergence_hc_1}
\end{tcolorbox}
\column{0.5\columnwidth}
$E' = \{r/(1,2)^\omega, r/(1,2)^\omega\}$ \newline
$\delta = ((1,2), \emptyset)$ est un état possible justifiant $E'$.
\end{columns}
\begin{columns}
\column{0.4\columnwidth}
\begin{tcolorbox}[colframe=red!50!black]
\input{schemas/convergence_hc_2}
\end{tcolorbox}
\column{0.5\columnwidth}
$E' = \{r/(1,2)^\omega, r/(2,1)^\omega\}$. \newline
Il n'existe aucun état possible justifiant $E'$ puisque deux lectures infinies sont incohérentes.
\end{columns}
\end{frame}
\begin{frame}
\frametitle{Cohérence Causale}
\begin{columns}
\column{0.6\textwidth}
\resizebox{\columnwidth}{!}{
\includegraphics{images/carte_criteres.png}
}
\column{0.4\columnwidth}
\begin{block}{Les classes de la cohérence causale}
\begin{itemize}
\item \textbf{WCC}: Weak Causal Consistency (V)
\item \textbf{CCv}: Causal Convergence (V, EC)
\end{itemize}
\end{block}
On respecte les propriétés suivantes :
\begin{itemize}
\item Localité d'état (SL)
\item Convergence (EC)
\end{itemize}
\end{columns}
\end{frame}