reorganisation
This commit is contained in:
33
docs/presentations/LIS/consistence_faible/définition/adt.tex
Executable file
33
docs/presentations/LIS/consistence_faible/définition/adt.tex
Executable file
@ -0,0 +1,33 @@
|
||||
\begin{frame}
|
||||
\frametitle{Les Types de données abstraits}
|
||||
|
||||
Pour communiquer entre eux, les processus doivent utiliser des objets partagés. \\
|
||||
|
||||
Pour spécifier la notion d'objets partagés nous allons d'abord cerner la notion de type de donnée abstrait :
|
||||
\begin{block}{Définition}
|
||||
Un type de donnée abstrait peut être défini par un automate tel que : $T = (A, B, Z, \zeta_0, \tau, \delta)$ \\
|
||||
Tel que :
|
||||
\begin{itemize}
|
||||
\item A est un ensemble dénombrable (alphabet d'entrée)
|
||||
\item B est un ensemble dénombrable (alphabet de sortie)
|
||||
\item Z est un ensemble dénombrable d'états abstraits
|
||||
\item $\zeta_0 \in Z$ est l'état initial
|
||||
\item $\tau$ est la fonction de transition ($Z \times A \rightarrow Z$)
|
||||
\item $\delta$ est la fonction de sortie ($Z \times A \rightarrow B$)
|
||||
\end{itemize}
|
||||
\end{block}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Les flux fenêtrés (Work in Progress)}
|
||||
|
||||
|
||||
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Les ensembles (Work in Progress)}
|
||||
|
||||
|
||||
|
||||
\end{frame}
|
0
docs/presentations/LIS/consistence_faible/définition/exemple.tex
Executable file
0
docs/presentations/LIS/consistence_faible/définition/exemple.tex
Executable file
7
docs/presentations/LIS/consistence_faible/définition/index.tex
Executable file
7
docs/presentations/LIS/consistence_faible/définition/index.tex
Executable file
@ -0,0 +1,7 @@
|
||||
\input{définition/intro.tex}
|
||||
|
||||
\subsection{Objets partagés}
|
||||
\include{définition/adt}
|
||||
|
||||
\subsection{Définition du modèle}
|
||||
\include{définition/modele}
|
50
docs/presentations/LIS/consistence_faible/définition/intro.tex
Executable file
50
docs/presentations/LIS/consistence_faible/définition/intro.tex
Executable file
@ -0,0 +1,50 @@
|
||||
\begin{frame}
|
||||
\frametitle{Problématique (Work in Progress)}
|
||||
|
||||
\begin{block}{Système distribué}
|
||||
Ce dit d'un système informatique dont les nœuds sont indépendant et reliés par un réseau informatique. Travaillant sur une tâche commune.
|
||||
\end{block}
|
||||
|
||||
\begin{columns}
|
||||
\column{0.4\textwidth}
|
||||
\begin{block}{Avantages}
|
||||
\begin{itemize}
|
||||
\item une répartition de la charge de travail entre plusieurs acteurs
|
||||
\item une meilleure tolérance aux pannes
|
||||
\end{itemize}
|
||||
\end{block}
|
||||
|
||||
\column{0.4\textwidth}
|
||||
|
||||
\begin{block}{Inconvénients}
|
||||
\begin{itemize}
|
||||
\item Introduit une notion de concurrence dans les tâches.
|
||||
\item Il faut définir ce qu'on considère acceptable.
|
||||
\end{itemize}
|
||||
\end{block}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Problématique (Work in Progress)}
|
||||
|
||||
\begin{columns}
|
||||
\column{0.6\textwidth}
|
||||
\resizebox{\columnwidth}{!}{
|
||||
\includegraphics{images/carte_criteres.png}
|
||||
}
|
||||
|
||||
\column{0.4\textwidth}
|
||||
\begin{block}{Les classes de cohérences}
|
||||
\begin{itemize}
|
||||
\item Introduites par PERRIN
|
||||
\item Objectifs :
|
||||
\begin{itemize}
|
||||
\item Classer les histoires créées par un algorithme.
|
||||
\item Créer une relation de dépendance entre les classes.
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{block}
|
||||
|
||||
\end{columns}
|
||||
\end{frame}
|
291
docs/presentations/LIS/consistence_faible/définition/modele.tex
Executable file
291
docs/presentations/LIS/consistence_faible/définition/modele.tex
Executable file
@ -0,0 +1,291 @@
|
||||
\begin{frame}
|
||||
\frametitle{Modèle}
|
||||
|
||||
\begin{columns}
|
||||
\column{0.4\textwidth}
|
||||
|
||||
\resizebox{\columnwidth}{!}{
|
||||
|
||||
\begin{tikzpicture}[
|
||||
roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,},
|
||||
arrow/.style={|->, thick,},
|
||||
]
|
||||
|
||||
\node[roundnode] (p0) {};
|
||||
\node[left] at (p0.west) {$p_0$};
|
||||
|
||||
\node[roundnode] (p1) [below=of p0] {};
|
||||
\node[left] at (p1.west) {$p_1$};
|
||||
|
||||
\node[roundnode] (p2) [right=of p1] {};
|
||||
\node[right] at (p2.east) {$p_2$};
|
||||
|
||||
\node[roundnode] (p3) [right=of p0] {};
|
||||
\node[right] at (p3.east) {$p_3$};
|
||||
|
||||
\draw (p0) -- (p1);
|
||||
\draw (p0) -- (p2);
|
||||
\draw (p0) -- (p3);
|
||||
\draw (p1) -- (p2);
|
||||
\draw (p1) -- (p3);
|
||||
\draw (p2) -- (p3);
|
||||
\end{tikzpicture}
|
||||
}
|
||||
|
||||
\column{0.6\textwidth}
|
||||
|
||||
\begin{block}{Prérequis}
|
||||
\begin{itemize}
|
||||
\item Tous les nœuds du système sont fortement connectés
|
||||
\item Le système n'est pas partitionnable
|
||||
\item Les nœuds sont asynchrones
|
||||
\item Les nœuds ne peuvent pas être défaillants
|
||||
\item Les nœuds ne peuvent pas être malicieux
|
||||
\end{itemize}
|
||||
\end{block}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Modèle}
|
||||
|
||||
\begin{columns}
|
||||
|
||||
\column{0.4\textwidth}
|
||||
|
||||
\centering
|
||||
\resizebox{0.75\columnwidth}{!}{
|
||||
\begin{tikzpicture}[
|
||||
roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,},
|
||||
]
|
||||
|
||||
\node[roundnode] (p0) {};
|
||||
\node[left] at (p0.west) {$p_0$};
|
||||
\onslide<3> {
|
||||
\node[above] at (p0.north) {$\textcolor{red}{w(1)}$};
|
||||
}
|
||||
\onslide<7> {
|
||||
\node[above] at (p0.north) {$\textcolor{red}{r/(1,2)^w}$};
|
||||
}
|
||||
|
||||
\node[roundnode] (p1) [below=of p0] {};
|
||||
\node[left] at (p1.west) {$p_1$};
|
||||
\onslide<2> {
|
||||
\node[below] at (p1.south) {$\textcolor{red}{r/(0,0)}$};
|
||||
}
|
||||
\onslide<5> {
|
||||
\node[below] at (p1.south) {$\textcolor{red}{w(2)}$};
|
||||
}
|
||||
\onslide<6> {
|
||||
\node[below] at (p1.south) {$\textcolor{red}{r/(1,2)}$};
|
||||
}
|
||||
\onslide<7> {
|
||||
\node[below] at (p1.south) {$\textcolor{red}{r/(1,2)^w}$};
|
||||
}
|
||||
|
||||
\node[roundnode] (p2) [right=of p1] {};
|
||||
\node[right] at (p2.east) {$p_2$};
|
||||
\onslide<4> {
|
||||
\node[below] at (p2.south) {$\textcolor{red}{r/(0,1)}$};
|
||||
}
|
||||
\onslide<6> {
|
||||
\node[below] at (p2.south) {$\textcolor{red}{r/(1,2)}$};
|
||||
}
|
||||
\onslide<7> {
|
||||
\node[below] at (p2.south) {$\textcolor{red}{r/(1,2)^w}$};
|
||||
}
|
||||
|
||||
\node[roundnode] (p3) [right=of p0] {};
|
||||
\node[right] at (p3.east) {$p_3$};
|
||||
\onslide<4> {
|
||||
\node[above] at (p3.north) {$\textcolor{red}{r/(0,1)}$};
|
||||
}
|
||||
\onslide<5> {
|
||||
\node[above] at (p3.north) {$\textcolor{red}{w(1)}$};
|
||||
}
|
||||
\onslide<6> {
|
||||
\node[above] at (p3.north) {$\textcolor{red}{r/(1,1)}$};
|
||||
}
|
||||
\onslide<7> {
|
||||
\node[above] at (p3.north) {$\textcolor{red}{r/(1,2)^w}$};
|
||||
}
|
||||
|
||||
\draw (p0) -- (p1);
|
||||
\draw (p0) -- (p2);
|
||||
\draw (p0) -- (p3);
|
||||
\draw (p1) -- (p2);
|
||||
\draw (p1) -- (p3);
|
||||
\draw (p2) -- (p3);
|
||||
\end{tikzpicture}
|
||||
}
|
||||
|
||||
\column{\textheight}
|
||||
|
||||
\begin{tabular}{l}
|
||||
$p_0 = \onslide<3->{w(1)} \onslide<7->{\bullet r/(1,2)^w}$ \\
|
||||
$p_1 = \onslide<2->{r/(0,0)} \onslide<5->{\bullet w(2)} \onslide<6->{\bullet r/(1,2)} \onslide<7->{\bullet r/(1,2)^w}$ \\
|
||||
$p_2 = \onslide<4->{r/(0,1)} \onslide<6->{\bullet r/(1,2)} \onslide<7->{\bullet r/(1,2)^w}$ \\
|
||||
$p_3 = \onslide<4->{r/(0,1)} \onslide<5->{\bullet w(1)} \onslide<6->{\bullet r/(1,1)} \onslide<7->{\bullet r/(1,2)^w}$ \\
|
||||
\end{tabular}
|
||||
|
||||
\end{columns}
|
||||
|
||||
\centering
|
||||
\resizebox{!}{\height}{
|
||||
|
||||
\begin{tikzpicture}[
|
||||
roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,},
|
||||
ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,},
|
||||
invisiblenode/.style={circle, draw=white, fill=white, very thick, minimum size=1pt,},
|
||||
arrow/.style={|->, thick,},
|
||||
message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}},
|
||||
]
|
||||
|
||||
\node[roundnode] (p00) {};
|
||||
\node[left] at (p00.west) {$p_0$};
|
||||
\node[above] at (p00.north) {$\{0\}$};
|
||||
|
||||
\node[roundnode] (p10) [below=20pt of p00] {};
|
||||
\node[left] at (p10.west) {$p_1$};
|
||||
\node[above] at (p10.north) {$\{0\}$};
|
||||
|
||||
\node[roundnode] (p20) [below=20pt of p10] {};
|
||||
\node[left] at (p20.west) {$p_2$};
|
||||
\node[above] at (p20.north) {$\{0\}$};
|
||||
|
||||
\node[roundnode] (p30) [below=20pt of p20] {};
|
||||
\node[left] at (p30.west) {$p_3$};
|
||||
\node[above] at (p30.north) {$\{0\}$};
|
||||
|
||||
\pause
|
||||
|
||||
\node[roundnode] (p01) [right=of p00] {};
|
||||
\node[above] at (p01.north) {$\{1\}$};
|
||||
|
||||
\draw[arrow] (p00) -- node[above] {tata} (p01);
|
||||
|
||||
|
||||
|
||||
% \onslide<3->{
|
||||
% \node[roundnode] (11) {};
|
||||
% \node[left] at (11.west) {$p_0$};
|
||||
% \node[above] at (11.north) {$w(1)$};
|
||||
% }
|
||||
% \onslide<7-> {
|
||||
% \node[roundnode] (12) [right=of 11] {};
|
||||
% \node[above] at (12.north) {$r/(1,2)^w$};
|
||||
|
||||
% \draw[arrow] (11) -- (12);
|
||||
% }
|
||||
|
||||
% \onslide<2-> {
|
||||
% \node[roundnode] (21) [below=20pt of 11] {};
|
||||
% \node[left] at (21.west) {$p_1$};
|
||||
% \node[above] at (21.north) {$r/(0,0)$};
|
||||
% }
|
||||
% \onslide<5-> {
|
||||
% \node[roundnode] (22) [right=of 21] {};
|
||||
% \node[above] at (22.north) {$w(2)$};
|
||||
|
||||
% \draw[arrow] (21) -- (22);
|
||||
% }
|
||||
% \onslide<6-> {
|
||||
% \node[roundnode] (23) [right=of 22] {};
|
||||
% \node[above] at (23.north) {$r/(1,2)$};
|
||||
|
||||
% \draw[arrow] (21) -- (23);
|
||||
% }
|
||||
% \onslide<7-> {
|
||||
% \node[roundnode] (24) [right=of 23] {};
|
||||
% \node[above] at (24.north) {$r/(1,2)^w$};
|
||||
|
||||
% \draw[arrow] (21) -- (24);
|
||||
% }
|
||||
|
||||
% \onslide<4-> {
|
||||
% \node[roundnode] (31) [below=20pt of 21] {};
|
||||
% \node[left] at (31.west) {$p_2$};
|
||||
% \node[above] at (31.north) {$r/(0,1)$};
|
||||
% }
|
||||
% \onslide<6-> {
|
||||
% \node[roundnode] (32) [right=of 31] {};
|
||||
% \node[above] at (32.north) {$r/(1,2)$};
|
||||
|
||||
% \draw[arrow] (31) -- (32);
|
||||
% }
|
||||
% \onslide<7-> {
|
||||
% \node[roundnode] (33) [right=of 32] {};
|
||||
% \node[above] at (33.north) {$r/(1,2)^w$};
|
||||
|
||||
% \draw[arrow] (31) -- (33);
|
||||
% }
|
||||
|
||||
% \onslide<4-> {
|
||||
% \node[roundnode] (41) [below=20pt of 31] {};
|
||||
% \node[left] at (41.west) {$p_3$};
|
||||
% \node[above] at (41.north) {$r/(0,1)$};
|
||||
% }
|
||||
% \onslide<5-> {
|
||||
% \node[roundnode] (42) [right=of 41] {};
|
||||
% \node[above] at (42.north) {$w(1)$};
|
||||
|
||||
% \draw[arrow] (41) -- (42);
|
||||
% }
|
||||
% \onslide<6-> {
|
||||
% \node[roundnode] (43) [right=of 42] {};
|
||||
% \node[above] at (43.north) {$r/(1,1)$};
|
||||
|
||||
% \draw[arrow] (41) -- (43);
|
||||
% }
|
||||
% \onslide<7-> {
|
||||
% \node[roundnode] (44) [right=of 43] {};
|
||||
% \node[above] at (44.north) {$r/(1,2)^w$};
|
||||
|
||||
% \draw[arrow] (41) -- (44);
|
||||
% }
|
||||
|
||||
\end{tikzpicture}
|
||||
}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Modèle}
|
||||
|
||||
\resizebox{\columnwidth}{!}{
|
||||
\begin{tikzpicture}[
|
||||
roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,},
|
||||
ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,},
|
||||
arrow/.style={|->, thick,},
|
||||
message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}},
|
||||
]
|
||||
|
||||
\node[roundnode] (11) {};
|
||||
\node[left] at (11.west) {$p_0$};
|
||||
\node[above] at (11.north) {$w(1)$};
|
||||
\node[roundnode] (12) [right=of 11] {};
|
||||
\node[above] at (12.north) {$I(a)$};
|
||||
\node[roundnode] (13) [right=of 12] {};
|
||||
\node[above] at (13.north) {$r/(0,1)$};
|
||||
\node[roundnode] (14) [right=of 13] {};
|
||||
\node[above] at (14.north) {$r/(1,2)^w$};
|
||||
|
||||
\draw[arrow] (11) -- (12);
|
||||
\draw[arrow] (12) -- (13);
|
||||
\draw[arrow] (13) -- (14);
|
||||
|
||||
\node[roundnode] (21) [below=of 11] {};
|
||||
\node[left] at (21.west) {$p_1$};
|
||||
\node[below] at (21.south) {$w(2)$};
|
||||
\node[roundnode] (22) [right=of 21] {};
|
||||
\node[below] at (22.south) {$R/\emptyset$};
|
||||
\node[roundnode] (23) [right=of 22] {};
|
||||
\node[below] at (23.south) {$r/(0,2)$};
|
||||
\node[roundnode] (24) [right=of 23] {};
|
||||
\node[below] at (24.south) {$r/(1,2)^w$};
|
||||
|
||||
\draw[arrow] (21) -- (22);
|
||||
\draw[arrow] (22) -- (23);
|
||||
\draw[arrow] (23) -- (24);
|
||||
\end{tikzpicture}
|
||||
}
|
||||
\end{frame}
|
BIN
docs/presentations/LIS/consistence_faible/images/carte_criteres.png
Executable file
BIN
docs/presentations/LIS/consistence_faible/images/carte_criteres.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 159 KiB |
52
docs/presentations/LIS/consistence_faible/main.tex
Executable file
52
docs/presentations/LIS/consistence_faible/main.tex
Executable file
@ -0,0 +1,52 @@
|
||||
\documentclass{beamer}
|
||||
\usetheme{Boadilla}
|
||||
\usecolortheme{orchid}
|
||||
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[french]{babel}
|
||||
\usepackage{stackengine}
|
||||
|
||||
\addtobeamertemplate{navigation symbols}{}{%
|
||||
\usebeamerfont{footline}%
|
||||
\usebeamercolor[fg]{footline}%
|
||||
\hspace{1em}%
|
||||
\insertframenumber/\inserttotalframenumber
|
||||
}
|
||||
\usepackage{ulem}
|
||||
\usepackage{tkz-tab}
|
||||
\setbeamertemplate{blocks}[rounded]%
|
||||
[shadow=true]
|
||||
\AtBeginSection{%
|
||||
\begin{frame}
|
||||
\tableofcontents[sections=\value{section}]
|
||||
\end{frame}
|
||||
}
|
||||
|
||||
\usepackage{tikz}
|
||||
\usetikzlibrary{positioning}
|
||||
\usetikzlibrary{calc}
|
||||
\usetikzlibrary{arrows.meta}
|
||||
|
||||
\title[bwconsistency]{Cohérence faible byzantine appliquée au cloud}
|
||||
\subtitle{Présentation intermédiaire : Cohérence faible}
|
||||
\author[JOLY Amaury]{JOLY Amaury\\ \textbf{Encadrants :} GODARD Emmanuel, TRAVERS Corentin }
|
||||
% \\[2ex] \includegraphics[scale=0.1]{./img/amu.png}
|
||||
\institute[LIS, Scille]{LIS-LAB, Scille}
|
||||
\date{\today}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\maketitle
|
||||
|
||||
\begin{frame}{Table des matières}
|
||||
\tableofcontents
|
||||
\end{frame}
|
||||
|
||||
\section{Introduction}
|
||||
\input{définition/index.tex}
|
||||
|
||||
\section{Les propriétés de la Cohérence Faible}
|
||||
\input{wconsistence_properties/index.tex}
|
||||
|
||||
\end{document}
|
27
docs/presentations/LIS/consistence_faible/script.md
Executable file
27
docs/presentations/LIS/consistence_faible/script.md
Executable file
@ -0,0 +1,27 @@
|
||||
# Script présentation Cohérence Faible
|
||||
|
||||
## Plan
|
||||
|
||||
1. Présenter un processus séquentiel classique
|
||||
- exemple : processeur monocœur
|
||||
2. Introduire le concept de cohérence via la cohérence forte (le plus intuitif)
|
||||
- exemple : processeur multicœur, application distribuée centralisée.
|
||||
- notions : respect de l'ordre, atomicité, isolation
|
||||
3. Introduire le concept de cohérence faible
|
||||
- exemple : application distribuée décentralisée
|
||||
4. Définir les propriétés d'un système réparti
|
||||
5. Définir les différents modèles de cohérence faible (des plus trivial aux moins)
|
||||
1. Cohérence Séquentielle (SC)
|
||||
2. Linéarisabilité -> Serialisabilité
|
||||
3. Convergence/Convergence Forte
|
||||
1. Définit le concept de convergence
|
||||
2. Pourquoi ? + les apports de la convergence forte
|
||||
3. Types de données basés sur la convergence (pourquoi ?)
|
||||
4. Cohérence Pipeline
|
||||
1. On présente la notion d'Intention
|
||||
2. On l'oppose à la cohérence Pipeline
|
||||
|
||||
6. Cohérence d'écriture
|
||||
1. Ce que ne couvre pas les modèles précédents
|
||||
2. Cohérence d'écriture et cohérence d'écriture forte.
|
||||
|
@ -0,0 +1,41 @@
|
||||
\resizebox{\columnwidth}{!}{
|
||||
\begin{tikzpicture}[
|
||||
roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,},
|
||||
ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,},
|
||||
arrow/.style={|->, thick,},
|
||||
message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}},
|
||||
]
|
||||
|
||||
\node[roundnode] (11) {};
|
||||
\node[left] at (11.west) {$p_0$};
|
||||
\node[above] at (11.north) {$w(1)$};
|
||||
\node[roundnode] (12) [right=of 11] {};
|
||||
\node[above] at (12.north) {$I(a)$};
|
||||
\node[roundnode] (13) [right=of 12] {};
|
||||
\node[above] at (13.north) {$r/(0,1)$};
|
||||
\node[roundnode] (14) [right=35pt of 13] {};
|
||||
\node[above] at (14.north) {$r/(1,2)^w$};
|
||||
|
||||
\draw[arrow] (11) -- (12);
|
||||
\draw[arrow] (12) -- (13);
|
||||
\draw[arrow] (13) -- (14);
|
||||
|
||||
\node[roundnode] (21) [below=of 11] {};
|
||||
\node[left] at (21.west) {$p_1$};
|
||||
\node[below] at (21.south) {$w(2)$};
|
||||
\node[roundnode] (22) [right=of 21] {};
|
||||
\node[below] at (22.south) {$R/\emptyset$};
|
||||
\node[roundnode] (23) [right=of 22] {};
|
||||
\node[below] at (23.south) {$r/(0,2)$};
|
||||
\node[roundnode] (24) [right=35pt of 23] {};
|
||||
\node[below] at (24.south) {$r/(1,2)^w$};
|
||||
|
||||
\draw[arrow] (21) -- (22);
|
||||
\draw[arrow] (22) -- (23);
|
||||
\draw[arrow] (23) -- (24);
|
||||
|
||||
\draw (24) -- (14);
|
||||
|
||||
\draw[dashed] ($(14)!0.5!(13) + (0,1)$) -- ++(0, -3.5);
|
||||
\end{tikzpicture}
|
||||
}
|
178
docs/presentations/LIS/consistence_faible/wconsistence_properties/index.tex
Executable file
178
docs/presentations/LIS/consistence_faible/wconsistence_properties/index.tex
Executable file
@ -0,0 +1,178 @@
|
||||
\begin{frame}
|
||||
\frametitle{Linéarisation}
|
||||
\begin{block}{Définition}
|
||||
Un ensemble d'événement est dit linéarisable s'il existe une séquence d'événement qui respecte les 3 propriétés suivantes :
|
||||
\begin{itemize}
|
||||
\item \textbf{Sûreté}
|
||||
\item \textbf{Régularité}
|
||||
\item \textbf{Atomicité}
|
||||
\end{itemize}
|
||||
\end{block}
|
||||
\end{frame}
|
||||
|
||||
\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}
|
||||
\include{wconsistence_properties/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}
|
||||
\include{wconsistence_properties/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}
|
||||
\include{wconsistence_properties/linearisation_atomicite_hc}
|
||||
\end{figure}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Les classes de cohérence}
|
||||
\begin{columns}
|
||||
\column{0.5\textwidth}
|
||||
\resizebox{\columnwidth}{!}{
|
||||
\includegraphics{images/carte_criteres.png}
|
||||
}
|
||||
|
||||
\column{0.5\textwidth}
|
||||
Une approche pour définir la cohérence d'un algorithme est de placer l'histoire concurrente qu'il produit dans une classe de cohérence. \\
|
||||
Nous pouvons définir 3 classes de cohérence : %citer Perrin
|
||||
\begin{itemize}
|
||||
\item La \textbf{Localité d'état} (LS)
|
||||
\item La \textbf{Validité} (V)
|
||||
\item La \textbf{Convergence} (EC)
|
||||
\end{itemize}
|
||||
\end{columns}
|
||||
|
||||
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Localité d'état (LS)}
|
||||
|
||||
\begin{columns}
|
||||
\column{0.4\textwidth}
|
||||
\include{wconsistence_properties/localiteetat_hc}
|
||||
\column{0.6\textwidth}
|
||||
\begin{block}{Définition}
|
||||
Pour tout processus $p$, il existe une linéarisation contenant toutes les lectures pures de $p$. \\
|
||||
\end{block}
|
||||
\begin{math}
|
||||
\begin{array}{ll}
|
||||
e.g.: & \textcolor{blue}{C_{p_1} = \{r/(0,0), r/(0,2)^w, w(2)\}}, \\
|
||||
& \textcolor{red}{C_{p_2} = \{r/(0,0), r/(0,1)^w, w(1)\}}, \\
|
||||
& \textcolor{blue}{r/(0,0) \bullet w(2) \bullet r/(0,2)^w} \\
|
||||
& \textcolor{red}{r/(0,0) \bullet w(1) \bullet r/(0,1)^w} \\
|
||||
\end{array}
|
||||
\end{math}
|
||||
\end{columns}
|
||||
|
||||
|
||||
\begin{flushright}
|
||||
\begin{math}
|
||||
LS = \left\{
|
||||
\begin{array}{l}
|
||||
\mathcal{T} \rightarrow \mathcal{P}(\mathcal{H}) \\
|
||||
T \rightarrow \left\{
|
||||
\begin{tabular}{lll}
|
||||
$H \in \mathcal{H}:$ & \multicolumn{2}{l}{$\forall p \in \mathcal{P}_H, \exists C_p \subset E_H,$} \\
|
||||
& & $\hat{Q}_{T,H} \subset C_p$ \\
|
||||
& $\land$ & $lin(H[p \cap C_p / C_p]) \cap L(T) \neq \emptyset$ \\
|
||||
\end{tabular}
|
||||
\right. \\
|
||||
\end{array}
|
||||
\right.
|
||||
\end{math}
|
||||
\end{flushright}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Validité (V)}
|
||||
|
||||
\begin{columns}
|
||||
\column{0.4\textwidth}
|
||||
\include{wconsistence_properties/validite_hc}
|
||||
\column{0.6\textwidth}
|
||||
\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{math}
|
||||
\begin{array}{ll}
|
||||
e.g.: & E' = \{r/(2,1)^w, r/(1,2)^w\} \\
|
||||
& w(2) \bullet w(1) \bullet \textcolor{red}{r/(2,1)^w} \\
|
||||
& w(1) \bullet w(2) \bullet \textcolor{red}{r/(1,2)^w} \\
|
||||
\end{array}
|
||||
\end{math}
|
||||
\end{columns}
|
||||
|
||||
|
||||
\begin{flushright}
|
||||
\begin{math}
|
||||
V = \left\{
|
||||
\begin{array}{l}
|
||||
\mathcal{T} \rightarrow \mathcal{P}(\mathcal{H}) \\
|
||||
T \rightarrow \left\{
|
||||
\begin{array}{lll}
|
||||
H \in \mathcal{H}: & \multicolumn{2}{l}{|U_{T,H}| = \infty} \\
|
||||
& \lor & \exists E' \subset E_H, (|E_H \setminus E'| < \infty \\
|
||||
& & \land \forall e \in E', lin(H[E_H / {e}]) \cap L(T) \neq \emptyset) \\
|
||||
\end{array}
|
||||
\right. \\
|
||||
\end{array}
|
||||
\right.
|
||||
\end{math}
|
||||
\end{flushright}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Convergence (EC)}
|
||||
|
||||
\begin{columns}
|
||||
\column{0.4\textwidth}
|
||||
\include{wconsistence_properties/convergence_hc}%
|
||||
\column{0.5\textwidth}
|
||||
\begin{block}{Définition}
|
||||
Il existe un ensemble cofini d'événements dont chacun peut être justifié par une seule linéarisation. \\
|
||||
\end{block}
|
||||
\begin{math}
|
||||
\begin{array}{ll}
|
||||
e.g.: & E' = \{r/(1,2)^w, r/(1,2)^w\} \\
|
||||
& w(1) \bullet w(2) \bullet \textcolor{red}{r/(1,2)^w} \\
|
||||
\end{array}
|
||||
\end{math}
|
||||
\end{columns}
|
||||
|
||||
|
||||
\begin{flushright}
|
||||
\begin{math}
|
||||
EC = \left\{
|
||||
\begin{array}{l}
|
||||
\mathcal{T} \rightarrow \mathcal{P}(\mathcal{H}) \\
|
||||
T \rightarrow \left\{
|
||||
\begin{array}{lll}
|
||||
H \in \mathcal{H}: & \multicolumn{2}{l}{|U_{T,H}| = \infty} \\
|
||||
& \lor & \exists E' \subset E_H, |E_H \setminus E'| < \infty \\
|
||||
& & \land \displaystyle\bigcap_{e \in E'} \delta_T^{-1}(\lambda(e)) \neq \emptyset \\
|
||||
\end{array}
|
||||
\right. \\
|
||||
\end{array}
|
||||
\right.
|
||||
\end{math}
|
||||
\end{flushright}
|
||||
\end{frame}
|
@ -0,0 +1,31 @@
|
||||
\resizebox{\columnwidth}{!}{%
|
||||
\begin{tikzpicture}[
|
||||
roundedrectangle/.style={draw, rounded corners, rectangle, minimum height=10pt, minimum width=20pt},
|
||||
invisible/.style={draw=none, fill=none},
|
||||
]
|
||||
|
||||
\node[invisible] (10) {};
|
||||
\node[roundedrectangle] (11) [right=60pt of 10] {\textcolor{blue}{$r_x(0,0)$}};
|
||||
\node[roundedrectangle, minimum width=100pt] (12) [right=50pt of 11] {$w_x(1)$};
|
||||
\node[invisible] (13) [right=100pt of 12] {};
|
||||
|
||||
\node[invisible] (20) [below=15pt of 10] {};
|
||||
\node[roundedrectangle] (21) [right=20pt of 20] {\textcolor{blue}{$r_x/(0,0)$}};
|
||||
\node[roundedrectangle] (22) [right=50pt of 21] {\textcolor{red}{$r_x/(0,1)$}};
|
||||
\node[roundedrectangle] (23) [right=15pt of 22] {\textcolor{red}{$r_x/(0,1)$}};
|
||||
\node[roundedrectangle] (24) [right=10pt of 23] {\textcolor{red}{$r_x/(0,1)$}};
|
||||
\node[roundedrectangle] (25) [right=20pt of 24] {\textcolor{red}{$r_x/(0,1)$}};
|
||||
\node[invisible] (26) [below=15pt of 13] {};
|
||||
|
||||
\node[invisible] (30) [below=15pt of 20] {};
|
||||
\node[roundedrectangle] (31) [right=30pt of 30] {\textcolor{blue}{$r_x/(0,0)$}};
|
||||
\node[roundedrectangle] (32) [right=55pt of 31] {\textcolor{blue}{$r_x/(0,0)$}};
|
||||
\node[roundedrectangle] (33) [right=15pt of 32] {\textcolor{red}{$r_x/(0,1)$}};
|
||||
\node[roundedrectangle] (34) [right=25pt of 33] {\textcolor{red}{$r_x/(0,1)$}};
|
||||
\node[invisible] (35) [below=15pt of 26] {};
|
||||
|
||||
\draw (10) -- (11) -- (12) -- (13);
|
||||
\draw (20) -- (21) -- (22) -- (23) -- (24) -- (25) -- (26);
|
||||
\draw (30) -- (31) -- (32) -- (33) -- (34) -- (35);
|
||||
\end{tikzpicture}
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
\resizebox{\columnwidth}{!}{%
|
||||
\begin{tikzpicture}[
|
||||
roundedrectangle/.style={draw, rounded corners, rectangle, minimum height=10pt, minimum width=20pt},
|
||||
invisible/.style={draw=none, fill=none},
|
||||
]
|
||||
|
||||
\node[invisible] (10) {};
|
||||
\node[roundedrectangle] (11) [right=60pt of 10] {\textcolor{blue}{$r_x(0,0)$}};
|
||||
\node[roundedrectangle, minimum width=100pt] (12) [right=50pt of 11] {$w_x(1)$};
|
||||
\node[invisible] (13) [right=100pt of 12] {};
|
||||
|
||||
\node[invisible] (20) [below=15pt of 10] {};
|
||||
\node[roundedrectangle] (21) [right=20pt of 20] {\textcolor{blue}{$r_x/(0,0)$}};
|
||||
\node[roundedrectangle] (22) [right=50pt of 21] {\textcolor{red!70}{$r_x/(0,1)$}};
|
||||
\node[roundedrectangle] (23) [right=15pt of 22] {\textcolor{blue!70}{$r_x/(0,0)$}};
|
||||
\node[roundedrectangle] (24) [right=10pt of 23] {\textcolor{blue!70}{$r_x/(0,0)$}};
|
||||
\node[roundedrectangle] (25) [right=20pt of 24] {\textcolor{red}{$r_x/(0,1)$}};
|
||||
\node[invisible] (26) [below=15pt of 13] {};
|
||||
|
||||
\draw (10) -- (11) -- (12) -- (13);
|
||||
\draw (20) -- (21) -- (22) -- (23) -- (24) -- (25) -- (26);
|
||||
\end{tikzpicture}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
\resizebox{\columnwidth}{!}{%
|
||||
\begin{tikzpicture}[
|
||||
roundedrectangle/.style={draw, rounded corners, rectangle, minimum height=10pt, minimum width=20pt},
|
||||
invisible/.style={draw=none, fill=none},
|
||||
]
|
||||
|
||||
\node[invisible] (10) {};
|
||||
\node[roundedrectangle] (11) [right=60pt of 10] {\textcolor{blue}{$r_x(0,0)$}};
|
||||
\node[roundedrectangle, minimum width=100pt] (12) [right=50pt of 11] {$w_x(1)$};
|
||||
\node[invisible] (13) [right=65pt of 12] {};
|
||||
|
||||
\node[invisible] (20) [below=15pt of 10] {};
|
||||
\node[roundedrectangle] (21) [right=20pt of 20] {\textcolor{blue}{$r_x/(0,0)$}};
|
||||
\node[roundedrectangle] (22) [right=25pt of 21] {\textcolor{blue}{$r_x/(0,0)$}};
|
||||
\node[roundedrectangle] (23) [right=30pt of 22] {\textcolor{black!70}{$r_x/(?)$}};
|
||||
\node[roundedrectangle] (24) [right=55pt of 23] {\textcolor{red}{$r_x/(0,1)$}};
|
||||
\node[invisible] (25) [below=15pt of 13] {};
|
||||
|
||||
\draw (10) -- (11) -- (12) -- (13);
|
||||
\draw (20) -- (21) -- (22) -- (23) -- (24) -- (25);
|
||||
\end{tikzpicture}
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
\resizebox{\columnwidth}{!}{%
|
||||
\begin{tikzpicture}[
|
||||
roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,},
|
||||
ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,},
|
||||
arrow/.style={|->, thick,},
|
||||
message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}},
|
||||
]
|
||||
|
||||
\node[roundnode, draw=red, fill=red] (11) {};
|
||||
\node[left] at (11.west) {$p_0$};
|
||||
\node[above] at (11.north) {$w(1)$};
|
||||
\node[roundnode, draw=blue, fill=blue] (12) [right=of 11] {};
|
||||
\node[above] at (12.north) {$r/(0,0)$};
|
||||
\node[roundnode, draw=blue, fill=blue] (13) [right=of 12] {};
|
||||
\node[above] at (13.north) {$r/(0,2)^w$};
|
||||
|
||||
\draw[arrow] (11) -- (12);
|
||||
\draw[arrow] (12) -- (13);
|
||||
|
||||
\node[roundnode, draw=blue, fill=blue] (21) [below=of 11] {};
|
||||
\node[left] at (21.west) {$p_1$};
|
||||
\node[below] at (21.south) {$w(2)$};
|
||||
\node[roundnode, draw=red, fill=red] (22) [right=of 21] {};
|
||||
\node[below] at (22.south) {$r/(0,0)$};
|
||||
\node[roundnode, draw=red, fill=red] (23) [right=of 22] {};
|
||||
\node[below] at (23.south) {$r/(0,1)^w$};
|
||||
|
||||
\draw[arrow] (21) -- (22);
|
||||
\draw[arrow] (22) -- (23);
|
||||
|
||||
\draw[message] (11) -- ($(22)!0.5!(23)$);
|
||||
\draw[message] (21) -- ($(12)!0.5!(13)$);
|
||||
\end{tikzpicture}
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
\resizebox{\columnwidth}{!}{%
|
||||
\begin{tikzpicture}[
|
||||
roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,},
|
||||
ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,},
|
||||
arrow/.style={|->, thick,},
|
||||
message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}},
|
||||
]
|
||||
|
||||
\node[roundnode] (11) {};
|
||||
\node[left] at (11.west) {$p_0$};
|
||||
\node[above] at (11.north) {$w(1)$};
|
||||
\node[roundnode] (12) [right=of 11] {};
|
||||
\node[above] at (12.north) {$r/(0,1)$};
|
||||
\node[roundnode] (13) [right=of 12] {};
|
||||
\node[above] at (13.north) {$r/(2,1)^w$};
|
||||
|
||||
\draw[arrow] (11) -- (12);
|
||||
\draw[arrow] (12) -- (13);
|
||||
|
||||
\node[roundnode] (21) [below=of 11] {};
|
||||
\node[left] at (21.west) {$p_1$};
|
||||
\node[below] at (21.south) {$w(2)$};
|
||||
\node[roundnode] (22) [right=of 21] {};
|
||||
\node[below] at (22.south) {$r/(0,2)$};
|
||||
\node[roundnode] (23) [right=of 22] {};
|
||||
\node[below] at (23.south) {$r/(1,2)^w$};
|
||||
|
||||
\draw[arrow] (21) -- (22);
|
||||
\draw[arrow] (22) -- (23);
|
||||
\end{tikzpicture}
|
||||
}
|
69
docs/presentations/LIS/vanderlinde/corps/attaques.tex
Executable file
69
docs/presentations/LIS/vanderlinde/corps/attaques.tex
Executable file
@ -0,0 +1,69 @@
|
||||
\begin{frame}
|
||||
\frametitle{Résumé de l'article}
|
||||
|
||||
\begin{block}{Apports}
|
||||
\begin{itemize}
|
||||
\item Formalisation des attaques possibles sur les systèmes satisfaisant la convergence causale.
|
||||
\item Définition de propriétés permettant de contrer ou de limiter ces attaques.
|
||||
\item Formalisation de "nouvelles" classes de cohérence faible étendant la cohérence causale à ces propriétés : "Secure Causal Consistency".
|
||||
\item Présentation d'algorithmes produisant des histoires satisfaisant cette classe.
|
||||
\item Expérimentation de ces algorithmes et comparaison avec les algorithmes existants.
|
||||
\end{itemize}
|
||||
\end{block}
|
||||
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Résumé de l'article}
|
||||
|
||||
\begin{block}{Attentes}
|
||||
Les auteurs cherchent à produire un algorithme maximisant l'interactivité et donc minimisant la latence. \newline
|
||||
L'architecture étudiée est une architecture client-serveur, avec une connectivité en pair à pair entre les clients.
|
||||
\end{block}
|
||||
|
||||
Illustration de l'architecture
|
||||
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Attaques}
|
||||
|
||||
\begin{block}{Attaques}
|
||||
\begin{itemize}
|
||||
\item \textbf{Tempering} : Anticipation d'une opération reçue par le système, mais pas encore exécutée par l'ensemble des nœuds.
|
||||
\item \textbf{Omitting Dependencies} : Création d'une opération suivant un sous ensemble des dépendances réelles.
|
||||
\item \textbf{Unseen Dependencies} : Anticipation d'une opération non reçue par le système, mais probable d'arrivée.
|
||||
\item \textbf{Sibling Generation} : Création de deux opérations différentes possédant le même identifiant. Réalisant ainsi une divergence entre les nœuds.
|
||||
\end{itemize}
|
||||
\end{block}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Propriétés}
|
||||
|
||||
\begin{block}{Propriétés}
|
||||
\begin{itemize}
|
||||
\item \textbf{Immutable History} : Chaque opération est envoyée avec son passé causal. (Parade le \textbf{Tempering})
|
||||
\item \textbf{No Future Dependencies} : Chaque opération est envoyée avec l'état qu'il connait des nœuds. (Parade l'\textbf{Unseen Dependencies}, il devient impossible de créer une opération à l'avance).
|
||||
\item \textbf{Causal Execution} : Toute opération $o_i$ appartenant au passé causal d'une opération $o$ doit être sérialisable t.q. : $o_i < o$. (Fait office de synchronisation entre les nœuds)
|
||||
\item \textbf{Eventual Sibling Detection} : Les opérations sont considérées comme des "jumeaux" éventuels et sont donc "révocables" via une nouvelle opération dédiée. (Parade (relativement) le \textbf{Sibling Generation})
|
||||
\item \textbf{Limited Omission} : à travailler
|
||||
\end{itemize}
|
||||
\end{block}
|
||||
|
||||
Ces propriétés définissent la première classe que les auteurs introduisent : \textbf{Secure Causal Consistency}.
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Les différentes classes de cohérence faible}
|
||||
|
||||
\begin{block}{Les différentes classes de cohérence faible}
|
||||
\begin{itemize}
|
||||
\item \textbf{Secure Causal Consistency} : Respecte les propriétés précédentes ainsi que celles introduites par la convergence causale.
|
||||
\item \textbf{Secure Strict Causal Consistency} : Extension de la précédente, mais avec un ordre total basé sur la vision d'un observateur externe.
|
||||
\item \textbf{Extended Secure Causal Consistency} :
|
||||
\end{itemize}
|
||||
\end{block}
|
||||
|
||||
|
||||
\end{frame}
|
1
docs/presentations/LIS/vanderlinde/corps/index.tex
Executable file
1
docs/presentations/LIS/vanderlinde/corps/index.tex
Executable file
@ -0,0 +1 @@
|
||||
\input{corps/attaques.tex}
|
BIN
docs/presentations/LIS/vanderlinde/images/carte_criteres.png
Executable file
BIN
docs/presentations/LIS/vanderlinde/images/carte_criteres.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 159 KiB |
88
docs/presentations/LIS/vanderlinde/intro/coherencecausale.tex
Executable file
88
docs/presentations/LIS/vanderlinde/intro/coherencecausale.tex
Executable 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}
|
36
docs/presentations/LIS/vanderlinde/intro/history.tex
Executable file
36
docs/presentations/LIS/vanderlinde/intro/history.tex
Executable 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}
|
11
docs/presentations/LIS/vanderlinde/intro/index.tex
Executable file
11
docs/presentations/LIS/vanderlinde/intro/index.tex
Executable 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}
|
45
docs/presentations/LIS/vanderlinde/intro/linearisabilite.tex
Executable file
45
docs/presentations/LIS/vanderlinde/intro/linearisabilite.tex
Executable 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}
|
147
docs/presentations/LIS/vanderlinde/intro/rappel.tex
Executable file
147
docs/presentations/LIS/vanderlinde/intro/rappel.tex
Executable 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}
|
58
docs/presentations/LIS/vanderlinde/main.tex
Executable file
58
docs/presentations/LIS/vanderlinde/main.tex
Executable file
@ -0,0 +1,58 @@
|
||||
\documentclass{beamer}
|
||||
\usetheme{Boadilla}
|
||||
\usecolortheme{orchid}
|
||||
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[french]{babel}
|
||||
\usepackage{stackengine}
|
||||
|
||||
\addtobeamertemplate{navigation symbols}{}{%
|
||||
\usebeamerfont{footline}%
|
||||
\usebeamercolor[fg]{footline}%
|
||||
\hspace{1em}%
|
||||
\insertframenumber/\inserttotalframenumber
|
||||
}
|
||||
\usepackage{ulem}
|
||||
\usepackage{tkz-tab}
|
||||
\setbeamertemplate{blocks}[rounded]%
|
||||
[shadow=true]
|
||||
\AtBeginSection{%
|
||||
\begin{frame}
|
||||
\tableofcontents[sections=\value{section}]
|
||||
\end{frame}
|
||||
}
|
||||
|
||||
\usepackage{tikz}
|
||||
\usetikzlibrary{positioning}
|
||||
\usetikzlibrary{calc}
|
||||
\usetikzlibrary{arrows.meta}
|
||||
|
||||
\usepackage{tcolorbox}
|
||||
|
||||
\usepackage{chronosys}
|
||||
|
||||
\title[bwconsistency]{Cohérence faible byzantine appliquée au cloud}
|
||||
\subtitle{Présentation intermédiaire: "Practical Client-side Replication: Weak Consistency Semantics for Insecure Settings"}
|
||||
\author[JOLY Amaury]{JOLY Amaury\\ \textbf{Encadrants :} GODARD Emmanuel, TRAVERS Corentin }
|
||||
% \\[2ex] \includegraphics[scale=0.1]{./img/amu.png}
|
||||
\institute[LIS, Scille]{LIS-LAB, Scille}
|
||||
\date{\today}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\maketitle
|
||||
|
||||
\begin{frame}{Table des matières}
|
||||
\tableofcontents
|
||||
\end{frame}
|
||||
|
||||
\section{Introduction}
|
||||
\input{intro/index.tex}
|
||||
|
||||
\input{corps/index.tex}
|
||||
|
||||
% \section{Les propriétés de la Cohérence Faible}
|
||||
% \input{wconsistence_properties/index.tex}
|
||||
|
||||
\end{document}
|
BIN
docs/presentations/LIS/vanderlinde/schemas/ccv_hc_1.png
Executable file
BIN
docs/presentations/LIS/vanderlinde/schemas/ccv_hc_1.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 72 KiB |
41
docs/presentations/LIS/vanderlinde/schemas/convergence_hc_1.tex
Executable file
41
docs/presentations/LIS/vanderlinde/schemas/convergence_hc_1.tex
Executable file
@ -0,0 +1,41 @@
|
||||
\resizebox{\columnwidth}{!}{
|
||||
\begin{tikzpicture}[
|
||||
roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,},
|
||||
ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,},
|
||||
arrow/.style={|->, thick,},
|
||||
message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}},
|
||||
]
|
||||
|
||||
\node[roundnode] (11) {};
|
||||
\node[left] at (11.west) {$p_0$};
|
||||
\node[above] at (11.north) {$w(1)$};
|
||||
\node[roundnode] (12) [right=of 11] {};
|
||||
\node[above] at (12.north) {$I(a)$};
|
||||
\node[roundnode] (13) [right=of 12] {};
|
||||
\node[above] at (13.north) {$r/(0,1)$};
|
||||
\node[roundnode] (14) [right=35pt of 13] {};
|
||||
\node[above] at (14.north) {$r/(1,2)^\omega$};
|
||||
|
||||
\draw[arrow] (11) -- (12);
|
||||
\draw[arrow] (12) -- (13);
|
||||
\draw[arrow] (13) -- (14);
|
||||
|
||||
\node[roundnode] (21) [below=10pt of 11] {};
|
||||
\node[left] at (21.west) {$p_1$};
|
||||
\node[below] at (21.south) {$w(2)$};
|
||||
\node[roundnode] (22) [right=of 21] {};
|
||||
\node[below] at (22.south) {$R/\emptyset$};
|
||||
\node[roundnode] (23) [right=of 22] {};
|
||||
\node[below] at (23.south) {$r/(0,2)$};
|
||||
\node[roundnode] (24) [right=35pt of 23] {};
|
||||
\node[below] at (24.south) {$r/(1,2)^\omega$};
|
||||
|
||||
\draw[arrow] (21) -- (22);
|
||||
\draw[arrow] (22) -- (23);
|
||||
\draw[arrow] (23) -- (24);
|
||||
|
||||
\draw (24) -- (14);
|
||||
|
||||
\draw[dashed] ($(14)!0.5!(13) + (0,1)$) -- ++(0, -2.9);
|
||||
\end{tikzpicture}
|
||||
}
|
41
docs/presentations/LIS/vanderlinde/schemas/convergence_hc_2.tex
Executable file
41
docs/presentations/LIS/vanderlinde/schemas/convergence_hc_2.tex
Executable file
@ -0,0 +1,41 @@
|
||||
\resizebox{\columnwidth}{!}{
|
||||
\begin{tikzpicture}[
|
||||
roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,},
|
||||
ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,},
|
||||
arrow/.style={|->, thick,},
|
||||
message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}},
|
||||
]
|
||||
|
||||
\node[roundnode] (11) {};
|
||||
\node[left] at (11.west) {$p_0$};
|
||||
\node[above] at (11.north) {$w(1)$};
|
||||
\node[roundnode] (12) [right=of 11] {};
|
||||
\node[above] at (12.north) {$I(a)$};
|
||||
\node[roundnode] (13) [right=of 12] {};
|
||||
\node[above] at (13.north) {$r/(0,1)$};
|
||||
\node[roundnode] (14) [right=35pt of 13] {};
|
||||
\node[above] at (14.north) {$r/(1,2)^\omega$};
|
||||
|
||||
\draw[arrow] (11) -- (12);
|
||||
\draw[arrow] (12) -- (13);
|
||||
\draw[arrow] (13) -- (14);
|
||||
|
||||
\node[roundnode] (21) [below=10pt of 11] {};
|
||||
\node[left] at (21.west) {$p_1$};
|
||||
\node[below] at (21.south) {$w(2)$};
|
||||
\node[roundnode] (22) [right=of 21] {};
|
||||
\node[below] at (22.south) {$R/\emptyset$};
|
||||
\node[roundnode] (23) [right=of 22] {};
|
||||
\node[below] at (23.south) {$r/(0,2)$};
|
||||
\node[roundnode] (24) [right=35pt of 23] {};
|
||||
\node[below] at (24.south) {$r/(2,1)^\omega$};
|
||||
|
||||
\draw[arrow] (21) -- (22);
|
||||
\draw[arrow] (22) -- (23);
|
||||
\draw[arrow] (23) -- (24);
|
||||
|
||||
\draw (24) -- (14);
|
||||
|
||||
\draw[dashed] ($(14)!0.5!(13) + (0,1)$) -- ++(0, -2.9);
|
||||
\end{tikzpicture}
|
||||
}
|
26
docs/presentations/LIS/vanderlinde/schemas/linearisation_atomicite_hc.tex
Executable file
26
docs/presentations/LIS/vanderlinde/schemas/linearisation_atomicite_hc.tex
Executable file
@ -0,0 +1,26 @@
|
||||
\resizebox{\columnwidth}{!}{%
|
||||
\begin{tikzpicture}[
|
||||
roundedrectangle/.style={draw, rounded corners, rectangle, minimum height=10pt, minimum width=20pt},
|
||||
invisible/.style={draw=none, fill=none},
|
||||
]
|
||||
|
||||
\node[invisible] (10) {};
|
||||
\node[roundedrectangle, minimum width=150pt] (11) [right=100pt of 10] {$w_x(1)$};
|
||||
\node[invisible] (12) [right=100pt of 11] {};
|
||||
|
||||
\node[invisible] (20) [below=15pt of 10] {};
|
||||
\node[roundedrectangle, minimum width=50pt] (21) [right=25pt of 20] {\textcolor{blue}{$r/(0)$}};
|
||||
\node[roundedrectangle, minimum width=50pt] (22) [right=75pt of 21] {\textcolor{blue}{$r/(0)$}};
|
||||
\node[roundedrectangle, minimum width=50pt] (23) [right=75pt of 22] {\textcolor{red}{$r/(1)$}};
|
||||
\node[invisible] (24) [below=15pt of 12] {};
|
||||
|
||||
\node[invisible] (30) [below=15pt of 20] {};
|
||||
\node[roundedrectangle, minimum width=50pt] (31) [right=125pt of 30] {\textcolor{red}{$r/(1)$}};
|
||||
\node[roundedrectangle, minimum width=50pt] (32) [right=40pt of 31] {\textcolor{red}{$r/(1)$}};
|
||||
\node[invisible] (33) [below=15pt of 24] {};
|
||||
|
||||
\draw (10) -- (11) -- (12);
|
||||
\draw (20) -- (21) -- (22) -- (23) -- (24);
|
||||
\draw (30) -- (31) -- (32) -- (33);
|
||||
\end{tikzpicture}
|
||||
}
|
26
docs/presentations/LIS/vanderlinde/schemas/linearisation_regularite_hc.tex
Executable file
26
docs/presentations/LIS/vanderlinde/schemas/linearisation_regularite_hc.tex
Executable file
@ -0,0 +1,26 @@
|
||||
\resizebox{\columnwidth}{!}{%
|
||||
\begin{tikzpicture}[
|
||||
roundedrectangle/.style={draw, rounded corners, rectangle, minimum height=10pt, minimum width=20pt},
|
||||
invisible/.style={draw=none, fill=none},
|
||||
]
|
||||
|
||||
\node[invisible] (10) {};
|
||||
\node[roundedrectangle, minimum width=150pt] (11) [right=100pt of 10] {$w_x(1)$};
|
||||
\node[invisible] (12) [right=100pt of 11] {};
|
||||
|
||||
\node[invisible] (20) [below=15pt of 10] {};
|
||||
\node[roundedrectangle, minimum width=50pt] (21) [right=25pt of 20] {\textcolor{blue}{$r/(0)$}};
|
||||
\node[roundedrectangle, minimum width=50pt] (22) [right=75pt of 21] {\textcolor{blue}{$r/(0)$}};
|
||||
\node[roundedrectangle, minimum width=50pt] (23) [right=75pt of 22] {\textcolor{red}{$r/(1)$}};
|
||||
\node[invisible] (24) [below=15pt of 12] {};
|
||||
|
||||
\node[invisible] (30) [below=15pt of 20] {};
|
||||
\node[roundedrectangle, minimum width=50pt] (31) [right=125pt of 30] {\textcolor{red}{$r/(1)$}};
|
||||
\node[roundedrectangle, minimum width=50pt] (32) [right=40pt of 31] {\textcolor{blue}{$r/(0)$}};
|
||||
\node[invisible] (33) [below=15pt of 24] {};
|
||||
|
||||
\draw (10) -- (11) -- (12);
|
||||
\draw (20) -- (21) -- (22) -- (23) -- (24);
|
||||
\draw (30) -- (31) -- (32) -- (33);
|
||||
\end{tikzpicture}
|
||||
}
|
26
docs/presentations/LIS/vanderlinde/schemas/linearisation_surete_hc.tex
Executable file
26
docs/presentations/LIS/vanderlinde/schemas/linearisation_surete_hc.tex
Executable file
@ -0,0 +1,26 @@
|
||||
\resizebox{\columnwidth}{!}{%
|
||||
\begin{tikzpicture}[
|
||||
roundedrectangle/.style={draw, rounded corners, rectangle, minimum height=10pt, minimum width=20pt},
|
||||
invisible/.style={draw=none, fill=none},
|
||||
]
|
||||
|
||||
\node[invisible] (10) {};
|
||||
\node[roundedrectangle, minimum width=150pt] (11) [right=100pt of 10] {$w_x(1)$};
|
||||
\node[invisible] (12) [right=100pt of 11] {};
|
||||
|
||||
\node[invisible] (20) [below=15pt of 10] {};
|
||||
\node[roundedrectangle, minimum width=50pt] (21) [right=25pt of 20] {\textcolor{blue}{$r/(0)$}};
|
||||
\node[roundedrectangle, minimum width=50pt] (22) [right=75pt of 21] {\textcolor{blue}{$r/(0)$}};
|
||||
\node[roundedrectangle, minimum width=50pt] (23) [right=75pt of 22] {\textcolor{red}{$r/(1)$}};
|
||||
\node[invisible] (24) [below=15pt of 12] {};
|
||||
|
||||
\node[invisible] (30) [below=15pt of 20] {};
|
||||
\node[roundedrectangle, minimum width=50pt] (31) [right=125pt of 30] {\textcolor{red!50!blue}{$r/(27)$}};
|
||||
\node[roundedrectangle, minimum width=50pt] (32) [right=40pt of 31] {\textcolor{red}{$r/(1)$}};
|
||||
\node[invisible] (33) [below=15pt of 24] {};
|
||||
|
||||
\draw (10) -- (11) -- (12);
|
||||
\draw (20) -- (21) -- (22) -- (23) -- (24);
|
||||
\draw (30) -- (31) -- (32) -- (33);
|
||||
\end{tikzpicture}
|
||||
}
|
34
docs/presentations/LIS/vanderlinde/schemas/localiteetat_hc_1.tex
Executable file
34
docs/presentations/LIS/vanderlinde/schemas/localiteetat_hc_1.tex
Executable file
@ -0,0 +1,34 @@
|
||||
\resizebox{\columnwidth}{!}{%
|
||||
\begin{tikzpicture}[
|
||||
roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,},
|
||||
ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,},
|
||||
arrow/.style={|->, thick,},
|
||||
message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}},
|
||||
]
|
||||
|
||||
\node[roundnode, draw=red, fill=red] (11) {};
|
||||
\node[left] at (11.west) {$p_0$};
|
||||
\node[above] at (11.north) {$w(1)$};
|
||||
\node[roundnode, draw=blue, fill=blue] (12) [right=of 11] {};
|
||||
\node[above] at (12.north) {$r/(0,0)$};
|
||||
\node[roundnode, draw=blue, fill=blue] (13) [right=of 12] {};
|
||||
\node[above] at (13.north) {$r/(0,2)^\omega$};
|
||||
|
||||
\draw[arrow] (11) -- (12);
|
||||
\draw[arrow] (12) -- (13);
|
||||
|
||||
\node[roundnode, draw=blue, fill=blue] (21) [below=10pt of 11] {};
|
||||
\node[left] at (21.west) {$p_1$};
|
||||
\node[below] at (21.south) {$w(2)$};
|
||||
\node[roundnode, draw=red, fill=red] (22) [right=of 21] {};
|
||||
\node[below] at (22.south) {$r/(0,0)$};
|
||||
\node[roundnode, draw=red, fill=red] (23) [right=of 22] {};
|
||||
\node[below] at (23.south) {$r/(0,1)^\omega$};
|
||||
|
||||
\draw[arrow] (21) -- (22);
|
||||
\draw[arrow] (22) -- (23);
|
||||
|
||||
\draw[message] (11) -- ($(22)!0.5!(23)$);
|
||||
\draw[message] (21) -- ($(12)!0.5!(13)$);
|
||||
\end{tikzpicture}
|
||||
}
|
32
docs/presentations/LIS/vanderlinde/schemas/localiteetat_hc_2.tex
Executable file
32
docs/presentations/LIS/vanderlinde/schemas/localiteetat_hc_2.tex
Executable file
@ -0,0 +1,32 @@
|
||||
\resizebox{\columnwidth}{!}{%
|
||||
\begin{tikzpicture}[
|
||||
roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,},
|
||||
ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,},
|
||||
arrow/.style={|->, thick,},
|
||||
message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}},
|
||||
]
|
||||
|
||||
\node[roundnode] (11) {};
|
||||
\node[left] at (11.west) {$p_0$};
|
||||
\node[above] at (11.north) {$w(1)$};
|
||||
\node[roundnode] (12) [right=of 11] {};
|
||||
\node[above] at (12.north) {$r/(0,0)$};
|
||||
\node[roundnode] (13) [right=of 12] {};
|
||||
\node[above] at (13.north) {$r/(0,2)^\omega$};
|
||||
|
||||
\draw[arrow] (11) -- (12);
|
||||
\draw[arrow] (12) -- (13);
|
||||
|
||||
\node[roundnode] (21) [below=10pt of 11] {};
|
||||
\node[left] at (21.west) {$p_1$};
|
||||
\node[below] at (21.south) {$w(2)$};
|
||||
\node[roundnode] (22) [right=of 21] {};
|
||||
\node[below] at (22.south) {$r/(0,1)$};
|
||||
\node[roundnode] (23) [right=of 22] {};
|
||||
\node[below] at (23.south) {$r/(2,1)^\omega$};
|
||||
|
||||
\draw[arrow] (21) -- (22);
|
||||
\draw[arrow] (22) -- (23);
|
||||
|
||||
\end{tikzpicture}
|
||||
}
|
31
docs/presentations/LIS/vanderlinde/schemas/validite_hc_1.tex
Executable file
31
docs/presentations/LIS/vanderlinde/schemas/validite_hc_1.tex
Executable file
@ -0,0 +1,31 @@
|
||||
\resizebox{\columnwidth}{!}{%
|
||||
\begin{tikzpicture}[
|
||||
roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,},
|
||||
ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,},
|
||||
arrow/.style={|->, thick,},
|
||||
message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}},
|
||||
]
|
||||
|
||||
\node[roundnode] (11) {};
|
||||
\node[left] at (11.west) {$p_0$};
|
||||
\node[above] at (11.north) {$w(1)$};
|
||||
\node[roundnode] (12) [right=of 11] {};
|
||||
\node[above] at (12.north) {$r/(0,1)$};
|
||||
\node[roundnode] (13) [right=of 12] {};
|
||||
\node[above] at (13.north) {$r/(2,1)^\omega$};
|
||||
|
||||
\draw[arrow] (11) -- (12);
|
||||
\draw[arrow] (12) -- (13);
|
||||
|
||||
\node[roundnode] (21) [below=10pt of 11] {};
|
||||
\node[left] at (21.west) {$p_1$};
|
||||
\node[below] at (21.south) {$w(2)$};
|
||||
\node[roundnode] (22) [right=of 21] {};
|
||||
\node[below] at (22.south) {$r/(0,2)$};
|
||||
\node[roundnode] (23) [right=of 22] {};
|
||||
\node[below] at (23.south) {$r/(1,2)^\omega$};
|
||||
|
||||
\draw[arrow] (21) -- (22);
|
||||
\draw[arrow] (22) -- (23);
|
||||
\end{tikzpicture}
|
||||
}
|
31
docs/presentations/LIS/vanderlinde/schemas/validite_hc_2.tex
Executable file
31
docs/presentations/LIS/vanderlinde/schemas/validite_hc_2.tex
Executable file
@ -0,0 +1,31 @@
|
||||
\resizebox{\columnwidth}{!}{%
|
||||
\begin{tikzpicture}[
|
||||
roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,},
|
||||
ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,},
|
||||
arrow/.style={|->, thick,},
|
||||
message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}},
|
||||
]
|
||||
|
||||
\node[roundnode] (11) {};
|
||||
\node[left] at (11.west) {$p_0$};
|
||||
\node[above] at (11.north) {$w(1)$};
|
||||
\node[roundnode] (12) [right=of 11] {};
|
||||
\node[above] at (12.north) {$r/(0,1)$};
|
||||
\node[roundnode] (13) [right=of 12] {};
|
||||
\node[above] at (13.north) {$r/(0,1)^\omega$};
|
||||
|
||||
\draw[arrow] (11) -- (12);
|
||||
\draw[arrow] (12) -- (13);
|
||||
|
||||
\node[roundnode] (21) [below=10ptof 11] {};
|
||||
\node[left] at (21.west) {$p_1$};
|
||||
\node[below] at (21.south) {$w(2)$};
|
||||
\node[roundnode] (22) [right=of 21] {};
|
||||
\node[below] at (22.south) {$r/(0,2)$};
|
||||
\node[roundnode] (23) [right=of 22] {};
|
||||
\node[below] at (23.south) {$r/(1,2)^\omega$};
|
||||
|
||||
\draw[arrow] (21) -- (22);
|
||||
\draw[arrow] (22) -- (23);
|
||||
\end{tikzpicture}
|
||||
}
|
42
docs/presentations/LIS/vanderlinde/schemas/wcc_hc_1.tex
Executable file
42
docs/presentations/LIS/vanderlinde/schemas/wcc_hc_1.tex
Executable file
@ -0,0 +1,42 @@
|
||||
\resizebox{\columnwidth}{!}{%
|
||||
\begin{tikzpicture}[
|
||||
roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,},
|
||||
ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,},
|
||||
arrow/.style={|->, thick,},
|
||||
message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}},
|
||||
]
|
||||
|
||||
\node[roundnode, color=red] (11) {};
|
||||
\node[above] at (11.north) {$w(1)$};
|
||||
\node[roundnode, color=red!50] (12) [right=of 11] {};
|
||||
\node[above] at (12.north) {$r/(0,1)$};
|
||||
\node[roundnode, color=red!25] (13) [right=of 12] {};
|
||||
\node[above] at (13.north) {$r/(3,2)^\omega$};
|
||||
|
||||
\draw[arrow] (11) -- (12);
|
||||
\draw[arrow] (12) -- (13);
|
||||
|
||||
\node[roundnode, color=green!75!black] (21) [below=20pt of 11] {};
|
||||
\node[left] at (21.west) {$r/(3,1)$};
|
||||
\node[roundnode, color=green!95!black] (22) [right=of 21] {};
|
||||
\node[right] at (22.east) {$w(2)$};
|
||||
|
||||
\draw[arrow] (21) -- (22);
|
||||
|
||||
\node[roundnode, color=blue] (31) [below=20pt of 21] {};
|
||||
\node[below] at (31.south) {$w(3)$};
|
||||
\node[roundnode, color=blue!50] (32) [right=of 31] {};
|
||||
\node[below] at (32.south) {$r/(3,1)$};
|
||||
\node[roundnode, color=blue!25] (33) [right=of 32] {};
|
||||
\node[below] at (33.south) {$r/(3,2)^\omega$};
|
||||
|
||||
\draw[arrow] (31) -- (32);
|
||||
\draw[arrow] (32) -- (33);
|
||||
|
||||
\draw[message] (11) -- (21);
|
||||
\draw[message] (31) -- (21);
|
||||
\draw[message] (21) -- (32);
|
||||
\draw[message] (22) -- (13);
|
||||
\draw[message] (22) -- (33);
|
||||
\end{tikzpicture}
|
||||
}
|
29
docs/presentations/LIS/vanderlinde/schemas/wcc_hc_2.tex
Executable file
29
docs/presentations/LIS/vanderlinde/schemas/wcc_hc_2.tex
Executable file
@ -0,0 +1,29 @@
|
||||
\resizebox{\columnwidth}{!}{%
|
||||
\begin{tikzpicture}[
|
||||
roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,},
|
||||
ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,},
|
||||
arrow/.style={|->, thick,},
|
||||
message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}},
|
||||
]
|
||||
|
||||
\node[roundnode] (11) {};
|
||||
\node[above] at (11.north) {$w(1)$};
|
||||
\node[roundnode] (12) [right=of 11] {};
|
||||
\node[above] at (12.north) {$r/(2,1)$};
|
||||
\node[roundnode] (13) [right=of 12] {};
|
||||
\node[above] at (13.north) {$r/(2,1)^\omega$};
|
||||
|
||||
\draw[arrow] (11) -- (12);
|
||||
\draw[arrow] (12) -- (13);
|
||||
|
||||
\node[roundnode] (21) [below=20pt of 11] {};
|
||||
\node[left] at (21.west) {$r/(0,1)$};
|
||||
\node[roundnode] (22) [right=of 21] {};
|
||||
\node[right] at (22.east) {$w(2)$};
|
||||
|
||||
\draw[arrow] (21) -- (22);
|
||||
|
||||
\draw[message] (11) -- (21);
|
||||
\draw[message] (22) -- (12);
|
||||
\end{tikzpicture}
|
||||
}
|
41
docs/presentations/LIS/vanderlinde/schemas/wcc_hc_3.tex
Executable file
41
docs/presentations/LIS/vanderlinde/schemas/wcc_hc_3.tex
Executable file
@ -0,0 +1,41 @@
|
||||
\resizebox{\columnwidth}{!}{%
|
||||
\begin{tikzpicture}[
|
||||
roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,},
|
||||
ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,},
|
||||
arrow/.style={|->, thick,},
|
||||
message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}},
|
||||
]
|
||||
|
||||
\node[roundnode, color=red] (11) {};
|
||||
\node[above] at (11.north) {$w(1)$};
|
||||
\node[roundnode, color=red!50] (12) [right=of 11] {};
|
||||
\node[above] at (12.north) {$r/(3,1)$};
|
||||
\node[roundnode, color=red!25] (13) [right=of 12] {};
|
||||
\node[above] at (13.north) {$r/(1,2)^\omega$};
|
||||
|
||||
\draw[arrow] (11) -- (12);
|
||||
\draw[arrow] (12) -- (13);
|
||||
|
||||
\node[roundnode, color=green!75!black] (21) [below=20pt of 11] {};
|
||||
\node[left] at (21.west) {$r/(0,0)$};
|
||||
\node[roundnode, color=green!95!black] (22) [right=of 21] {};
|
||||
\node[right] at (22.east) {$w(2)$};
|
||||
|
||||
\draw[arrow] (21) -- (22);
|
||||
|
||||
\node[roundnode, color=blue] (31) [below=20pt of 21] {};
|
||||
\node[below] at (31.south) {$w(3)$};
|
||||
\node[roundnode, color=blue!50] (32) [right=of 31] {};
|
||||
\node[below] at (32.south) {$r/(1,3)$};
|
||||
\node[roundnode, color=blue!25] (33) [right=of 32] {};
|
||||
\node[below] at (33.south) {$r/(3,2)^\omega$};
|
||||
|
||||
\draw[arrow] (31) -- (32);
|
||||
\draw[arrow] (32) -- (33);
|
||||
|
||||
\draw[message] (11) -- (31);
|
||||
\draw[message] (31) -- (12);
|
||||
\draw[message] (22) -- (13);
|
||||
\draw[message] (22) -- (33);
|
||||
\end{tikzpicture}
|
||||
}
|
Reference in New Issue
Block a user